NEWS
Neuling?
-
weis ich net ganz genau.
Ich kann dir sagen wir man rundet
sicherlich kann man da nen Zusatz machen dass man auch 2 Stellen nach dem Komma rundet, aber wie??
[{"id":"cac18979.353e78","type":"inject","name":"","topic":"","payload":"99,9999","payloadType":"string","repeat":"","crontab":"","once":false,"x":167,"y":1094,"z":"fc6c7385.03939","wires":[["629e1530.9d61ec"]]},{"id":"216d9604.de926a","type":"debug","name":"","active":true,"console":"false","complete":"false","x":798,"y":1099,"z":"fc6c7385.03939","wires":[]},{"id":"629e1530.9d61ec","type":"function","name":"","func":"var Tage_Strom = msg.payload;\nvar Tage_Strom = parseInt(Tage_Strom); // in Zahl umwandeln\n//var Tage_Stromg = Tage_Strom.toFixed(2); \nmsg.payload=Tage_Strom;\nreturn msg;","outputs":1,"noerr":0,"x":451,"y":1097,"z":"fc6c7385.03939","wires":[["216d9604.de926a"]]}]
-
Ersetze mal parseInt(Tage_Strom) durch parseFloat(Tage_Strom) und ändere in msg.payload=Tage_Stromg.
-
Sowas steht bei mir nicht?!
[{"id":"46eaf489.b9150c","type":"inject","name":"Start","topic":"","payload":"","payloadType":"string","repeat":"900","crontab":"","once":false,"x":77.21598815917969,"y":62.86397933959961,"z":"3249cd7d.cdb632","wires":[["e832faba.17cd08"]]},{"id":"e832faba.17cd08","type":"http request","name":"Wetterinfo für Strehla über API-Key","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/ … 32":[["d69796bc.296868","62ede8a7.9d1218"]]},{"id":"d69796bc.296868","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.main.temp;\nmsg2 = {};\nmsg2.payload = msg.payload.main.pressure;\nmsg3 = {};\nmsg3.payload = msg.payload.main.humidity;\nmsg4 = {};\nmsg4.payload = msg.payload.wind.speed;\nmsg5 = {};\nmsg5.payload = msg.payload.wind.deg;\n\nreturn [msg1,msg2,msg3,msg4,msg5];","outputs":"5","noerr":0,"x":631.2159881591797,"y":145.8639793395996,"z":"3249cd7d.cdb632","wires":[["49311bdd.b6cee4"],["1782aa54.e87d56"],["bd7c22f9.4283e"],["f39debec.0c6218"],["b02f0df9.4fd0f"]]},{"id":"49311bdd.b6cee4","type":"ioBroker out","name":"Außentemperatur","topic":"hm-rega.0.4764","ack":"false","autoCreate":"true","x":921.6127166748047,"y":62.86397933959961,"z":"3249cd7d.cdb632","wires":[]},{"id":"1782aa54.e87d56","type":"ioBroker out","name":"Luftdruck","topic":"hm-rega.0.4765","ack":"false","autoCreate":"false","x":899.0413055419922,"y":113.32455062866211,"z":"3249cd7d.cdb632","wires":[]},{"id":"bd7c22f9.4283e","type":"ioBroker out","name":"Luftfeuchtigkeit","topic":"hm-rega.0.4766","ack":"false","autoCreate":"false","x":917.6127166748047,"y":159.4673728942871,"z":"3249cd7d.cdb632","wires":[]},{"id":"f39debec.0c6218","type":"ioBroker out","name":"Windgeschwindigkeit","topic":"hm-rega.0.4767","ack":"false","autoCreate":"false","x":938.4698944091797,"y":209.75320053100586,"z":"3249cd7d.cdb632","wires":[]},{"id":"b02f0df9.4fd0f","type":"ioBroker out","name":"Windrichtung","topic":"hm-rega.0.4768","ack":"false","autoCreate":"false","x":918.6127166748047,"y":257.7530174255371,"z":"3249cd7d.cdb632","wires":[]},{"id":"62ede8a7.9d1218","type":"debug","name":"Ausgabe","active":true,"console":"false","complete":"payload","x":625.2159881591797,"y":62.86397933959961,"z":"3249cd7d.cdb632","wires":[]}]
-
Hallo Paul,
kannst du mir sagen wir mann da rundet?? Bei java ist das ja .toFixed(2). Somit kann ich dann nen Wert runden auf 2 Stellen nach dem Komma. Aber bei Node geht der Befehl nicht. Was du ne Lösung?
-
Sowas steht bei mir nicht?!
Die einzige Stelle, an der man drehen kann, sehe ich bei
> msg1.payload = msg.payload.main.tempVielleicht hilft ein Ersetzen durch ?:
> msg1.payload = msg.payload.main.temp.toFixed(2) ` -
Sowas steht bei mir nicht?!
Die einzige Stelle, an der man drehen kann, sehe ich bei
> msg1.payload = msg.payload.main.tempVielleicht hilft ein Ersetzen durch ?:
> msg1.payload = msg.payload.main.temp.toFixed(2)
toFixed erwartet schon number als Typ. Deswegen:msg.payload = parseFloat(egalWas || 0).toFixed(2);
-
toFixed erwartet schon number als Typ. `
Laut http://openweathermap.org/current sollte Typ "number" geliefert werden.Mit parseFloat(wert) ist es natürlich sicherer und sieht dann im konkreten Fall so aus:
msg1.payload = parseFloat(msg.payload.main.temp).toFixed(2)
-
hey paul53,
viele dank dein code hat funktioniert, nur wenn ich das übertrage auch auf "speed" steht bei mir in der ccm nur "nan" da????
Mit freundlichen Grüßen
-
msg4.payload = parseFloat(msg.payload.wind.speed).toFixed(2)
funktioniert nicht ?
"nan" erzeugt Javascript, wenn Typ "number" erwartet wird, aber nicht vorliegt.
4249_spotify_playlist_016.png
4249_spotify_playlist_017.png -
nein funktioniert leider nicht, selbst wenn ich das jetzt wieder ändere in original zustand komm ich nicht wieder auf die zahl??????
was mir auch gerade auffällt, ich bekomme jetzt immer eine 0 nach dem Komma auch wenn eine zahl übermittelt wird???
Mit freundlichen Grüßen
-
so jetzt hat es doch funktioniert, sorry hab mal neu gestartet, jetzt funktioniert alles, danke euch
Mit freundlichen Grüßen
ps. hab noch viel zu lernen was node-red betrifft, wo findet man die befehle und ihre Bedeutung?
-
hey paul53 ich nochmal, vielleicht kannst du oder jemand anderes nochmal helfen?!
wie gesagt versuche mir node-red irgendwie beizubringen.
ich habe vor per sind adapter eine sv zu schalten d.h. wenn alles Geräte in mehr im plan sind soll die sv sich ändern aber was schreibt man da für eine Funktion rein oder wie realisiert man dies?
das ist der Anfang:
[{"id":"f7a2cf94.085d3","type":"ioBroker in","name":"PS 4","topic":"ping.0.RaspberryPi.192_168_178_31","payloadType":"value","x":136,"y":434,"z":"751d0e6f.8ae2f","wires":[[]]}]
-
hey paul53 ich nochmal, vielleicht kannst du oder jemand anderes nochmal helfen?!
wie gesagt versuche mir node-red irgendwie beizubringen.
ich habe vor per sind adapter eine sv zu schalten d.h. wenn alles Geräte in mehr im plan sind soll die sv sich ändern aber was schreibt man da für eine Funktion rein oder wie realisiert man dies?
das ist der Anfang:
[{"id":"f7a2cf94.085d3","type":"ioBroker in","name":"PS 4","topic":"ping.0.RaspberryPi.192_168_178_31","payloadType":"value","x":136,"y":434,"z":"751d0e6f.8ae2f","wires":[[]]}] ```` `
danke Mit freundlichen Grüßen
-
Von node-red habe ich nicht die geringste Ahnung. Lediglich mit der darin eingebetten Javascript-Funktion (hinter "func":) kann ich etwas anfangen.
-
und kannst du mir da mit meinem Projekt helfen? ich werde ja eine Funktion brauchen und den true and false status der jeweiligen Geräte zu erkennen und dann eine "wenn oder" Auswertung zu bekommen?!
Mit freundlichen Grüßen
-
Bei der Funktion kann ich Dir sicherlich helfen, wenn Du genau beschreibst, was diese Funktion machen soll und was die Eingangs- und Ausgangsgrößen sind.
-
So sieht die Javascript-Lösung für die Aufgabenstellng aus:
var request = require('request'); var url = 'http://api.openweathermap.org/data/2.5/weather?q=Strehla,DE&units=metric&APPID=e5de2c3e2339a69b6d181c0cb9d2e5d8'; var wetter = {}; // alle 15 Minuten schedule("*/15 * * * *", function () { request(url, function(error, response, body) { if (!error && response.statusCode == 200) { wetter = JSON.parse(body); setState("hm-rega.0.4764",wetter.main.temp.toFixed(2) + " °C"); setState("hm-rega.0.4765",wetter.main.pressure.toFixed(1) + " hPa"); setState("hm-rega.0.4766",wetter.main.humidity;.toFixed(0) + " %"); setState("hm-rega.0.4767",wetter.wind.speed.toFixed(1) + " m/s"); setState("hm-rega.0.4768",wetter.wind.deg.toFixed(0) + " °"); } }); });