Wetterdaten aus awekas.at in Homey verwenden

Hallo zusammen,

als Homey-Beginner und ohne programmiertechnischen Hintergrund versuche ich gerade meinen 1. advanced flow.

Ziel ist, die Daten meiner eigenen Wetterstation, die auf awekas.at überträgt, in Homey zu verwenden.

In dem Beispiel habe ich die aktuelle Temperatur ausgewählt, später soll dann Regen usw. folgen.

Habe erst eine Variable Awekas_Temperatur als Nummer mit 0 definiert und dann diesen Flow mit Hilfe von KI und trial und error erzeugt.

Der Flow funktioniert, die Ausgabe als Nachricht am Ende dient vorerst nur zur Kontrolle.

Mein Problem ist, dass alle Werte der API in der Nachricht zu finden sind, aber eben nicht nur die Temperatur.

Habt ihr einen Tipp?

Vielen Dank und Grüße.

Ich gehe mal davon aus, dass Du die anderen Werte auch abfragen bzw. nutzen willst, korrekt?
Dann erstelle für die anderen Daten auch entsprechende Variablen, je nach Art eine numerische, eine Text, oder eine boolesche Variable, und parse diese alle parallel:

Danke für deinen Tipp.

Mein Problem ist aber, dass momentan ALLE Werte übergeben werden, obwohl ich nur die Temperatur ausgewählt habe. Dafür habe ich keine Lösung bzw. kann es mir nicht erklären. Ich sehe das ja in der an mich gesendeten Nachricht, die ich zu Testzwecken eingerichtet habe.

Okay, dann hatte ich Dein Problem falsch verstanden.
Ich hatte mit Hilfe von @RonnyW mal eine Abfrage für einen Stromzähler erstellt und einzelne Daten aus der GET Abfrage in ein virtuelles Gerät übergeben. Der Flow sah ungefähr so aus:


Anstelle eines virtuellen Geräts habe ich jetzt nur die entsprechende Logik Karte genommen, die das Ergebnis in eine Variable schreibt.

Danke für deine Idee. Habe deine und einige andere Varianten ausprobiert, bekomme aber immer nur ALLE Werte der API geschickt.

Meiner Meinung nach liegt es an der Schreibweise von temperature in der API.

Da ich kein Programmierer bin, kenne ich mit der Syntax nicht aus.

Wie sollte ich temperature (so steht es in den übergebenen Daten) korrekt schreiben?

Ich habe auch keinerlei Programmierkenntnisse, bin aber der Meinung, dass es ja erst mal korrekt ist, dass alle Daten bei einer Abfrage geschickt werden. Durch die zweite Logik Karte “Parse” soll dann nur die notwendige Info herausgefiltert werden. Deshalb gehe ich davon aus, dass der Eintrag in der zweiten Logik Karte falsch ist.

Poste mal bitte den gesamten Inhalt der HTTP-GET Anfrage. Sensible Inhalte kannst Du ja löschen oder durch X ersetzen.

So sieht das aus. Das. Ergebnis der Abfrage kann ich gerade nicht darstellen, bei anderer Syntax ist die temperature immer dabei, nur eben nicht einzeln.

Poste bitte den JSON String, den du für die Abfrage bekommst (als Code formatiert).

Wie schon geschrieben…du bekommst alle Daten mit einem Abruf. Du musst also für jedes Feld, dass du sehen möchtest, so eine JSON Parse-Karte verwenden und den Wert in eine entsprechende Capability eines virtuellen Gerätes schreiben - oder erst einmal in eine Variable.

1 Like

Danke Ronny, das ist genau das, was ich mit “Poste mal bitte den gesamten Inhalt der HTTP-GET Anfrage.” meinte.

Ich habe den alten Flow mal reaktiviert und schicke die Antwort, die ich bekomme. Sorry, dass ich das so noch nicht verstehe. Danke für eure Unterstützung

Geh mal bitte mit der Maus über diesen blauen Bereich. Da solltest du den Text komplett kopieren können.

Da steht nur der API-Key, sonst nichts.

das ist ein auszug aus der antwort der api:

{ “fetchdate”: 1773582397, “error”: null, “current”: { “datatimestamp”: 1773582389, “timeoffset”: 3600, “conditiontimestamp”: null, “condition”: 0, “temperature”: 7.3, “dewpoint”: 4, “windchill”: 7.3, “wetbulbtemperature”: 5.59, “humidity”: 79, “airpress_rel”: null, “tendency”: 0, “precipitation”: 1.3, “rainrate”: 0, “itsraining”: false,

Ich habe ehrlich gesagt keine Ahnung ob das einen Unterschied macht, aber in meinem Beispiel aus Post #4 hatte ich eine andere Logik Karte zum Parsen genommen:

Parse Antwort als JSON und WÄHLE Pfad temperatur als Nummern-Tag

Und in der nächsten Logik Karte wird das Ergebnis, also theoretisch die Temperatur, in eine Variable geschrieben.
So hatte damals zumindest meine Abfrage funktioniert.

Hier mal der JSON-Text etwas aufbereitet:

Kleine Anleitung dazu:

Der JSON enthält eine Variablen-Struktur (wie eine Tabellenzeile mit Feldern). Die “Zeile” beginnt mit dem {
Du brauchst nun das Feld “current”. Das enthält wieder eine Struktur/Zeile mit Feldern. Daraus brauchst du z.B. “Temperatur”.
Diesen “Weg” muss du jeweils mit Punkt getrennt zusammensetzen.

In der von Dirk genanten Flowkarte trägst du nun current.temperature als JSON-path ein.

1 Like

Hallo ihr zwei,

danke für eure Geduld sowie Ideen. ich habe die letzten Stunden damit verbracht, einen funktionierenden Flow mit Chat GPT zu erzeugen und den dann allen zur Verfügung zu stellen (war mein wunsch).

Mehrfach dachte ich, alles gelöst zu haben, aber so war es leider nicht.es scheitert immer an kleinen details. brauche gerade mal eine auszeit, dann probiere ich deine vorschläge, ronny.

danke.