JSON-APIs auswerten

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: JSON-APIs auswerten

Beitrag von chriwi » 02.06.2022, 23:23

Besten Dank Michael!
Es hat nicht sauber funktioniert, d.h. bei gewünschten 12 SV aus zwei URLs sind 1-2 SV gerne mal "liegengeblieben".
Was auf den ersten Blick gut geht, ist die Aufteilung auf 2 Skripte, die ich mit 10s versetzt innerhalb des gleichen WebUI Programms laufen lasse.
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: JSON-APIs auswerten

Beitrag von chriwi » 07.06.2022, 14:34

Hallo Michael,

ich versuche eine Auswertung in das Skript zu integrieren, um in Abhängigkeit von einer ausgewerteten Variable eine SV (Boolean) zu setzen. Das Übersetzen einer ausgewerteten Variable in eine SV (Integer) funktioniert schon wunderbar.

Folgendes habe ich probiert, leider ohne Erfolg. Syntaxfehler (da lerne ich noch) oder Logik?

Code: Alles auswählen

if (Variable.Value() == 'OFF') {
	  dom.GetObject("Zustand").State(0);
}
elseif (Variable.Value() == 'AWAY') {
	  dom.GetObject("Zustand").State(0);
}
elseif (Variable.Value() == 'TIME-CONTROLLED') {
	  dom.GetObject("Zustand").State(1);
}
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: JSON-APIs auswerten

Beitrag von MichaelN » 07.06.2022, 14:48

Und wie ist

Code: Alles auswählen

Variable
definiert?
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 +++

chriwi
Beiträge: 77
Registriert: 20.12.2019, 16:42
Hat sich bedankt: 15 Mal
Danksagung erhalten: 1 Mal

Re: JSON-APIs auswerten

Beitrag von chriwi » 07.06.2022, 16:03

Als eigene Variable gar nicht bzw. nur basierend auf Deinem Skript -> JSON_operationMode0
Raspberry Pi 4 auf Bookworm mit Homebridge und HomeMatic 3.75.7 (piVCCU3, RPI-RF-MOD)
Homematic-HAP
HmIP-PSM, HmIP-PS, HmIP-PS-2 x2, HmIP-BSM x3, HmIP-BROLL x17, HmIP-WTH2, HmIP-STH, HmIP-SWDO, HmIP-SWSD x3, HmIP-WRC6, HmIP-SWDM-2 x2, HmIP-SCTH230
Garagentor (HMIP-SWDO, HM-LC-Sw1-Pl-CT-R1)
Solar-log Base 15, FW 6.0.2
Nuki 3 Pro
IKEA Tradfi (Licht, ShortButton -> Garagentor)
HM-pdetect mit Fritzbox-Config (Anwesenheit)

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: JSON-APIs auswerten

Beitrag von MichaelN » 07.06.2022, 16:27

Dann kann das auch nicht funktionieren. Woher soll die Skriptengine wissen, was Du mit Variable ansprechen willst?
Wie man Systemvariablen anspricht, kannst Du Dir in der Signatur unter "undokumentierte Skript Befehle" ansehen.
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 +++

Tyfys
Beiträge: 544
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 123 Mal

Re: JSON-APIs auswerten

Beitrag von Tyfys » 07.06.2022, 18:36

In deinem Falle kann die Auswertung statt über if / ifelse - Blöcke
auch durch ein einziges Statement erledigt werden.
Ich hätte das einfach am Ende des Scripts eingefügt:

Code: Alles auswählen

string JSON_operationMode0 = dom.GetObject(ID_SYSTEM_VARIABLES).Get("JSON_operationMode0").Value();
boolean zustand = (JSON_operationMode0 == "TIME-CONTROLLED") ;
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Zustand").State(zustand);
Gruß
Harry

zulumatic
Beiträge: 7
Registriert: 30.12.2016, 10:43

Re: JSON-APIs auswerten

Beitrag von zulumatic » 30.11.2022, 18:50

Hallo Zusammen,

ich benutze das Script endlich seit langem wieder weil es im Sommer plötzlich nicht mehr funktionierte.
Nur zur Info: ich hatte die DNS Einträge in der Rasperrymatic auf Freie Betreiber umgestellt die nachweislich nicht tracken etc. und bekam immer nur eine Fehlermeldung bei der Auführung des Scripts. Heute, nach unzähligen Stunden der Fehlersuche einfach mal die üblichen Verdächtigen eingetragen und es funzt wieder.

Vielen Dank für diesen großartigen Code....

Eine Frage hätte ich noch.

Wenn man im Browser die Seite aufruft gibt es ja 3 Reiter: JSON Raw Data und Header

Unter Header gibts ne Zeile: RateLimit-Remaining also die noch freien Abfragen.

Das würde ich gerne mitverarbeiten. Beim Aufruf per: system.Exec(url , &rueck, &error);
steht das Zeugs ja in &error; (wenn man wget mit -d ausführt).

Wie bekomm ich diese Daten per Cuxd abfrage zurück?

Grüße aus dem Schwabenland...

MichaelN
Beiträge: 9635
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1614 Mal

Re: JSON-APIs auswerten

Beitrag von MichaelN » 30.11.2022, 18:54

Wieso nutzt du nicht einfach System.Exec?
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 +++

tk1809
Beiträge: 15
Registriert: 18.01.2023, 21:38
System: CCU

Re: JSON-APIs auswerten

Beitrag von tk1809 » 18.01.2023, 21:50

Hallo,
ich möchte die API von Ondilo per script auf der CCU3 auslesen.
Die Prozedur API Token Exchange habe ich erfolgreich durchführen können.
Nun komme ich nicht weiter, ich denke, es liegt am wget header.
Ich habe es mit temperature1 versucht...
Ondilo API Anleitung: https://interop.ondilo.com/docs/api/cus ... -data-last

Pool-ID und Token sind entsprechend eingetragen:

string url = "https://interop.ondilo.com/api/customer ... emperature";
url = "wget --header=Authorization: Bearer Token, Accept: application/json, Accept-Charset: utf-8, Accept-Encoding: gzip, deflate, Content-Type: application/x-www-form-urlencoded "#url#"'";

Über Hilfe würde ich mich freuen.
Danke
Gruss

tk1809
Beiträge: 15
Registriert: 18.01.2023, 21:38
System: CCU

Re: JSON-APIs auswerten

Beitrag von tk1809 » 18.01.2023, 22:37

string url = "https://interop.ondilo.com/api/customer ... emperature";
url = "wget --header=Authorization: Bearer 66d1d961e4a5ce834a5599c0b00981c72f7c0215, Accept: application/json, Accept-Charset: utf-8, Accept-Encoding: gzip, deflate, Content-Type: application/x-www-form-urlencoded "#url#"'";

Antworten

Zurück zu „Projektvorstellungen“