Seite 1 von 2
[V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Mo Okt 18, 2021 10:31 pm
von paralan
Hallo zusammen,
ich habe mich heute mit der HTTP-API Abfrage der Wetterdaten von
www.yr.no beschäftigt.
Die Base URL und die Ressource sind angelegt. Die Werte werden dann auch als komplexes Json angezeigt.
Ich verstehe jetzt nur noch nicht, wie ich aus diesem großen File die Wetterdaten als HTTP Antwort hinzufügen kann.
Es gibt ja verschiedene Wetterdaten mit der Unterscheidung "next_hours_1", "next_hours_6" und "next_hours_12". Auch gibt es diese bei der Wettervorschau bei den folgenden Tagen. Aber wie ist hier dann der Selektor anzugeben? Zum Beispiel die Variable "air_temperature" zu verschiedenen Zeiten / Tagen.
Hier eine Beispiel Konfig der Wetterdaten:
https://api.met.no/weatherapi/locationf ... t=33&lon=7
Vielen Dank für eure Unterstützung!!

Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Mo Okt 18, 2021 10:53 pm
von blaubaerli
Hi Alan,
probiere z.B. mal als Selektor:
properties.timeseries[0].data.instant.details.air_temperature
Der Rest sollte sich dann für dich implizit ableiten lassen, oder?
Beste Grüße
Jens
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Mo Okt 18, 2021 11:13 pm
von paralan
Hi Jens,
vielen Dank für deine schnelle Antwort. Das funktioniert soweit mal.
Dann ist "timeseries" als Array zu verstehen, wobei jedes Element die Wetterdaten der nächsten Stunde beinhaltet?
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Di Okt 19, 2021 7:49 am
von StefanW
Hi Alan,
das Zerlegen von JSON wurde im MQTT Video erklärt
lg
Stefan
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Di Okt 19, 2021 7:55 pm
von blaubaerli
Hi Alan,
zu deinen beiden Fragen:
paralan hat geschrieben: ↑Mo Okt 18, 2021 11:13 pm
Dann ist "timeseries" als Array zu verstehen, wobei jedes Element die Wetterdaten der nächsten Stunde beinhaltet?
Beide Male "Ja".
Aber die Schnittstelle hat schon ein paar Tücken. Daher kann ich dazu nur die entsprechende
Doku empfehlen.
Die Zeit kommt z.B. in Z-Zeit, hier bedarf es also noch entsprechender Umrechnung... Speziell zu den jeweiligen Uhrzeitumstellungen also kein ganz triviales Thema. Ich habe das noch nicht im Detail geprüft, was da für Zeiten rauskommen wenn man versucht einen entsprechenden KNX-Datentyp unmittelbar mit einem solchen String zu beschicken. Wenn da automatisch die passende lokale Zeit raus käme...

, speziell natürlich auch dann, wenn die Zeitumstellung noch nicht war, aber der Z-Zeit-Wert datumstechnisch schon nach der Uhrzeitumstellung liegt. Die Themen sind in der Informatik ja nicht neu und irgendwo gibt es dazu bestimmt auch fertige Bibliotheken, ob das Thema aktuell im Wolf integriert ist weiß ich allerdings nicht. Zudem will die EU die Umschalterei ja seit Ewigkeiten abschaffen. Also wäre hier die Prio wohler eher nachgeordnet.
Dann wird das Wettermodell bei denen nur in bestimmten Zyklen aktualisiert und es gibt auch noch die Unterscheidung zwischen der "/complete" und "/compact"-Methode. Das alles will natürlich auch inhaltlich bewertet werden.
Also technisch an die Daten zu kommen ist noch relativ leicht, dann aber auch was vernünftiges draus zu zaubern kann je nach Bedarf mitunter eine komplexe Herausforderung werden.
Willst du zum Beispiel wirklich für 88 Stunden in die Zukunft alle Elemente bewerten, wird dir dann auch recht schnell auffallen, dass je nachdem wann du die API aufrufst, bei den letzten Einträgen des Arrays einige Vorschauwerte z.B. dann fehlen. Im ersten Element der timseries findest du "next_12_hours" nebst Inhalten immer. Aber im 88sten Element (also das mit dem Index 87) findet sich derzeit nur "instant" aber "next_12_hours" und "next_6_hours" noch nicht. Das hängt wohl mit dem rolierenden Intervall zusammen.
Ich habe das Teil halt zu Beginn in der DEV auch mal exemplarisch unter die Lupe genommen, aber noch nicht wirklich was sinnstiftendes damit umgesetzt.
Beste Grüße
Jens
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Di Okt 19, 2021 9:00 pm
von paralan
Danke Jens für deine ausführliche Stellungnahme. Ich bin erstmal am schauen, was ich alles mit HTTP-API machen kann.
Die ersten Temperaturen zu lesen war dank dir ein erster Erfolg!!
Den Rest muss ich mal schauen, wie ich das sinnvoll in Habpanel anzeigen kann...
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: So Dez 12, 2021 7:56 pm
von Sun1453
blaubaerli hat geschrieben: ↑Mo Okt 18, 2021 10:53 pm
Hi Alan,
probiere z.B. mal als Selektor:
properties.timeseries[0].data.instant.details.air_temperature
Der Rest sollte sich dann für dich implizit ableiten lassen, oder?
Beste Grüße
Jens
Danke für die Abfrage und Erklärung weiter unten. Habe das gut damit hinbekommen.
Frage:
Hast du schonmal den Status ausgewertet?
Bekomme da keine Werte siehe Screenshots:
Wetter-Status-2.PNG
Wetter-Status-1.PNG
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: So Dez 12, 2021 8:13 pm
von blaubaerli
Hallo Michael,
nö, habe ich nicht. Das mit der Zeitangabe war mir dann nur für das Probieren mal was zu fummelig. Im Moment ist das leider mit der verfügbaren Zeit wider Erwarten was knapp geworden.
Beste Grüße
Jens
Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: So Dez 12, 2021 9:13 pm
von Sun1453
Hallo Jens,
alles gut. Dachte nur du hättest es eventuell umgesezt. Eventuell kann auch Stefan was dazu sagen, denn er hat ja mit YR.NO schon diverse Sachen angestellt.
PS: Da du Stefan eh jeden Beitrag liest klingel ich nicht mehr

Re: [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen
Verfasst: Mo Dez 13, 2021 8:44 am
von StefanW
Hi Michael,
Das Zeitformat im String wird nicht dekodiert vom Server.
Habe ich erstmal keine Lösung für Dich
Lg
Stefan