NEWS
Daten an wunderground senden
-
Hallo zusammen.
Auf der Arbeit (Landwirtschaft) haben wir eine Wetterstation welche offiziell nur f
ü
r Modelle verwendet wird. Ich m
ö
chte die aktuellen Daten aber gerne jederzeit einfach auf dem Smartphone anschauen k
ö
nnen. Daher ist mein Plan die Daten an wunderground.com zu senden, so kann ich (und auch andere vom Betrieb) die Daten anschauen.
Mithilfe einer Api abfrage kann ich die Daten bereits herunterladen und auch die einzelnen Punkte unter Objekte speichern.
Aber wie bekomme ich sie zu wunderground.com? In den tiefen vom Internet habe ich diese Adresse gefunden:
http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID="xxx"&PASSWORD="xxx"&dateutc=now&tempf="#tempf#"&humidity="#humidity#"&windspeedmph="#windspeedmph#"&&windgustmph="#idwindgustmph#"&winddir="#winddir#"&rainin="#dailyraininnow#"&dailyrainin="#dailyrainin#"&baromin="#baromin#"&solarradiation="#idsolarradiation#"&dewptf="#iddewpointf#"&action=updateraw'");
Passwort und Id ist vorhanden, ich muss also nur noch meine Daten da hinein bekommen und das ganze irgendwie absenden.
Achja, die Temperatur muss nat
ü
rlich noch von Celsius zu Fahrenheit umgerechnet werden. Mit einem Funktions Node habe ich das bereits erledigt. Die Adresse muss also Daten aus dem Json String (der Api Abfrage) und dem msg.payload (vom Funktions Node) enthalten.Ich hoffe ich habe es verst
ä
ndlich ausgedr
ü
ckt und jemand kann mir helfen.Gruss
Hansj
ü
rg -
@hafo Ich mache gerade
ä
hnliches mit der AccuWeather - Du kannst Dir das ja mal anschauen. Allerdings frage ich mich gerade f
ü
r wunderground gibts doch einen iobroker Adapter. Hast Du Dir schon mal angeschaut ?Ansonsten kannst ja mal anschauen, was ich gerade mit dem AccuWeather Projekt mache: https://forum.iobroker.net/topic/44684/accuweather-mit-nodered-f
ü
r-iobroker-verf
ü
gbar-machen/2Da siehst Du auch ganz generelle - wenn Du die URL hast wie Du in Node Red die HTTP Request Nodes verwendest.
Du nimmst wie ich in dem Subflow - einfach eine Template Node und kannst dann die URL in die HTTP Node schicken.
Wie Du den JSON String auseinander nimmst wei
ß
t Du? Ansonsten habe ich noch eine Node gebastelt, die Dir das einen JSON in einzelne Nachrichten oder in eine iobroker Stuktur speichern:https://forum.iobroker.net/topic/43856/json-string-oder-java-object-in-iobroker-struktur
-
@hafo Ich mache gerade
ä
hnliches mit der AccuWeather - Du kannst Dir das ja mal anschauen. Allerdings frage ich mich gerade f
ü
r wunderground gibts doch einen iobroker Adapter. Hast Du Dir schon mal angeschaut ?Ansonsten kannst ja mal anschauen, was ich gerade mit dem AccuWeather Projekt mache: https://forum.iobroker.net/topic/44684/accuweather-mit-nodered-f
ü
r-iobroker-verf
ü
gbar-machen/2Da siehst Du auch ganz generelle - wenn Du die URL hast wie Du in Node Red die HTTP Request Nodes verwendest.
Du nimmst wie ich in dem Subflow - einfach eine Template Node und kannst dann die URL in die HTTP Node schicken.
Wie Du den JSON String auseinander nimmst wei
ß
t Du? Ansonsten habe ich noch eine Node gebastelt, die Dir das einen JSON in einzelne Nachrichten oder in eine iobroker Stuktur speichern:https://forum.iobroker.net/topic/43856/json-string-oder-java-object-in-iobroker-struktur
@mickym Danke f
ü
r die Antwort. Mein Hauptproblem ist wahrscheinlich dass ich Daten an Wunderground.com senden m
ö
chte. F
ü
r das abrufen gibt es wirklich einen Adapter, aber zum senden habe ich nichts gefunden.
Mein Flow sieht aktuell so aus

Kann das soweit funktionieren, oder muss ich die beiden Strings zuerst noch zusammenf
ü
hren? Alternativ k
ö
nnte ich auch alle Punkte zusammenf
ü
hren welche ich bereits herausextrahiert habe.
Ich arbeite mich nun als erstes etwas ins template node ein. -
@mickym Danke f
ü
r die Antwort. Mein Hauptproblem ist wahrscheinlich dass ich Daten an Wunderground.com senden m
ö
chte. F
ü
r das abrufen gibt es wirklich einen Adapter, aber zum senden habe ich nichts gefunden.
Mein Flow sieht aktuell so aus

Kann das soweit funktionieren, oder muss ich die beiden Strings zuerst noch zusammenf
ü
hren? Alternativ k
ö
nnte ich auch alle Punkte zusammenf
ü
hren welche ich bereits herausextrahiert habe.
Ich arbeite mich nun als erstes etwas ins template node ein.@hafo Du arbeitest am besten damit, dass Du die Werte, die verschicken musst in einer Flowvariablen speicherst, am Besten in einem Objekt. Die Eigenschaften dieses Objektes in der Flowvariablen kannst Du dann aus unterschiedlichen Nachrichten speichern.
Wenn Du verschicken willst, dann l
ä
dst Du die Flowvariable wieder in eine Payload und verteilst die Eigenschaften in der Template Node. Nachrichten warten nicht auf Dich.Verschicken geht definitiv weder mit einer Websocketout, noch mit einer http out Node, sondern einzig und alleine
ü
ber die http request Node.Die ganzen http oder websocket out Nodes dienen einzig und alleine f
ü
r Clients, die Dein Node-Red als Webserver ansprechen.Ich poste gleich mal Deine URL mit den ersten 3 Variablen. (http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID="xxx"&PASSWORD="xxx"&dateutc=now&tempf="#tempf#"&humidity="#humidity#"&windspeedmph="#windspeedmph#")
Das ist alles was Du machen musst - die Inject Node machst Du dann halt alle 12 Stunden:

Hier die Nodes f
ü
r den Import: -
@hafo Du arbeitest am besten damit, dass Du die Werte, die verschicken musst in einer Flowvariablen speicherst, am Besten in einem Objekt. Die Eigenschaften dieses Objektes in der Flowvariablen kannst Du dann aus unterschiedlichen Nachrichten speichern.
Wenn Du verschicken willst, dann l
ä
dst Du die Flowvariable wieder in eine Payload und verteilst die Eigenschaften in der Template Node. Nachrichten warten nicht auf Dich.Verschicken geht definitiv weder mit einer Websocketout, noch mit einer http out Node, sondern einzig und alleine
ü
ber die http request Node.Die ganzen http oder websocket out Nodes dienen einzig und alleine f
ü
r Clients, die Dein Node-Red als Webserver ansprechen.Ich poste gleich mal Deine URL mit den ersten 3 Variablen. (http://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID="xxx"&PASSWORD="xxx"&dateutc=now&tempf="#tempf#"&humidity="#humidity#"&windspeedmph="#windspeedmph#")
Das ist alles was Du machen musst - die Inject Node machst Du dann halt alle 12 Stunden:

Hier die Nodes f
ü
r den Import:@mickym Vielen Dank f
ü
r deine Hilfe. Mein Flow sieht nun so aus und funktioniert!!! Wie du siehst muss ich einige Daten aus meiner eigenen Wetterstation eif
ü
gen.

Hast du dir das etwa so vorgestellt? Es ist etwas irritierend dass einige Nodes ins leere laufen aber die Daten dennoch verarbeitet werden. -
@mickym Vielen Dank f
ü
r deine Hilfe. Mein Flow sieht nun so aus und funktioniert!!! Wie du siehst muss ich einige Daten aus meiner eigenen Wetterstation eif
ü
gen.

Hast du dir das etwa so vorgestellt? Es ist etwas irritierend dass einige Nodes ins leere laufen aber die Daten dennoch verarbeitet werden.@hafo Nein das passt schon - ist so wie ich es mir vorgestellt habe. So wird immer nach der Datenermittlung der Request gesendet, theoretisch w
ä
re es auch m
ö
glich die Trigger nun zeitlich unabh
ä
ngig zu gestalten. 
Schw
ä
rze mal zur Sicherheit in den DebugAusgaben - Deine Authentisierungsangaben. 
-
@hafo Nein das passt schon - ist so wie ich es mir vorgestellt habe. So wird immer nach der Datenermittlung der Request gesendet, theoretisch w
ä
re es auch m
ö
glich die Trigger nun zeitlich unabh
ä
ngig zu gestalten. 
Schw
ä
rze mal zur Sicherheit in den DebugAusgaben - Deine Authentisierungsangaben. 
-
@mickym Ich habe noch eine Frage zum Change Nod. Ich muss die Windrichtung in Grad angeben. Eigentlich eine einfache Sache, N wird durch 0 ersetzt, S durch 180, SSW durch 202.5 usw. Mein Problem ist nun aber dass er bei mehreren Buchstaben z.B NW nicht 315 schreibt, sondern 0270.
[ { "id": "e2027318.ff3fd8", "type": "change", "z": "632ef6cf.cb9b68", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "N", "fromt": "str", "to": "0", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NNE", "fromt": "str", "to": "22.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NE", "fromt": "str", "to": "45", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "ENE", "fromt": "str", "to": "67.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "E", "fromt": "str", "to": "90", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "ESE", "fromt": "str", "to": "112.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SE", "fromt": "str", "to": "135", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SSE", "fromt": "str", "to": "157.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "S", "fromt": "str", "to": "180", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SSW", "fromt": "str", "to": "202.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SW", "fromt": "str", "to": "225", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "WSW", "fromt": "str", "to": "247.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "W", "fromt": "str", "to": "270", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "WNW", "fromt": "str", "to": "292.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NW", "fromt": "str", "to": "315", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NNW", "fromt": "str", "to": "337.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 650, "y": 260, "wires": [ [ "5803242.8b8315c", "5aabce05.21a9f" ] ] } ]Was muss ich
ä
ndern damit er in diesem Fall nicht N und W erkennt, sondern NW?
Gruss
Hansj
ü
rg -
@mickym Ich habe noch eine Frage zum Change Nod. Ich muss die Windrichtung in Grad angeben. Eigentlich eine einfache Sache, N wird durch 0 ersetzt, S durch 180, SSW durch 202.5 usw. Mein Problem ist nun aber dass er bei mehreren Buchstaben z.B NW nicht 315 schreibt, sondern 0270.
[ { "id": "e2027318.ff3fd8", "type": "change", "z": "632ef6cf.cb9b68", "name": "", "rules": [ { "t": "change", "p": "payload", "pt": "msg", "from": "N", "fromt": "str", "to": "0", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NNE", "fromt": "str", "to": "22.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NE", "fromt": "str", "to": "45", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "ENE", "fromt": "str", "to": "67.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "E", "fromt": "str", "to": "90", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "ESE", "fromt": "str", "to": "112.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SE", "fromt": "str", "to": "135", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SSE", "fromt": "str", "to": "157.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "S", "fromt": "str", "to": "180", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SSW", "fromt": "str", "to": "202.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "SW", "fromt": "str", "to": "225", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "WSW", "fromt": "str", "to": "247.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "W", "fromt": "str", "to": "270", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "WNW", "fromt": "str", "to": "292.5", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NW", "fromt": "str", "to": "315", "tot": "num" }, { "t": "change", "p": "payload", "pt": "msg", "from": "NNW", "fromt": "str", "to": "337.5", "tot": "num" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 650, "y": 260, "wires": [ [ "5803242.8b8315c", "5aabce05.21a9f" ] ] } ]Was muss ich
ä
ndern damit er in diesem Fall nicht N und W erkennt, sondern NW?
Gruss
Hansj
ü
rg@hafo Die Reihenfolge
ä
ndern. Die Regeln werden von oben nach unten abgearbeitet. Deswegen die spezifischen nach oben (3 Buchstaben, dann 2 Buchstaben, dann 1 Buchstabe). Die erste Regel halt
ä
ndern oder die payloads. Und E gegen O ersetzen. 
Ich habe schon einen Node fertig, da ich mein Icon auch rotieren lasse:
[ { "id": "5211424a.60543c", "type": "change", "z": "6a421c3f.cc35f4", "name": "set msg.windDirection", "rules": [ { "t": "set", "p": "windDirection", "pt": "msg", "to": "payload.Wind.Direction.English", "tot": "msg" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SSW", "fromt": "str", "to": "23", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "WSW", "fromt": "str", "to": "68", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "WNW", "fromt": "str", "to": "113", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NNW", "fromt": "str", "to": "158", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NNE", "fromt": "str", "to": "203", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "ENE", "fromt": "str", "to": "248", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "ESE", "fromt": "str", "to": "293", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SSE", "fromt": "str", "to": "338", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SW", "fromt": "str", "to": "45", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NW", "fromt": "str", "to": "135", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NE", "fromt": "str", "to": "225", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SE", "fromt": "str", "to": "315", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "S", "fromt": "str", "to": "0", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "W", "fromt": "str", "to": "90", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "N", "fromt": "str", "to": "180", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "E", "fromt": "str", "to": "270", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 3340, "wires": [ [ "b6ff2952.633758" ] ] } ] -
@hafo Die Reihenfolge
ä
ndern. Die Regeln werden von oben nach unten abgearbeitet. Deswegen die spezifischen nach oben (3 Buchstaben, dann 2 Buchstaben, dann 1 Buchstabe). Die erste Regel halt
ä
ndern oder die payloads. Und E gegen O ersetzen. 
Ich habe schon einen Node fertig, da ich mein Icon auch rotieren lasse:
[ { "id": "5211424a.60543c", "type": "change", "z": "6a421c3f.cc35f4", "name": "set msg.windDirection", "rules": [ { "t": "set", "p": "windDirection", "pt": "msg", "to": "payload.Wind.Direction.English", "tot": "msg" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SSW", "fromt": "str", "to": "23", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "WSW", "fromt": "str", "to": "68", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "WNW", "fromt": "str", "to": "113", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NNW", "fromt": "str", "to": "158", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NNE", "fromt": "str", "to": "203", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "ENE", "fromt": "str", "to": "248", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "ESE", "fromt": "str", "to": "293", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SSE", "fromt": "str", "to": "338", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SW", "fromt": "str", "to": "45", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NW", "fromt": "str", "to": "135", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "NE", "fromt": "str", "to": "225", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "SE", "fromt": "str", "to": "315", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "S", "fromt": "str", "to": "0", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "W", "fromt": "str", "to": "90", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "N", "fromt": "str", "to": "180", "tot": "str" }, { "t": "change", "p": "windDirection", "pt": "msg", "from": "E", "fromt": "str", "to": "270", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1140, "y": 3340, "wires": [ [ "b6ff2952.633758" ] ] } ] -
Aber weshalb ist bei dir N 180 und S 0? Gem
ä
ss dieser Tabelle ist es umgekehrt. -
Aber weshalb ist bei dir N 180 und S 0? Gem
ä
ss dieser Tabelle ist es umgekehrt. -
@hafo Ganz einfach weil man beim Wind nicht anzeigt woher er kommt, sondern wohin er bl
ä
st-;) Deswegen musst Du alles um 180
°
ä
ndern.
Also zeigt der Westwind nach Osten.

-
@mickym Klingt logisch. aber zum hochladen werde ich das richtigstellen m
ü
ssen. Nochmals vielen Dank und bald ein sch
ö
nes Wochenende.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
genau das wollte ich vermeiden