JSON-APIs auswerten
Moderator: Co-Administratoren
Re: JSON-APIs auswerten
Bei mir läuft es auf deinem Raspberrymatic, aber eine relativ alte Version noch
--------------------------------------------
138 Kanäle in 55 Geräten und 111 CUxD-Kanäle in 7 CUxD-Geräten
--------------------------------------------
138 Kanäle in 55 Geräten und 111 CUxD-Kanäle in 7 CUxD-Geräten
--------------------------------------------
-
- Beiträge: 531
- Registriert: 17.04.2021, 17:12
- System: CCU
- Hat sich bedankt: 26 Mal
- Danksagung erhalten: 121 Mal
Re: JSON-APIs auswerten
Ich meine auf der CCU2 funktioniert das nicht mit https.
klappt bei mir jedenfalls.
und man beachte :
Harry
Code: Alles auswählen
string url = 'http://www.dwd.de/DWD/warnungen/warnapp/json/warnings.json';
url = "wget --no-check-certificate --timeout=2 -O - '"#url#"'";
string rueck;
string error;
system.Exec(url , & rueck, & error);
WriteLine(rueck);
und man beachte :
GrußÜber den Pfad https://www.dwd.de/DWD/warnungen/warnap ... nings.json wird eine JSONP-Datei zur Verfügung gestellt, in der der Warnstatus für Deutschland dargestellt wird.
Die einzelnen Kreise und Kriterien können über selbst erstellte Scripte ausgelesen und als Text oder Grafik umgesetzt werden.
JSONP wird anstelle von reinem JSON-Code zur Vermeidung von Domainabhängigkeiten verwendet. Im Unterschied gibt es vor dem eigentlich JSON-Code zusätzlich den Präfix "warnWetter.loadWarnings (" und am Ende noch ein " );". Werden die Anfangs- und Endzeichen entfernt (z.B. durch Nutzung einer "Substring"-Funktion) erhält man den reinen JSON-Code, der entsprechend verarbeitet werden kann.
Harry
Gruß
Harry
Harry
Re: JSON-APIs auswerten
so, nun habe ich den RaspberryMatic auf die aktuellste Version gelupft, jetzt läuft das Script bei mir auch ...
Danke für den Support
Danke für den Support
--------------------------------------------
138 Kanäle in 55 Geräten und 111 CUxD-Kanäle in 7 CUxD-Geräten
--------------------------------------------
138 Kanäle in 55 Geräten und 111 CUxD-Kanäle in 7 CUxD-Geräten
--------------------------------------------
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: JSON-APIs auswerten
Wie alt war die Version denn?
@Baxxy danke für die Unterstützung
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: JSON-APIs auswerten
Auch wenn es @Dome_2001 nicht mehr interessiert, habe ich mir das jetzt mal selber angeschaut.
Die generierten SV-Namen kann man noch etwas "verschönern", wenn man nach
einfügt:
Warum beim Inhalt von regionName0 immer der erste Buchstabe abgeschnitten wird, ist mir auch nicht ganz klar.
Erstaunt bin ich aber über
Die generierten SV-Namen kann man noch etwas "verschönern", wenn man nach
Code: Alles auswählen
! Array und Payload aufbereiten
Code: Alles auswählen
! Array und Payload aufbereiten
rueck = rueck.Substr(rueck.Find('{"time"'));
Erstaunt bin ich aber über
im SDV wurden CCU Laufzeit 0.297 sec gemessen
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- Baxxy
- Beiträge: 10648
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 597 Mal
- Danksagung erhalten: 2180 Mal
Re: JSON-APIs auswerten
Ich hatt's direkt im Script testen. Und wie das mit dem Zeitgefühl manchmal so ist kam es mir gefühlt recht lang vor.
Kann aber auch sein das der Datenabruf an sich länger dauerte weil durch meine Tailscale Experimente ein paar extra Runden (Routen) gedreht wurden. Ich probier's später nochmal.
Grüße, Baxxy
Re: JSON-APIs auswerten
Doch die war schon sehr alt. 1.47 oder sowas ..... aber jetzt geht alles Top
--------------------------------------------
138 Kanäle in 55 Geräten und 111 CUxD-Kanäle in 7 CUxD-Geräten
--------------------------------------------
138 Kanäle in 55 Geräten und 111 CUxD-Kanäle in 7 CUxD-Geräten
--------------------------------------------
Re: JSON-APIs auswerten
Heute gibt es für ganz Deutschland Sturmwarnungen. Das Script braucht bei mir heute ca.10 Sekunden bis zur Ausgabe. Leider taucht unser Landkreis in der Ausgabe nicht auf und die Variablen werden nicht befüllt, obwohl der Landkreis auf der DWD Seite(https://www.dwd.de/DWD/warnungen/warnap ... nings.json) mit dabei ist.
-
- Beiträge: 9562
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 696 Mal
- Danksagung erhalten: 1608 Mal
Re: JSON-APIs auswerten
Vielleicht läuft es in einem timeout und bricht ab. Erscheint mir aber auch nicht wirklich sinnig die Warnmeldungen für ganz DE in homematic zu verarbeiten.
EDIT: das ist ein halbes MB an Text! Selbst auf einem PC dauert copy & paste einen Sekundenbruchteil. Da muss man sich nicht wundern, wenn die CCU da sagt danke, mir reichts.
EDIT: das ist ein halbes MB an Text! Selbst auf einem PC dauert copy & paste einen Sekundenbruchteil. Da muss man sich nicht wundern, wenn die CCU da sagt danke, mir reichts.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Re: JSON-APIs auswerten
Hallo @MichaelN,
Erst mal Vorab: Bin begeistert, damit kann ich den Stromverbrauch in meinen Shellys auslesen und in der CCU weiter verarbeiten.
Allerdings hängt es bei mir an einer Stelle - ich habe im Code gesucht, aber da ich Hobby/Laien-Programmierer bin tue ich mir da schwer. Ich habe die aktuelle Version 1.9 (im Output steht noch 1.8 ) des Codes genutzt und wenn ich den Shelly auslese, wird leider eine Stelle "verschluckt":
=== HTTP-Request OK === {"power":75.53,"overpower":0.00,"is_valid":true,"timestamp":1637266006,"counters":[74.550, 73.390, 71.316],"total":383}
=== nach Replace === '"power":75.53,"overpower":0.00,"is-valid":true,"timestamp":1637266006,"counters":[74.550, 73.390, 71.316],"total":383'
=== nach Aufbereitung === 'power:75.53,overpower:0.00,is-valid:true,timestamp:1637266006,counters:[74.550\ 73.390\ 71.316],total:383'
=== Output V1.8 ===
Sy_Messsteckdose_power = '75.53'
Sy_Messsteckdose_overpower = '0.00'
Sy_Messsteckdose_is-valid = 'true'
Sy_Messsteckdose_timestamp = '1637266006'
Sy_Messsteckdose_counters0 = '4.550'
Sy_Messsteckdose_counters1 = '73.390'
Sy_Messsteckdose_counters2 = '71.316'
Sy_Messsteckdose_total = '383'
Replace & Aufbereitung funktionieren - aber beim Schreiben der Variable geht die erste Stelle des ...counters0 verloren.
Ist an und für sich nicht weiter tragisch, da der Shelly in den counters0 bis 2 die Wmin der letzten drei vollen Minuten fortschreibt - zum Daten loggen bin ich auf den counter1 ausgewichen. Da der Power Wert beim Shelly ziemlich unzuverlässig ist, habe ich meine "Wenn - Dann Szenarien" auch auf den Verbrauchscounter basiert. Da die 1. Stelle im Counter 0 "verschluckt" wird muss man hier auch auf den Counter1 ausweichen - der "Dann-Zweig" wird damit aber erst mit einer Minute Verzögerung abgearbeitet .
Vielleicht kannst Du das ja in einer der kommenden Versionen mal anschauen ...
Viele Grüße
Stephan
Erst mal Vorab: Bin begeistert, damit kann ich den Stromverbrauch in meinen Shellys auslesen und in der CCU weiter verarbeiten.
Allerdings hängt es bei mir an einer Stelle - ich habe im Code gesucht, aber da ich Hobby/Laien-Programmierer bin tue ich mir da schwer. Ich habe die aktuelle Version 1.9 (im Output steht noch 1.8 ) des Codes genutzt und wenn ich den Shelly auslese, wird leider eine Stelle "verschluckt":
=== HTTP-Request OK === {"power":75.53,"overpower":0.00,"is_valid":true,"timestamp":1637266006,"counters":[74.550, 73.390, 71.316],"total":383}
=== nach Replace === '"power":75.53,"overpower":0.00,"is-valid":true,"timestamp":1637266006,"counters":[74.550, 73.390, 71.316],"total":383'
=== nach Aufbereitung === 'power:75.53,overpower:0.00,is-valid:true,timestamp:1637266006,counters:[74.550\ 73.390\ 71.316],total:383'
=== Output V1.8 ===
Sy_Messsteckdose_power = '75.53'
Sy_Messsteckdose_overpower = '0.00'
Sy_Messsteckdose_is-valid = 'true'
Sy_Messsteckdose_timestamp = '1637266006'
Sy_Messsteckdose_counters0 = '4.550'
Sy_Messsteckdose_counters1 = '73.390'
Sy_Messsteckdose_counters2 = '71.316'
Sy_Messsteckdose_total = '383'
Replace & Aufbereitung funktionieren - aber beim Schreiben der Variable geht die erste Stelle des ...counters0 verloren.
Ist an und für sich nicht weiter tragisch, da der Shelly in den counters0 bis 2 die Wmin der letzten drei vollen Minuten fortschreibt - zum Daten loggen bin ich auf den counter1 ausgewichen. Da der Power Wert beim Shelly ziemlich unzuverlässig ist, habe ich meine "Wenn - Dann Szenarien" auch auf den Verbrauchscounter basiert. Da die 1. Stelle im Counter 0 "verschluckt" wird muss man hier auch auf den Counter1 ausweichen - der "Dann-Zweig" wird damit aber erst mit einer Minute Verzögerung abgearbeitet .
Vielleicht kannst Du das ja in einer der kommenden Versionen mal anschauen ...
Viele Grüße
Stephan