Schrittweise Auswertung einer http-Antwort mit jq

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
PaulM
Beiträge: 209
Registriert: 16.02.2015, 17:05
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 63 Mal
Danksagung erhalten: 18 Mal

Schrittweise Auswertung einer http-Antwort mit jq

Beitrag von PaulM » 19.10.2021, 19:13

Ich mache eine http-Abfrage, deren Antwort alle notwendigen Informationen beeinhaltet

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("curl --connect-timeout 10 --max-time 10 'http://<IP>/status=json'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string antwort = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();   
Die Variable antwort werte ich schrittweise mit JQ aus (pro SV eine JQ Auswertung).

Bisher gelingt mir dies nur in Kombination mit der system.exec() der CCU (http://homematic-forum.de/forum/viewtop ... tf#p564824).

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("printf $(echo '"#antwort#"' | jq 'JQ-SYNTAX0')", &stdout, &stderr);
string antwort0 = stdout.ToFloat();  

system.Exec("printf $(echo '"#antwort#"' | jq 'JQ-SYNTAX1')", &stdout, &stderr);
string antwort1 = stdout.ToFloat(); 

system.Exec("printf $(echo '"#antwort#"' | jq 'JQ-SYNTAXn')", &stdout, &stderr);
string antwortn = stdout.ToFloat(); 
Wie kann ich auch die schrittweise jq-Auswertung mit CUxD umsetzen ?
Mit Mut und Entschlossenheit gegen Intoleranz

Hattermann
Beiträge: 105
Registriert: 14.12.2015, 19:58

Re: Schrittweise Auswertung einer http-Antwort mit jq

Beitrag von Hattermann » 16.01.2022, 18:22

Ich mache das ganz primitiv mit der such Funktion "String.Find".
Schau dir mal mein script an:
viewtopic.php?f=19&t=62796&p=695773&hil ... ti#p695773

Gruß Thomas

Antworten

Zurück zu „CUxD“