NEWS
[gelöst] UTC aus openweather in MEZ umwandeln
-
guten morgen allerseits,
nach zwei tagen suchen und erfolglosem ausprobieren hoffe ich das mir
jemand von euch helfen kann. meine kenntnisse zum programmieren sind sehr bescheiden,
wenn überhaupt nur durch videos und viel lesen vorhanden. bin vor einer woche auf node-red gestoßen.
vorbei wurde alles über ssh und gpio gesteuert per handy app.
nun bin ich dabei mir meine poolsteuerung über node red zu erstellen.
soweit klappt schon einiges. filterpumpe, dosierpumpe, unterwasserscheinwerfer, bodensauger, lässt sich alles schalten.
was noch kommen wird ist ds18b20 fühler für das poolwasser und ein waagen sensor hx711 für den ph minus kanister.
nun habe ich auch die wetterdaten hinzugefügt. temperatur luftfeuchtigkeit und druck alles kein problem.
beim sonnenaufgang und sonnenuntergang gibt mir es nur die utc zeit aus.
habe im forum einen beitrag gefunden der leider genau dort aufhört wo jemand danach fragt wie es gehen könnte.
habe ein bild hinzugefügt. hoffe es wird angezeit. habe sämtliche sachen in die leiste links runtergeladen was mit time zu tun hat.
so einen art converter. hat aber nichts gebracht. meiner bescheiden logic nach gehört zwischen /Dashboard/Wetter/Sunset und dem textfeld Sonnenuntergang ein filter der mir die utc in eine andere zeit umwandelt. aber bei meinem pech wird dies wahrscheinlich nicht so einfach gehen. eins vorweg. wenn ich irgendwo java skrits eintragen muss dann werde ich sicher nachfragen.
hoffe das mir hier jemand helfen kann.
besten dank im voraus
9550_1.jpg
9550_2.jpg -
Statt der Bilder (oder zusätzlich) hättest du besser einen Export deines Flows gepostet.
Sieh die das function-node in folgender Nachricht an:
viewtopic.php?f=32&t=17318#p185280
Den kompletten Flow aus dem Beispiel findet du hier
-
stimmt auch wieder mit diesen bildern kann man nichts anfangen. :roll:
daher ich keine ahnung habe wie ich einen flow kopieren bzw. auswerten kann,
habe ich mir heute morgen das handbuch IoT-Programmierung mit Node-RED bestellt.
hoffe das man als neuling mit diesem buch einiges lernen kann.
ein bildchen habe ich aber noch. gehe davon aus das dies ein flow ist.
naja optimistisch sein bis mai 2019 sollte das projekt laufen.
9550_3.jpg -
wieder was gelernt hier glaube ich ist der flow
[{"id":"e166b9ac.9da2b8","type":"openweathermap in","z":"c4d3b02e.6038e","name":"","wtype":"current","lon":"","lat":"","city":"Henndorf am Wallersee","country":"Austria","language":"de","x":1760,"y":900,"wires":[["cc591ea8.ebffd"]]},{"id":"fd7da850.512f18","type":"debug","z":"c4d3b02e.6038e","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":2260,"y":900,"wires":[]},{"id":"ee413662.ede6f8","type":"mqtt out","z":"c4d3b02e.6038e","name":"","topic":"/Dashboard/Wetter/Sunset","qos":"","retain":"","broker":"e483034d.5368","x":2310,"y":960,"wires":[]},{"id":"cc591ea8.ebffd","type":"function","z":"c4d3b02e.6038e","name":"Sunset extrahieren","func":"return { payload: msg.payload.sunset };\n","outputs":1,"noerr":0,"x":2000,"y":900,"wires":[["fd7da850.512f18","ee413662.ede6f8"]]},{"id":"525d915d.997b9","type":"mqtt in","z":"c4d3b02e.6038e","name":"","topic":"/Dashboard/Wetter/Sunset","qos":"2","broker":"e483034d.5368","x":1790,"y":1020,"wires":[["ed8cdf6f.2aa41"]]},{"id":"ed8cdf6f.2aa41","type":"ui_text","z":"c4d3b02e.6038e","group":"f6fb8a4a.bc03f8","order":0,"width":0,"height":0,"name":"Sonnenuntergang","label":"Sonnenuntergang","format":"{{msg.payload}}","layout":"row-spread","x":2270,"y":1020,"wires":[]},{"id":"e483034d.5368","type":"mqtt-broker","z":"","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"f6fb8a4a.bc03f8","type":"ui_group","z":"","name":"Wetter","tab":"7e041499.dad40c","disp":true,"width":"6","collapse":false},{"id":"7e041499.dad40c","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]
-
` > daher ich keine ahnung habe wie ich einen flow kopieren bzw. auswerten kann,
habe ich mir heute morgen das handbuch IoT-Programmierung mit Node-RED bestellt. `
Ja, das würde ich dringend empfehlen, sonst wirst du auf die Dauer mit node-red nicht froh ;-(
Wenn du im Englischen einigermaßen fit bist, findest du hier alles Nötige:
Deutsche Dokus sind nicht so zahlreich. Vlt. kann das hier helfen:
https://wiki.ipv6lab.beuth-hochschule.d … _okt16.pdf
Import/Export findest du schon auf Seite 2.
-
Pack das in dein functions-node
//mit Min/sec var options = { hour: 'numeric', minute: 'numeric', second: 'numeric'}; var myTime = new Date(); //new date object myTime.setTime(msg.payload.sunset * 1000); //set linux time var myTimeString = myTime.toLocaleDateString('de-DE', options); //convert to string node.status({fill:"green",shape:"dot",text:myTimeString}); // dd:mm:jj //msg.payload = myTime.toLocaleDateString(); //convert to string // dd:mm:jj hh:mm:ss msg.payload = myTimeString; return msg;
Aber das Buch kann das nicht ersetzen;-)
-
guten morgen,
am freitag nachmittag habe ich es nicht mehr geschafft.
heute neuer tag neues glück und siehe da es funktioniert. großen dank an rewenode.
zum glück gibt es eine hilfsbereite gemeinschaft die
einem kräftig unter die arme greift wenn man ansteht.
einmal in dieser sache benötige ich bitte noch eure hilfe.
bekomme die zeit die mir jetzt umgewandelt wird nicht in mein text feld :roll:
[ { "id": "d57b7fe0.c89b4", "type": "openweathermap in", "z": "c4d3b02e.6038e", "name": "", "wtype": "current", "lon": "", "lat": "", "city": "Henndorf am Wallersee", "country": "Austria", "language": "de", "x": 1760, "y": 700, "wires": [ [ "e76f4c73.cb743" ] ] }, { "id": "145d2aaa.a6b375", "type": "mqtt out", "z": "c4d3b02e.6038e", "name": "", "topic": "/Dashboard/Wetter/Sunset", "qos": "", "retain": "", "broker": "e483034d.5368", "x": 2320, "y": 760, "wires": [] }, { "id": "e76f4c73.cb743", "type": "function", "z": "c4d3b02e.6038e", "name": "Sunset extrahieren", "func": "//mit Min/sec\nvar options = { hour: 'numeric', minute: 'numeric', second: 'numeric'};\n\nvar myTime = new Date(); //new date object\n\nmyTime.setTime(msg.payload.sunset * 1000); //set linux time\n\nvar myTimeString = myTime.toLocaleDateString('de-DE', options); //convert to string\nnode.status({fill:\"green\",shape:\"dot\",text:myTimeString});\n\n// dd:mm:jj\n//msg.payload = myTime.toLocaleDateString(); //convert to string\n\n// dd:mm:jj hh:mm:ss\nmsg.payload = myTimeString;\n\nreturn { payload: msg.payload.sunset };\n", "outputs": 1, "noerr": 0, "x": 2000, "y": 700, "wires": [ [ "145d2aaa.a6b375", "fd207cd1.94cab" ] ] }, { "id": "238709ac.a6e896", "type": "mqtt in", "z": "c4d3b02e.6038e", "name": "", "topic": "/Dashboard/Wetter/Sunset", "qos": "2", "broker": "e483034d.5368", "x": 1790, "y": 820, "wires": [ [ "5268a56d.39f8fc" ] ] }, { "id": "fd207cd1.94cab", "type": "debug", "z": "c4d3b02e.6038e", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "x": 2270, "y": 700, "wires": [] }, { "id": "5268a56d.39f8fc", "type": "ui_text", "z": "c4d3b02e.6038e", "group": "f6fb8a4a.bc03f8", "order": 0, "width": 0, "height": 0, "name": "", "label": "text", "format": "{{msg.payload}}", "layout": "row-spread", "x": 2260, "y": 820, "wires": [] }, { "id": "e483034d.5368", "type": "mqtt-broker", "z": "", "name": "", "broker": "localhost", "port": "1883", "clientid": "", "usetls": false, "compatmode": true, "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "closeTopic": "", "closeQos": "0", "closePayload": "", "willTopic": "", "willQos": "0", "willPayload": "" }, { "id": "f6fb8a4a.bc03f8", "type": "ui_group", "z": "", "name": "Wetter", "tab": "7e041499.dad40c", "disp": true, "width": "6", "collapse": false }, { "id": "7e041499.dad40c", "type": "ui_tab", "z": "", "name": "Home", "icon": "dashboard" } ]
-
Schön, das es läuft.
Der Text kommt nicht ins Textfeld, weil du im function-node das data-object (msg.payload.sunset) zurückgibst, was es an dieser stelle ohnehin nicht mehr gibt, da msg.payload mit````
msg.payload = myTimeString;Was du stattdessen zurückgeben willst ist der konvertierte String, also```` msg.payload
-
besten dank. hat super funtioniert. jetzt zeigt es mir das datum und die uhrzeit im text feld an.
besteht die möglichkeit in diesem code das datum auzublenden? mit () und # hätte ich es schon
probiert. auch mit löschen des dd.mm.jj hoffte ich zum erfolg zu kommen. leider immer daneben.
sollte es nicht möglich sein muss ich mich damit abfinden. nochmals ein herzliches dankeschön!
-
Das sollte einfach sein.
Mach dich mit dem Javascript date-object und seinen Methoden vertraut:
-
Bei der lokales 'de-DE' sollte das Datum eigentlich als
Do., 20.12.2012, 04:00:00
ausgegeben werden, ausgegeben wird es aber als
2018-12-03, Mon 23:56:00
-
Also ich habe das jetzt mit dem Modul (Node) node-red-contrib-moment gelöst und das funktioniert prima.
Hier kann man auch die Ausgabe formatieren wie man es möchte.