UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[Frage] [V3 IP1] YR.no Abfragen - Komplexes Json zerlegen

Wissen, Planung & Diskussion zur Unterstützung von Rest-API & Webabfragen im Timberwolf Server.
Stellt uns hier Eure Projekte und Ideen vor.
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln

Ersteller
paralan
Reactions:
Beiträge: 264
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 287 Mal
Danksagung erhalten: 102 Mal

[V3 IP1] YR.no Abfragen - Komplexes Json zerlegen

#1

Beitrag 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!! :bow-yellow:
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#2

Beitrag 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
Zuletzt geändert von blaubaerli am Mo Okt 18, 2021 10:54 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung

Ersteller
paralan
Reactions:
Beiträge: 264
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 287 Mal
Danksagung erhalten: 102 Mal

#3

Beitrag von paralan »

Hi Jens,

vielen Dank für deine schnelle Antwort. Das funktioniert soweit mal. :dance:
Dann ist "timeseries" als Array zu verstehen, wobei jedes Element die Wetterdaten der nächsten Stunde beinhaltet?
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#4

Beitrag von StefanW »

Hi Alan,

das Zerlegen von JSON wurde im MQTT Video erklärt

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#5

Beitrag 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... :whistle:, 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. :think:

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
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung

Ersteller
paralan
Reactions:
Beiträge: 264
Registriert: Mi Sep 05, 2018 11:49 pm
Hat sich bedankt: 287 Mal
Danksagung erhalten: 102 Mal

#6

Beitrag 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...
Gruß Alan

TWS 2600 ID:190; VPN offen; Reboot nach Absprache, da Beschattung über Logikeditor aktiv!

Sun1453
Reactions:
Beiträge: 1849
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1541 Mal
Danksagung erhalten: 788 Mal

#7

Beitrag 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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |

blaubaerli
Reactions:
Beiträge: 2308
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 884 Mal
Danksagung erhalten: 677 Mal

#8

Beitrag 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
Zuletzt geändert von blaubaerli am So Dez 12, 2021 8:13 pm, insgesamt 1-mal geändert.
wiregate1250 & timberwolf168 (2600er), VPN offen, Reboot nach Vereinbarung

Sun1453
Reactions:
Beiträge: 1849
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1541 Mal
Danksagung erhalten: 788 Mal

#9

Beitrag 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 ;)
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7632 Mal
Kontaktdaten:

#10

Beitrag von StefanW »

Hi Michael,

Das Zeitformat im String wird nicht dekodiert vom Server.

Habe ich erstmal keine Lösung für Dich

Lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.
Antworten

Zurück zu „HTTP-API, REST & Web-Abfragen“