NEWS
Werte aus Wetterdaten selektieren
-
Hallo,
ich frage über HTTP Request die Daten meiner eigenen Wetterstation von Wunderground ab und erhalte z.b. folgende Werte, die ich in einem Datenpunkt unter "o_userdata" schreiben lasse:*{"observations":[{"stationID":"IHEI***12","obsTimeUtc":"2021-10-18T09:24:50Z","obsTimeLocal":"2021-10-18 11:24:50","neighborhood":"Rosental (10km southeast of Graz)","softwareType":"WH2602 V4.6.1","country":"AT","solarRadiation":116.8,"lon":17.551328,"realtimeFrequency":null,"epoch":1634549090,"lat":41.977921,"uv":4.0,"winddir":204,"humidity":80,"qcStatus":1,"metric":{"temp":12,"heatIndex":12,"dewpt":9,"windChill":12,"windSpeed":3,"windGust":8,"pressure":null,"precipRate":0.00,"precipTotal":0.00,"elev":415}}]}*
Zur weiteren Verarbeitung möchte ich mittels Blockly z.B. die Werte für "temp", "solarRadiation" und "precipTotal" selektieren. Bei meinen rudimentären Kenntnisse ist es mir leider trotz intensiver Recherche nicht gelungen eine Lösung zu finden.
Ich wäre sehr dankbar, wenn mir jemand weiter helfen könnte.
LG Karl -
@chappo59 sagte in Werte aus Wetterdaten selektieren:
{"observations":[{"stationID":"IHEI*12","obsTimeUtc":"2021-10-18T09:24:50Z","obsTimeLocal":"2021-10-18 11:24:50","neighborhood":"Rosental (10km southeast of Graz)","softwareType":"WH2602 V4.6.1","country":"AT","solarRadiation":116.8,"lon":17.551328,"realtimeFrequency":null,"epoch":1634549090,"lat":41.977921,"uv":4.0,"winddir":204,"humidity":80,"qcStatus":1,"metric":{"temp":12,"heatIndex":12,"dewpt":9,"windChill":12,"windSpeed":3,"windGust":8,"pressure":null,"precipRate":0.00,"precipTotal":0.00,"elev":415}}]}
Bin kein Blockly Spezialist - aber Du wandelst ohne die Sternchen am Anfang und Ende - das ganze in ein Objekt um.
Das geht wahrscheinlich mit diesem Baustein - für näheres musst einen Blockly Spezi fragen - gibt aber wahrscheinlich genügend Beispiele:
Wenn Du so was ohne die Sternchen in einen JSON Formatter eingibst (https://jsonformatter.org/)
dann bekommst Du so was
Sobald Du den JSON mit dem Baustein in ein JS Objekt umgewandelt hast greifst Du also für Deine gewünschten Werte mittels:
observations[0}.metric.temp
observations[0].metric.precipTotal
oder
observations[0].solarRadiationzu
-
@mickym
Danke für die Antwort und das war sicherlich gut gemeint.
Ich hab jetzt viel Zeit investiert, aber wie schon oben erwähnt bei meinen rudimentären Kenntnisse hat mir das leider überhaupt nicht weiter geholfen.
Vielleicht gibt es jemanden, der mir diesbezüglich etwas tiefer unter die Arme greifen kann.
LG Karl -
Wonderground? Da gibts doch schon was für iobroker.. schau mal hier:
https://github.com/SBorg2014/WLAN-Wetterstation -
-
@paul53 Aber muss er nicht mit dem Block erst den JSON String in das Objekt wandeln oder passiert das nun inzwischen mit dem neuen Javascript-Adapter automatisch?
-
@mickym sagte: Aber muss er nicht mit dem Block erst den JSON String in das Objekt wandeln
getAttr() wandelt automatisch in ein Objekt, wenn es sich um einen JSON-String handelt.
-
@mickym Herzlichsten Dank. Es funktioniert genial. Jetzt muss ich mir nur noch bei Gelegenheit Zeit nehmen um das Ganze auch zu verstehen, heute ist es schon zu spät.
LG Karl -
@chappo59 sagte in Werte aus Wetterdaten selektieren:
@mickym Herzlichsten Dank. Es funktioniert genial. Jetzt muss ich mir nur noch bei Gelegenheit Zeit nehmen um das Ganze auch zu verstehen, heute ist es schon zu spät.
LG KarlNa die Lorbeeren stehen @paul53 zu .
-
@mickym Sorry, falsch geklickt. Für einen über 60 jährigen Pensionisten, der in der Analogzeit aufgewachsen ist, ist das halt nicht immer so einfach. Aber ich bemüh mich so gut es geht