JSON-APIs auswerten
Moderator: Co-Administratoren
Re: JSON-APIs auswerten
Code: Alles auswählen
[string url = "https://interop.ondilo.com/api/customer/v1/pools/48640/lastmeasures?types[]=temperature";
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#"'";]
-
- Beiträge: 9650
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: JSON-APIs auswerten
Man kann seine Beiträge editieren...
Aber bei Problemen mit HTTP Authentifizierung kann ich nicht weiter helfen. Die Lösung würde mich zwar prinzipiell interessieren, da es immer öfter API gibt, die eine Methode zur Authentifizierung nutzen, aber das ist nicht das Thema dieses Thread.
Aber bei Problemen mit HTTP Authentifizierung kann ich nicht weiter helfen. Die Lösung würde mich zwar prinzipiell interessieren, da es immer öfter API gibt, die eine Methode zur Authentifizierung nutzen, aber das ist nicht das Thema dieses Thread.
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
Danke.
Authentifizierung sollte funktionieren, weil Ondilo über Pool-ID und den Access-Token authentifiziert.
Das habe ich erfolgreich auslesen können.
Die Header Einträge sind wohl das Problem, das restliche script ist unverändert.
Leider findet man nicht viel über Ondilo mit Homematic, deshalb die Bitte an die Experten.
Vielen Dank!
Authentifizierung sollte funktionieren, weil Ondilo über Pool-ID und den Access-Token authentifiziert.
Das habe ich erfolgreich auslesen können.
Die Header Einträge sind wohl das Problem, das restliche script ist unverändert.
Leider findet man nicht viel über Ondilo mit Homematic, deshalb die Bitte an die Experten.
Vielen Dank!
-
- Beiträge: 9650
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: JSON-APIs auswerten
Du brauchst da einen Experten für wget, nicht für Homematic
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: 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
Ich hatte dazu gestern ein bisschen mit CURL experimentiert...
Entweder stimmten/passten Pool-ID / Token nicht oder ich habe was falsch gemacht.
Edit: aktualisierte Version mit neuem Token
Ergab:
@Micha: am besten abtrennen lassen
Entweder stimmten/passten Pool-ID / Token nicht oder ich habe was falsch gemacht.
Edit: aktualisierte Version mit neuem Token
Code: Alles auswählen
string token = "4157cf8dafc2f9806b208017e4465806f1ecf6e8";
string url = "https://interop.ondilo.com/api/customer/v1/pools/48640/lastmeasures?types[]=temperature%20HTTP/1.1";
string curlcmd = 'curl -v '
+ url
+ ' -H "Authorization: Bearer ' + token + '"'
+ ' -H "Accept: application/json"'
+ ' -H "Accept-Charset: utf-8"'
+ ' -H "Accept-Encoding: gzip, deflate"'
+ ' -H "Content-Type: application/x-www-form-urlencoded"';
string stdout; string stderr;
system.Exec(curlcmd, &stdout, &stderr);
WriteLine("stdout:\n"#stdout); WriteLine("\nstderr:\n"#stderr);
Code: Alles auswählen
stdout:
{"error":"invalid_token","error_description":"The access token provided has expired"}
stderr:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [25 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [4292 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [520 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [52 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [52 bytes data]
> GET /api/customer/v1/pools/48640/lastmeasures?types[]=temperature%20HTTP/1.1 HTTP/1.1
> Host: interop.ondilo.com
> User-Agent: curl/7.86.0
> Authorization: Bearer 4157cf8dafc2f9806b208017e4465806f1ecf6e8
> Accept: application/json
> Accept-Charset: utf-8
> Accept-Encoding: gzip, deflate
> Content-Type: application/x-www-form-urlencoded
>
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [281 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [281 bytes data]
< HTTP/1.1 401 Unauthorized
< Date: Thu, 19 Jan 2023 21:53:00 GMT
< Server: Apache/2.4.41 (Ubuntu)
< WWW-Authenticate: Bearer realm="Service"
< WWW-Authenticate: error="invalid_token"
< WWW-Authenticate: error_description="The access token provided has expired"
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept, Origin, Authorization
< Access-Control-Allow-Methods: GET, POST, PUT, PATCH, DELETE, OPTIONS
< Cache-Control: no-store, no-cache, must-revalidate, max-age=0
< Cache-Control: post-check=0, pre-check=0
< Pragma: no-cache
< Content-Length: 85
< Content-Type: text/html; charset=UTF-8
<
{ [85 bytes data]
100 85 100 85 0 0 249 0 --:--:-- --:--:-- --:--:-- 249
100 85 100 85 0 0 249 0 --:--:-- --:--:-- --:--:-- 249
@Micha: am besten abtrennen lassen
Zuletzt geändert von Baxxy am 19.01.2023, 22:56, insgesamt 1-mal geändert.
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
- Henke
- Beiträge: 1521
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 140 Mal
- Danksagung erhalten: 306 Mal
Re: JSON-APIs auswerten
Ein paar "'" hier und da...
Liefert
Code: Alles auswählen
string url = "https://interop.ondilo.com/api/customer/v1/pools/48640/lastmeasures?types[]=temperature";
string exe = "wget --header='Authorization: Bearer 66d1d961e4a5ce834a5599c0b00981c72f7c0215, Accept: application/json, Accept-Charset: utf-8, Accept-Encoding: gzip, deflate, Content-Type: application/x-www-form-urlencoded' '"#url#"'";
!WriteLine(url);
string stdout; string stderr;
system.Exec(exe, &stdout,&stderr);
WriteLine ( "stdout: " # stdout );
if ( stderr ){WriteLine ( "stderr: " # stderr ); }
Code: Alles auswählen
stderr: --2023-01-19 20:16:27-- https://interop.ondilo.com/api/customer/v1/pools/48640/lastmeasures?types[]=temperature
Resolving interop.ondilo.com... 52.208.35.188
Connecting to interop.ondilo.com|52.208.35.188|:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Username/Password Authentication Failed.
-
- Beiträge: 9650
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: JSON-APIs auswerten
Ne, lass mal. Das sind ja durchaus Infos die sich noch als nützlich erweisen können.
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
Vielen Dank erstmal für eure Mühe!
Ist die Kommaabtrennung zwischen den Headerfeldern richtig?
Token ist der richtige, hier die Daten der Auhorisierung:
{'access_token': '4157cf8dafc2f9806b208017e4465806f1ecf6e8', 'expires_in': 3600, 'token_type': 'Bearer', 'scope': ['api'], 'refresh_token': '66d1d961e4a5ce834a5599c0b00981c72f7c0215', 'expires_at': 1674051387.1826448}
Found all those pools: [{'id': 48640, ect...
Hier habe ich noch korrigiert lt. Ondilo Anleitung:
Ist die Kommaabtrennung zwischen den Headerfeldern richtig?
Token ist der richtige, hier die Daten der Auhorisierung:
{'access_token': '4157cf8dafc2f9806b208017e4465806f1ecf6e8', 'expires_in': 3600, 'token_type': 'Bearer', 'scope': ['api'], 'refresh_token': '66d1d961e4a5ce834a5599c0b00981c72f7c0215', 'expires_at': 1674051387.1826448}
Found all those pools: [{'id': 48640, ect...
Hier habe ich noch korrigiert lt. Ondilo Anleitung:
Code: Alles auswählen
string url = "https://interop.ondilo.com/api/customer/v1/pools/48640/lastmeasures?types[]=temperature HTTP/1.1";