JSON-APIs auswerten

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

markusroman
Beiträge: 7
Registriert: 13.05.2022, 13:22
System: CCU

Re: JSON-APIs auswerten

Beitrag von markusroman » 13.05.2022, 15:34

OK, danke dir...

Merkwürdig ist, wenn ich mit Postman den Get Befehl verwende funktioniert es einwandfrei.
Nur von der CCU aus bekomme ich diesen Fehler...

Ich frag mich mal bei ein paar Kollegen durch, wenn ich was in Erfahrung bringe melde ich mich nochmal :-)

Danke nochmal für deinen/euren Support

Schönes Wochenende

Benutzeravatar
Baxxy
Beiträge: 10779
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2205 Mal

Re: JSON-APIs auswerten

Beitrag von Baxxy » 13.05.2022, 17:43

markusroman hat geschrieben:
13.05.2022, 15:34
Nur von der CCU aus bekomme ich diesen Fehler...
Mal so versucht?

Code: Alles auswählen

wget --user user --password pass http://example.com/
Grüße, Baxxy

markusroman
Beiträge: 7
Registriert: 13.05.2022, 13:22
System: CCU

Re: JSON-APIs auswerten

Beitrag von markusroman » 13.05.2022, 19:24

Ja - geht auch nicht ☹️

markusroman
Beiträge: 7
Registriert: 13.05.2022, 13:22
System: CCU

Re: JSON-APIs auswerten

Beitrag von markusroman » 13.05.2022, 21:23

Problem gefunden :-)
mit dem Wget schalter --auth-no-challenge funktioniert es :-)

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

Re: JSON-APIs auswerten

Beitrag von MichaelN » 13.05.2022, 21:26

Kannst Du das für nicht-Linuxer etwas detaillierter erläutern? Mit Codebeispiel am besten. Danke! Ich habe leider keine Website mit Authentifizierung um das selber zu testen.
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 +++

Benutzeravatar
Baxxy
Beiträge: 10779
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2205 Mal

Re: JSON-APIs auswerten

Beitrag von Baxxy » 13.05.2022, 23:10

Das kannst du wie jede andere Option an wget "anhängen"...
Also in deinem Script Zeile:

Code: Alles auswählen

url = "wget --no-check-certificate --timeout=2 -O - '"#url#"'";
zu:

Code: Alles auswählen

url = "wget --no-check-certificate --auth-no-challenge --timeout=2 -O - '"#url#"'";
Aber:
--auth-no-challenge
If this option is given, Wget will send Basic HTTP authentication information (plaintext username and password) for all requests, just like Wget 1.10.2 and prior did by default.
Use of this option is not recommended, and is intended only to support some few obscure servers, which never send HTTP authentication challenges, but accept unsolicited auth info, say, in addition to form-based authentication.
Nachzulesen (alle Optionen) z.B. hier: wget(1) - Linux man page

Grüße, Baxxy

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 » 27.05.2022, 17:23

Hallo MichaelN,

nachdem ich einiges erfolglos über den jq Befehl probiert hatte - ging das Parsen mit Deinem Script auf Anhieb.
Ich stolpere nur über eines: Einbinden einer Systemvariable in den url Teil. Dies benötige ich zur Authentifizierung über einen APIToken, welchen ich mit einem anderen Skript erfolgreich in eine Systemvariable schreiben kann. (Wenn ich also den Token in fix in das Script schreibe ist alles prima - dieser ist allerdings nur 1 Stunde gültig)

Code: Alles auswählen

...
object token = dom.GetObject("APIToken");
url = "curl -v GET https://XXX -H 'Authorization: Bearer "token.Value()" '; 
Wo liegt mein Fehler? Oder muss ich bzgl. Deiner Scriptverarbeitung etwas beachten?

Danke und Grüße
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: 9650
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: JSON-APIs auswerten

Beitrag von MichaelN » 27.05.2022, 18:46

Strings werden mit # verkettet.
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 » 02.06.2022, 10:02

Hallo Michael,
ist es möglich, zwei URLs zu verknüpfen, also gemeinsam in einem Rutsch auszuwerten?
Danke und Grüße
Christian
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: 9650
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: JSON-APIs auswerten

Beitrag von MichaelN » 02.06.2022, 10:45

Das habe ich och nie ausprobiert.
Prinzipiell musst Du nur den Block zum Abruf der Daten duplizieren und im 2. Block die Zeile

Code: Alles auswählen

rueck = dom.GetObject(CUXD_Device#".CMD_RETS").State();
Ändern zu

Code: Alles auswählen

rueck = rueck # dom.GetObject(CUXD_Device#".CMD_RETS").State();
(Wenn Du Cuxd benutzt)

Oder für System. Exec:

Code: Alles auswählen

system.Exec(url , &rueck, &error);
Ersetzen durch

Code: Alles auswählen

string rueck2;
system.Exec(url , &rueck2, &error);
rueck = rueck # rueck2;
Aber ob das Skript 2 aneinandergehängte JSON fehlerfrei interpretiert müsstest Du ausprobieren.
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 +++

Antworten

Zurück zu „Projektvorstellungen“