NEWS
Openweather API
-
Aktuelle Wetterdaten der eigenen Stadt:
http://api.openweathermap.org/data/2.5/ … ic&lang=de
{"coord":{"lon":6.78,"lat":51.22},"sys":{"message":0.2275,"country":"Germany","sunrise":1429676541,"sunset":1429728023},"weather":[{"id":800,"main":"Clear","description":"klarer Himmel","icon":"01n"}],"base":"stations","main":{"temp":6.2,"temp_min":6.2,"temp_max":6.2,"pressure":1024.97,"sea_level":1036.99,"grnd_level":1024.97,"humidity":83},"wind":{"speed":1.96,"deg":14.5002},"clouds":{"all":0},"dt":1429746367,"id":2934246,"name":"Dusseldorf","cod":200}
Zur Info, falls jemand die Daten einer externen Wetterstation benötigt.
Ich werde die Werte, die ich benötige als nächstes mit node-red auslesen.
-
Falls jemand die Daten aus seiner Stadt in Variablen schreiben möchte.
Um Tipparbeit zu sparen, anbei der Flow.
Im Beispiel für die Städte Düsseldorf und Ratingen.
[{"id":"31f0063c.ce0ffa","type":"http request","name":"Openweathermap Düsseldorf","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/weather?q=Duesseldorf,de&units=metric&lang=de","x":576.285758972168,"y":3414.8253536224365,"z":"c8f61395.3709f","wires":[["99e0ffb0.661f","81652e01.7e9ad","5be9f9a7.a41608","57b76f72.a8489","d3eb6296.2c14a","502c6827.afd398","b15add60.4ea52","e6ba0720.1945f8","c5e75ea1.3a18a","5e981f4a.a167e"]]},{"id":"49f2a5e5.b60d5c","type":"inject","name":"Trigger","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":327.5714797973633,"y":3414.8253498077393,"z":"c8f61395.3709f","wires":[["31f0063c.ce0ffa","30b66901.cf4996"]]},{"id":"8bd529ed.742ad8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1159.1746292114258,"y":3363.8253135681152,"z":"c8f61395.3709f","wires":[]},{"id":"99e0ffb0.661f","type":"function","name":"Temperatur","func":"msg.payload = msg.payload.main.temp;\n\nreturn msg;","outputs":1,"x":893.4603958129883,"y":3408.8253536224365,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","f10a8e1b.0ef57"]]},{"id":"81652e01.7e9ad","type":"function","name":"Luftdruck","func":"msg.payload = msg.payload.main.pressure;\n\nreturn msg;","outputs":1,"x":893.4604263305664,"y":3444.8252925872803,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","73419212.8cbe6c"]]},{"id":"5be9f9a7.a41608","type":"function","name":"Luftfeuchtigkeit","func":"msg.payload = msg.payload.main.humidity;\n\nreturn msg;","outputs":1,"x":900.4604263305664,"y":3485.8252925872803,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","8e3e598b.71c1a8"]]},{"id":"57b76f72.a8489","type":"function","name":"Windgeschwindigkeit","func":"msg.payload = msg.payload.wind.speed;\n\nreturn msg;","outputs":1,"x":905.4604263305664,"y":3565.825170516968,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","32593c69.cda6c4"]]},{"id":"d3eb6296.2c14a","type":"function","name":"Windrichtung","func":"msg.payload = msg.payload.wind.deg;\n\nreturn msg;","outputs":1,"x":905.4604263305664,"y":3598.8252925872803,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","1f600994.e09ff6"]]},{"id":"c5e75ea1.3a18a","type":"debug","name":"","active":true,"console":"false","complete":"false","x":597.4604415893555,"y":3627.39656829834,"z":"c8f61395.3709f","wires":[]},{"id":"502c6827.afd398","type":"function","name":"Wetter","func":"msg.payload = msg.payload.weather[0].description;\n\nreturn msg;","outputs":1,"x":906.4604263305664,"y":3662.8252925872803,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","c91a4fc8.36e5b"]]},{"id":"b15add60.4ea52","type":"function","name":"Sonnenaufgang","func":"msg.payload = msg.payload.sys.sunrise;\n\nreturn msg;","outputs":1,"x":914.4604263305664,"y":3719.8252925872803,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","8dcd3e6f.7232c"]]},{"id":"e6ba0720.1945f8","type":"function","name":"Sonnenuntergang","func":"msg.payload = msg.payload.sys.sunset;\n\nreturn msg;","outputs":1,"x":915.4604263305664,"y":3758.8252925872803,"z":"c8f61395.3709f","wires":[["8bd529ed.742ad8","33693888.cc96c8"]]},{"id":"30b66901.cf4996","type":"http request","name":"Openweathermap Ratingen","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/weather?q=Ratingen,de&units=metric&lang=de","x":573.174560546875,"y":3944.254117012024,"z":"c8f61395.3709f","wires":[["c5e75ea1.3a18a","f421d300.0bde3","fa52aae3.05ad58","3e653e21.c19ac2","b2446bef.4dbb98","4262d813.bd9d28","83278cad.7cd87","17057cd8.e8fa83","663b03f3.99c4fc","18c7ceb4.e73831"]]},{"id":"7df41760.820be8","type":"comment","name":"Wetterdaten aktuell aus der Openweathermap abfragen","info":"","x":439.46033477783203,"y":3325.4921016693115,"z":"c8f61395.3709f","wires":[]},{"id":"f10a8e1b.0ef57","type":"ioBroker out","name":"","topic":"openWeatherDusTemperatur","ack":"true","autoCreate":"true","x":1198.5714111328125,"y":3402.8571548461914,"z":"c8f61395.3709f","wires":[]},{"id":"73419212.8cbe6c","type":"ioBroker out","name":"","topic":"openWeatherDusLuftdruck","ack":"true","autoCreate":"true","x":1200,"y":3444.285888671875,"z":"c8f61395.3709f","wires":[]},{"id":"8e3e598b.71c1a8","type":"ioBroker out","name":"","topic":"openWeatherDusLuftfeuchtigkeit","ack":"true","autoCreate":"true","x":1198.5714111328125,"y":3481.4287109375,"z":"c8f61395.3709f","wires":[]},{"id":"32593c69.cda6c4","type":"ioBroker out","name":"","topic":"openWeatherDusWindgeschwindigkeit","ack":"true","autoCreate":"true","x":1211.4286041259766,"y":3565.7145385742188,"z":"c8f61395.3709f","wires":[]},{"id":"1f600994.e09ff6","type":"ioBroker out","name":"","topic":"openWeatherDusWindrichtung","ack":"true","autoCreate":"true","x":1208.5714111328125,"y":3605.71435546875,"z":"c8f61395.3709f","wires":[]},{"id":"c91a4fc8.36e5b","type":"ioBroker out","name":"","topic":"openWeatherDusWetterBeschreibung","ack":"true","autoCreate":"true","x":1212.857177734375,"y":3660,"z":"c8f61395.3709f","wires":[]},{"id":"8dcd3e6f.7232c","type":"ioBroker out","name":"","topic":"openWeatherDusSonnenaufgang","ack":"true","autoCreate":"true","x":1212.857177734375,"y":3715.71435546875,"z":"c8f61395.3709f","wires":[]},{"id":"33693888.cc96c8","type":"ioBroker out","name":"","topic":"openWeatherDusSonnenuntergang","ack":"true","autoCreate":"true","x":1215.71435546875,"y":3758.571533203125,"z":"c8f61395.3709f","wires":[]},{"id":"f421d300.0bde3","type":"function","name":"Temperatur","func":"msg.payload = msg.payload.main.temp;\n\nreturn msg;","outputs":1,"x":904.2856674194336,"y":4122.85746383667,"z":"c8f61395.3709f","wires":[["15af9518.ea506b","5d2280ee.a2dd8"]]},{"id":"fa52aae3.05ad58","type":"function","name":"Luftdruck","func":"msg.payload = msg.payload.main.pressure;\n\nreturn msg;","outputs":1,"x":904.2856979370117,"y":4158.857402801514,"z":"c8f61395.3709f","wires":[["4752a912.b8ad58","5d2280ee.a2dd8"]]},{"id":"3e653e21.c19ac2","type":"function","name":"Luftfeuchtigkeit","func":"msg.payload = msg.payload.main.humidity;\n\nreturn msg;","outputs":1,"x":911.2856979370117,"y":4199.857402801514,"z":"c8f61395.3709f","wires":[["1733cc7c.e8cc34","5d2280ee.a2dd8"]]},{"id":"b2446bef.4dbb98","type":"function","name":"Windgeschwindigkeit","func":"msg.payload = msg.payload.wind.speed;\n\nreturn msg;","outputs":1,"x":916.2856979370117,"y":4279.857280731201,"z":"c8f61395.3709f","wires":[["fd89fe3b.0276","5d2280ee.a2dd8"]]},{"id":"4262d813.bd9d28","type":"function","name":"Windrichtung","func":"msg.payload = msg.payload.wind.deg;\n\nreturn msg;","outputs":1,"x":916.2856979370117,"y":4312.857402801514,"z":"c8f61395.3709f","wires":[["6d3fe98c.92c018","5d2280ee.a2dd8"]]},{"id":"83278cad.7cd87","type":"function","name":"Wetter","func":"msg.payload = msg.payload.weather[0].description;\n\nreturn msg;","outputs":1,"x":917.2856979370117,"y":4376.857402801514,"z":"c8f61395.3709f","wires":[["70d219d5.8f2de8","5d2280ee.a2dd8"]]},{"id":"17057cd8.e8fa83","type":"function","name":"Sonnenaufgang","func":"msg.payload = msg.payload.sys.sunrise;\n\nreturn msg;","outputs":1,"x":925.2856979370117,"y":4433.857402801514,"z":"c8f61395.3709f","wires":[["44aec1c.fbb514","5d2280ee.a2dd8"]]},{"id":"663b03f3.99c4fc","type":"function","name":"Sonnenuntergang","func":"msg.payload = msg.payload.sys.sunset;\n\nreturn msg;","outputs":1,"x":926.2856979370117,"y":4472.857402801514,"z":"c8f61395.3709f","wires":[["32d6a60e.cd295a","5d2280ee.a2dd8"]]},{"id":"15af9518.ea506b","type":"ioBroker out","name":"","topic":"openWeatherRatTemperatur","ack":"true","autoCreate":"true","x":1209.3966827392578,"y":4116.889265060425,"z":"c8f61395.3709f","wires":[]},{"id":"4752a912.b8ad58","type":"ioBroker out","name":"","topic":"openWeatherRatLuftdruck","ack":"true","autoCreate":"true","x":1210.8252716064453,"y":4158.317998886108,"z":"c8f61395.3709f","wires":[]},{"id":"1733cc7c.e8cc34","type":"ioBroker out","name":"","topic":"openWeatherRatLuftfeuchtigkeit","ack":"true","autoCreate":"true","x":1209.3966827392578,"y":4195.460821151733,"z":"c8f61395.3709f","wires":[]},{"id":"fd89fe3b.0276","type":"ioBroker out","name":"","topic":"openWeatherRatWindgeschwindigkeit","ack":"true","autoCreate":"true","x":1222.2538757324219,"y":4279.746648788452,"z":"c8f61395.3709f","wires":[]},{"id":"6d3fe98c.92c018","type":"ioBroker out","name":"","topic":"openWeatherRatWindrichtung","ack":"true","autoCreate":"true","x":1219.3966827392578,"y":4319.746465682983,"z":"c8f61395.3709f","wires":[]},{"id":"70d219d5.8f2de8","type":"ioBroker out","name":"","topic":"openWeatherRatWetterBeschreibung","ack":"true","autoCreate":"true","x":1223.6824493408203,"y":4374.032110214233,"z":"c8f61395.3709f","wires":[]},{"id":"44aec1c.fbb514","type":"ioBroker out","name":"","topic":"openWeatherRatSonnenaufgang","ack":"true","autoCreate":"true","x":1223.6824493408203,"y":4429.746465682983,"z":"c8f61395.3709f","wires":[]},{"id":"32d6a60e.cd295a","type":"ioBroker out","name":"","topic":"openWeatherRatSonnenuntergang","ack":"true","autoCreate":"true","x":1226.5396270751953,"y":4472.603643417358,"z":"c8f61395.3709f","wires":[]},{"id":"5d2280ee.a2dd8","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1159.9999599456787,"y":4082.8571786880493,"z":"c8f61395.3709f","wires":[]},{"id":"5e981f4a.a167e","type":"function","name":"openstreetmap Adresse http","func":"\n// Koordinate inkl. Marker\nmsg.payload = \"http://www.openstreetmap.org/?mlon=\" \n + msg.payload.coord.lon + \"&mlat=\"\n + msg.payload.coord.lat + \"&zoom=17#map=17/\" // Zoom Stufe 17 (beide Werte anpssen, wenn Änderung gewünscht)\n + msg.payload.coord.lat + \"/\"\n + msg.payload.coord.lon;\nreturn msg;\n","outputs":"1","x":941.4285888671875,"y":3804.285888671875,"z":"c8f61395.3709f","wires":[["4eefbe15.b1104","5eb8d843.a14728"]]},{"id":"4eefbe15.b1104","type":"ioBroker out","name":"","topic":"openWeatherDusOpenstreetmapURL","ack":"true","autoCreate":"true","x":1210.0000305175781,"y":3801.428776741028,"z":"c8f61395.3709f","wires":[]},{"id":"5eb8d843.a14728","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1421.4286499023438,"y":3801.4287071228027,"z":"c8f61395.3709f","wires":[]},{"id":"18c7ceb4.e73831","type":"function","name":"openstreetmap Adresse http","func":"\n// Koordinate inkl. Marker\nmsg.payload = \"http://www.openstreetmap.org/?mlon=\" \n + msg.payload.coord.lon + \"&mlat=\"\n + msg.payload.coord.lat + \"&zoom=17#map=17/\" // Zoom Stufe 17 (beide Werte anpssen, wenn Änderung gewünscht)\n + msg.payload.coord.lat + \"/\"\n + msg.payload.coord.lon;\nreturn msg;\n","outputs":"1","x":954.2856750488281,"y":4518.571251869202,"z":"c8f61395.3709f","wires":[["299181d2.d66e7e","891fd3bc.76e03"]]},{"id":"299181d2.d66e7e","type":"ioBroker out","name":"","topic":"openWeatherRatOpenstreetmapURL","ack":"true","autoCreate":"true","x":1222.8571166992188,"y":4515.7141399383545,"z":"c8f61395.3709f","wires":[]},{"id":"891fd3bc.76e03","type":"debug","name":"","active":false,"console":"false","complete":"false","x":1447.1428298950195,"y":4515.713824272156,"z":"c8f61395.3709f","wires":[]}]
-
Das sind die richtigen Sachen zum lernen.
Hatte auch den Ansatz.
Jedoch mit einer Funktion. Und durch deine Hilfe konne ich nun die letzten Parammeter herausfinden.
Ist an deinem Vorschlag angelehnt
! [{"id":"c85bd032.32ed08","type":"inject","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":125,"y":65,"z":"9754ee99.65c0c8","wires":[["f9322c39.6b25a8"]]},{"id":"f9322c39.6b25a8","type":"http request","name":"Wetter in Borken","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/ … c8":[["a22d4c1b.313608"]]},{"id":"a22d4c1b.313608","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;\nmsg6 = {};\nmsg6.payload = msg.payload.weather[0].description;\nmsg7 = {};\nmsg7.payload = msg.payload.sys.sunrise;\nmsg8 = {};\nmsg8.payload = msg.payload.sys.sunset;\nmsg9 = {};\n\nmsg10 = {};\n// Koordinate inkl. Marker\nmsg10.payload = "http://www.openstreetmap.org/?mlon=" \n + msg.payload.coord.lon + "&mlat="\n + msg.payload.coord.lat + "&zoom=17#map=17/" // Zoom Stufe 17 (beide Werte anpssen, wenn Änderung gewünscht)\n + msg.payload.coord.lat + "/"\n + msg.payload.coord.lon;\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,msg10];","outputs":"10","valid":true,"x":338,"y":141,"z":"9754ee99.65c0c8","wires":[["f09a27cf.f7bfb"],["571ec36b.2305f4"],["d599dff2.d2b74"],["f0adeafa.14cdf8"],["1cebc15a.7b89f7"],["1f7cb16d.d889cf"],["38368cd9.2b03d4"],["23c3b3ae.0960e4"],[],["a7734dac.696ef8","f47ee89.9694618"]]},{"id":"f09a27cf.f7bfb","type":"ioBroker out","name":"","topic":"openWeatherBorTemperatur","ack":"true","autoCreate":"true","x":666.396728515625,"y":43.031829833984375,"z":"9754ee99.65c0c8","wires":[]},{"id":"571ec36b.2305f4","type":"ioBroker out","name":"","topic":"openWeatherBorLuftdruck","ack":"true","autoCreate":"true","x":663.8253173828125,"y":91.4605712890625,"z":"9754ee99.65c0c8","wires":[]},{"id":"d599dff2.d2b74","type":"ioBroker out","name":"","topic":"openWeatherBorLuftfeuchtigkeit","ack":"true","autoCreate":"true","x":680.396728515625,"y":139.6033935546875,"z":"9754ee99.65c0c8","wires":[]},{"id":"f0adeafa.14cdf8","type":"ioBroker out","name":"","topic":"openWeatherBorWindgeschwindigkeit","ack":"true","autoCreate":"true","x":695.25390625,"y":182.88922119140625,"z":"9754ee99.65c0c8","wires":[]},{"id":"1cebc15a.7b89f7","type":"ioBroker out","name":"","topic":"openWeatherBorWindrichtung","ack":"true","autoCreate":"true","x":673.396728515625,"y":229.8890380859375,"z":"9754ee99.65c0c8","wires":[]},{"id":"1f7cb16d.d889cf","type":"ioBroker out","name":"","topic":"openWeatherBorWetterBeschreibung","ack":"true","autoCreate":"true","x":698.6824951171875,"y":272.1746826171875,"z":"9754ee99.65c0c8","wires":[]},{"id":"38368cd9.2b03d4","type":"ioBroker out","name":"","topic":"openWeatherBorSonnenaufgang","ack":"true","autoCreate":"true","x":685.6824951171875,"y":316.8890380859375,"z":"9754ee99.65c0c8","wires":[]},{"id":"23c3b3ae.0960e4","type":"ioBroker out","name":"","topic":"openWeatherBorSonnenuntergang","ack":"true","autoCreate":"true","x":694.5396728515625,"y":361.7462463378906,"z":"9754ee99.65c0c8","wires":[]},{"id":"a7734dac.696ef8","type":"ioBroker out","name":"","topic":"openWeatherBorOpenstreetmapURL","ack":"true","autoCreate":"true","x":632.825439453125,"y":464.6033935546875,"z":"9754ee99.65c0c8","wires":[]},{"id":"f47ee89.9694618","type":"debug","name":"","active":true,"console":"false","complete":"false","x":551,"y":514,"z":"9754ee99.65c0c8","wires":[]}]
Was ist nun der Vorteil / Nachteil ob man es mit einer oder mehreren Funktionen macht?
EDIT: Wie kann ich die Uhrzeiten (Unix-Version) in "iso" anzeigen lassen?
openWeatherBorSonnenaufgang 1430625525 openWeatherBorSonnenuntergang 1430679602
Gruß
derAuge
-
Was ist nun der Vorteil / Nachteil ob man es mit einer oder mehreren Funktionen macht? `
Wahrscheinlich Geschmacksache
Ich habe die Kombi "Funktion" -> Variable gewählt, um einfach per Maus schnell ein Pärchen löschen zu können, per cpoy&paste die nächste Variable hinzuzufügen und die Zuordnung (JSON Objekt zur Variable) direkt zu sehen, ohne in das Script schauen zu müssen. Deine Variante sieht professioneller und aufgeräumter aus.
EDIT: Wie kann ich die Uhrzeiten (Unix-Version) in "iso" anzeigen lassen?
openWeatherBorSonnenaufgang 1430625525 openWeatherBorSonnenuntergang 1430679602 ```` `
Ich hatte hier http://forum.iobroker.org/viewtopic.php?f=32&t=653 die Funktion beschrieben.
Einfach die Funktion hinter der Funktion ziehen, die den Timestamp aus dem JSON ermittelt.
Dann kannst Du Dich noch zwischen den Varianten entscheiden, ob der Timestamp aus der Ursprungsmessage kommen soll oder der Timestamp zum Zeitpunkt des Funktionsaufruf genommen werden soll.
Wenn Du nur das ISO Format haben willst, dann brauchst Du nur die Date(mparseInt(sg.payload.sys.sunrise)) Funktion verwenden. Ich finde das reine ISO Format aber auch nicht so toll.
var isoZeit = new Date(mparseInt(sg.payload.sys.sunrise))
Mit der Funktion mit dem Konvertierungsscript, siehe URL oben, kannst Du Dir das Format beliebig zusammenstellen.
Vorletzter Zeile:
msg.payload = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;
Gibt das Datum als: 2015-05-03 11:56:20 aus.
-
Habe (nach Datenverlust node-red Update) den Flow wieder eingerichtet und den Anweisungen von ruhr70 gefolgt (Danke für die Erklärungen).
Nun wird das UNIX-Datum sauber gewandelt
Nun stellt sich die Frage:
schicken die falsche Infos?
- Wetter.Borken.Sonnenaufgang 15:58:45
Wetter.Borken.Sonnenuntergang 15:59:45
! [{"id":"fa31ff8f.80d708","type":"inject","name":"Start","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":97,"y":117,"z":"2cd3b4a8.0e4174","wires":[["506d3a8c.ac6554"]]},{"id":"506d3a8c.ac6554","type":"http request","name":"holt Wetterinfo für Borken über api (openwethermap)","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/ … 74":[["eb988301.d6d57","3ad3ca90.978a16"]]},{"id":"eb988301.d6d57","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;\nmsg6 = {};\nmsg6.payload = msg.payload.weather[0].description;\nmsg7 = {};\nmsg7.payload = msg.payload.sys.sunrise;\nmsg8 = {};\nmsg8.payload = msg.payload.sys.sunset;\nmsg9 = {};\n\nmsg10 = {};\n// Koordinate inkl. Marker\nmsg10.payload = "http://www.openstreetmap.org/?mlon=" \n + msg.payload.coord.lon + "&mlat="\n + msg.payload.coord.lat + "&zoom=17#map=17/" // Zoom Stufe 17 (beide Werte anpssen, wenn Änderung gewünscht)\n + msg.payload.coord.lat + "/"\n + msg.payload.coord.lon;\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,msg10];","outputs":"10","noerr":0,"x":136,"y":314,"z":"2cd3b4a8.0e4174","wires":[["cf581be3.4d61c"],["a77254f5.4b33f"],["a108d2f6.73ac08"],["725a5cf7.76233c"],["cecc69dd.611648"],["2d946d5c.6c9cea"],["3a9fad41.c56052","1564d9c4.ea9b26"],["7c8cb6a1.837348","6cd46de8.932b94"],[],["30ce4c89.0a7d74","a708b0e9.397e78"]]},{"id":"cf581be3.4d61c","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Temperatur","ack":"true","autoCreate":"true","x":861.396728515625,"y":20,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"a77254f5.4b33f","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Luftdruck","ack":"true","autoCreate":"true","x":867.8253173828125,"y":70.4605712890625,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"a108d2f6.73ac08","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Luftfeuchtigkeit","ack":"true","autoCreate":"true","x":852.396728515625,"y":120.6033935546875,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"725a5cf7.76233c","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Windgeschwindigkeit","ack":"true","autoCreate":"true","x":837.25390625,"y":170.88922119140625,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"cecc69dd.611648","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Windrichtung","ack":"true","autoCreate":"true","x":861.396728515625,"y":219.8890380859375,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"2d946d5c.6c9cea","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.WetterBeschreibung","ack":"true","autoCreate":"true","x":841.6824951171875,"y":270.1746826171875,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"e05ce497.e20268","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Sonnenaufgang","ack":"true","autoCreate":"true","x":858.6824951171875,"y":325.8890380859375,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"c78b0c07.5cbd98","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Sonnenuntergang","ack":"true","autoCreate":"true","x":852.5396728515625,"y":424.7462463378906,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"30ce4c89.0a7d74","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.OpenstreetmapURL","ack":"true","autoCreate":"true","x":451.825439453125,"y":562.6033935546875,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"a708b0e9.397e78","type":"debug","name":"","active":true,"console":"false","complete":"false","x":337,"y":611,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"3ad3ca90.978a16","type":"debug","name":"","active":true,"console":"false","complete":"false","x":558,"y":23,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"3a9fad41.c56052","type":"function","name":"wandelt timestamp // Zeit aus dem Payload","func":"// (1) wandelt timestamp ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now = new Date(msg.payload); // Zeit aus dem Payload\nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = hour+':'+minute+':'+second;\n\nreturn msg;","outputs":1,"noerr":0,"x":470,"y":334,"z":"2cd3b4a8.0e4174","wires":[["e05ce497.e20268","f99ef869.066108"]]},{"id":"7c8cb6a1.837348","type":"function","name":"wandelt timestamp // Zeit aus dem Payload","func":"// (1) wandelt timestamp ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now = new Date(msg.payload); // Zeit aus dem Payload\nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = hour+':'+minute+':'+second;\n\nreturn msg;","outputs":1,"noerr":0,"x":469,"y":426,"z":"2cd3b4a8.0e4174","wires":[["c78b0c07.5cbd98","4ded2049.b212e"]]},{"id":"1564d9c4.ea9b26","type":"debug","name":"","active":true,"console":"false","complete":"false","x":565,"y":374,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"f99ef869.066108","type":"debug","name":"","active":true,"console":"false","complete":"false","x":765,"y":373,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"6cd46de8.932b94","type":"debug","name":"","active":true,"console":"false","complete":"false","x":552,"y":469,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"4ded2049.b212e","type":"debug","name":"","active":true,"console":"false","complete":"false","x":753,"y":471,"z":"2cd3b4a8.0e4174","wires":[]}]
oder habe ich etwas verbogen?Gruß
Jürgen
PS.: Leider funktioniert "var isoZeit = new Date(mparseInt(sg.payload.sys.sunrise))" nicht
-
PS.: Leider funktioniert "var isoZeit = new Date(mparseInt(sg.payload.sys.sunrise))" nicht `
Da fehlt mindestens ein "m" (schon bei mir oben).
msg.payload, nicht sg.payload
-
PS.: Leider funktioniert "var isoZeit = new Date(mparseInt(sg.payload.sys.sunrise))" nicht `
Da fehlt mindestens ein "m" (schon bei mir oben).
msg.payload, nicht sg.payload `
//var isoZeit = new Date(mparseInt(msg.payload.sys.sunrise)); //msg.payload = isoZeit; msg.payload = new Date(mparseInt(msg.payload.sys.sunrise)); return msg;
Cannot read property 'sunrise' of undefined
-
Habe (nach Datenverlust node-red Update) den Flow wieder eingerichtet und den Anweisungen von ruhr70 gefolgt (Danke für die Erklärungen).
Nun wird das UNIX-Datum sauber gewandelt
Nun stellt sich die Frage:
schicken die falsche Infos?
- Wetter.Borken.Sonnenaufgang 15:58:45
Wetter.Borken.Sonnenuntergang 15:59:45 `
-
So, habe mir das angesehen (mit den falschen Zeiten).
Dir fehlen ein paar Sekunden.
Dein msg.payload liefert die Sekunden seit dem 1.1.1970.
Die Funktion:
var now = new Date(msg.payload); // Zeit aus dem Payload
Arbeitet mir den Millisekunden seit dem 1.1.1970
Du musst msg.payload noch mit 1.000 multiplizieren. Dann stimmen auch die Zeiten.
Wg. dem ISO habe ich noch nicht geschaut.
-
Dein msg.payload liefert die Sekunden seit dem 1.1.1970. `
Ist das nun bei mir ? Wenn JA, wo kommt das her?
Habe den Flow angepasst. und nun gefällt mir auch der Sonnenaufgang
Die Funktion für die Umrechnung:
// (1) wandelt timestamp ins ISO Datumformat um //msg.timestamp= new Date().toISOString() // (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS // (Ausgabeformat wird danz am Ende zusammengestellt) var now = new Date(msg.payload * 1000); // Zeit aus dem Payload var year = now.getFullYear(); var month = now.getMonth()+1; var day = now.getDate(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); if(month.toString().length == 1) { var month = '0'+month; } if(day.toString().length == 1) { var day = '0'+day; } if(hour.toString().length == 1) { var hour = '0'+hour; } if(minute.toString().length == 1) { var minute = '0'+minute; } if(second.toString().length == 1) { var second = '0'+second; } //msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second; msg.payload = day+'.'+month+'.'+year+' - '+hour+':'+minute+':'+second; return msg;
erzeugt nun auch eine saubere Ausgabe
- Wetter.Borken.Sonnenaufgang 09.07.2015 - 05:24:22 true node-red.0 2015-07-09 08:20:03 2015-07-09 07:23:03
Wetter.Borken.Sonnenuntergang 09.07.2015 - 21:50:30 true node-red.0 2015-07-09 08:20:03 2015-07-09 07:23:03
Der überarbeitete Flow:
! [{"id":"fa31ff8f.80d708","type":"inject","name":"Start # Jede Minute","topic":"","payload":"","payloadType":"none","repeat":"60","crontab":"","once":true,"x":135,"y":104,"z":"2cd3b4a8.0e4174","wires":[["506d3a8c.ac6554"]]},{"id":"506d3a8c.ac6554","type":"http request","name":"holt Wetterinfo für Borken über api (openwethermap)","method":"GET","ret":"obj","url":"http://api.openweathermap.org/data/2.5/ … 74":[["eb988301.d6d57","3ad3ca90.978a16"]]},{"id":"eb988301.d6d57","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;\nmsg6 = {};\nmsg6.payload = msg.payload.weather[0].description;\nmsg7 = {};\nmsg7.payload = msg.payload.sys.sunrise;\nmsg8 = {};\nmsg8.payload = msg.payload.sys.sunset;\nmsg9 = {};\n\nmsg10 = {};\n// Koordinate inkl. Marker\nmsg10.payload = "http://www.openstreetmap.org/?mlon=" \n + msg.payload.coord.lon + "&mlat="\n + msg.payload.coord.lat + "&zoom=10#map=10/" // Zoom Stufe 17 (beide Werte anpssen, wenn Änderung gewünscht)\n + msg.payload.coord.lat + "/"\n + msg.payload.coord.lon;\n\nreturn [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8,msg9,msg10];","outputs":"10","noerr":0,"x":136,"y":314,"z":"2cd3b4a8.0e4174","wires":[["cf581be3.4d61c"],["a77254f5.4b33f"],["a108d2f6.73ac08"],["725a5cf7.76233c"],["cecc69dd.611648"],["2d946d5c.6c9cea"],["3a9fad41.c56052","1564d9c4.ea9b26"],["7c8cb6a1.837348","6cd46de8.932b94"],[],["30ce4c89.0a7d74","a708b0e9.397e78"]]},{"id":"cf581be3.4d61c","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Temperatur","ack":"true","autoCreate":"true","x":861.396728515625,"y":20,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"a77254f5.4b33f","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Luftdruck","ack":"true","autoCreate":"true","x":867.8253173828125,"y":70.4605712890625,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"a108d2f6.73ac08","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Luftfeuchtigkeit","ack":"true","autoCreate":"true","x":852.396728515625,"y":120.6033935546875,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"725a5cf7.76233c","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Windgeschwindigkeit","ack":"true","autoCreate":"true","x":837.25390625,"y":170.88922119140625,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"cecc69dd.611648","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Windrichtung","ack":"true","autoCreate":"true","x":861.396728515625,"y":219.8890380859375,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"2d946d5c.6c9cea","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.WetterBeschreibung","ack":"true","autoCreate":"true","x":841.6824951171875,"y":270.1746826171875,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"e05ce497.e20268","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Sonnenaufgang","ack":"true","autoCreate":"true","x":858.6824951171875,"y":325.8890380859375,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"c78b0c07.5cbd98","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.Sonnenuntergang","ack":"true","autoCreate":"true","x":852.5396728515625,"y":424.7462463378906,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"30ce4c89.0a7d74","type":"ioBroker out","name":"","topic":"node-red.0.Wetter.Borken.OpenstreetmapURL","ack":"true","autoCreate":"true","x":451.825439453125,"y":562.6033935546875,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"a708b0e9.397e78","type":"debug","name":"","active":true,"console":"false","complete":"false","x":337,"y":611,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"3ad3ca90.978a16","type":"debug","name":"","active":true,"console":"false","complete":"false","x":558,"y":23,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"3a9fad41.c56052","type":"function","name":"wandelt timestamp // Zeit aus dem Payload","func":"// (1) wandelt timestamp ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now = new Date(msg.payload * 1000); // Zeit aus dem Payload\nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = day+'.'+month+'.'+year+' - '+hour+':'+minute+':'+second;\n\nreturn msg;","outputs":1,"noerr":0,"x":470,"y":334,"z":"2cd3b4a8.0e4174","wires":[["e05ce497.e20268","f99ef869.066108"]]},{"id":"7c8cb6a1.837348","type":"function","name":"wandelt timestamp // Zeit aus dem Payload","func":"// (1) wandelt timestamp ins ISO Datumformat um\n//msg.timestamp= new Date().toISOString()\n\n// (2) beliebiges Datum festlegbar: hier: YYYY-MM-DD HH:MM.SS\n// (Ausgabeformat wird danz am Ende zusammengestellt)\nvar now = new Date(msg.payload * 1000); // Zeit aus dem Payload\nvar year = now.getFullYear();\nvar month = now.getMonth()+1; \nvar day = now.getDate();\nvar hour = now.getHours();\nvar minute = now.getMinutes();\nvar second = now.getSeconds(); \nif(month.toString().length == 1) {\nvar month = '0'+month;\n}\nif(day.toString().length == 1) {\nvar day = '0'+day;\n} \nif(hour.toString().length == 1) {\nvar hour = '0'+hour;\n}\nif(minute.toString().length == 1) {\nvar minute = '0'+minute;\n}\nif(second.toString().length == 1) {\nvar second = '0'+second;\n} \n//msg.timestamp = year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;\nmsg.payload = day+'.'+month+'.'+year+' - '+hour+':'+minute+':'+second;\n\nreturn msg;","outputs":1,"noerr":0,"x":469,"y":426,"z":"2cd3b4a8.0e4174","wires":[["c78b0c07.5cbd98","4ded2049.b212e"]]},{"id":"1564d9c4.ea9b26","type":"debug","name":"","active":true,"console":"false","complete":"false","x":460,"y":366,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"f99ef869.066108","type":"debug","name":"","active":true,"console":"false","complete":"false","x":765,"y":373,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"6cd46de8.932b94","type":"debug","name":"","active":true,"console":"false","complete":"false","x":459,"y":456,"z":"2cd3b4a8.0e4174","wires":[]},{"id":"4ded2049.b212e","type":"debug","name":"","active":true,"console":"false","complete":"false","x":753,"y":471,"z":"2cd3b4a8.0e4174","wires":[]}]
Gruß
Jürgen
-
Hallo,
ich nutze die openweather API und möchte mir Sonnenaufgang/-untergang anzeigen lassen.
Ich habe nach diese Anleitung benutzt, funktioniert auch alles soweit.
Habe lediglich noch das Problem das ich derzeit -2 Stunden Zeitverschiebung habe in der Anzeige.
Ich weiß das es sich hier um die UTC Zeitangabe handelt.
Wie bringe ich meinem Node Red bzw dem Raspberry bei meine Zeitzone bei der Berechnung zu berücksichtigen?
Die Zeitzone am Raspberry ist richtig eingestellt.