JSON-APIs auswerten
Moderator: Co-Administratoren
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
Nein, es würden trotzdem lesbare Zeichen gesendet. Das was du zeigst ist aber kein plain text sondern irgendwas binär codiertes.
Wenn du die URL im Browser aufrufst, musst du ein JSON angezeigt bekommen.
Wenn du die URL im Browser aufrufst, musst du ein JSON angezeigt bekommen.
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: 118
- Registriert: 20.02.2019, 10:42
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 38 Mal
- Danksagung erhalten: 5 Mal
Re: JSON-APIs auswerten
Hallo MichaelN,
ein tolles Skript, danke schön dafür !
Ich lese damit meine Sonnenbatterie (Photovoltaik) aus und das klappt wirklich phänomenal gut.
Im Gegensatz zu deiner Erklärung im Eingangspost mußte ich aber eine weitere Zeile anpassen:
alt: url = "wget --no-check-certificate --timeout=2 -O - '"#url#"'";
neu: url = "wget --header 'Auth-Token: xxxxxxxx-asdfghjk-11199b7-frghis4523' --timeout=2 -O - '"#url#"'";
In der "alten" Version bekam ich einen Authentifizierungsfehler, mit dem Token funzte es auf Anhieb.
Herzliche Grüße
PHundhausen
Edit: Der Token muß natürlich auf das jeweilige System angepaßt sein !
ein tolles Skript, danke schön dafür !
Ich lese damit meine Sonnenbatterie (Photovoltaik) aus und das klappt wirklich phänomenal gut.
Im Gegensatz zu deiner Erklärung im Eingangspost mußte ich aber eine weitere Zeile anpassen:
alt: url = "wget --no-check-certificate --timeout=2 -O - '"#url#"'";
neu: url = "wget --header 'Auth-Token: xxxxxxxx-asdfghjk-11199b7-frghis4523' --timeout=2 -O - '"#url#"'";
In der "alten" Version bekam ich einen Authentifizierungsfehler, mit dem Token funzte es auf Anhieb.
Herzliche Grüße
PHundhausen
Edit: Der Token muß natürlich auf das jeweilige System angepaßt sein !
------------------------------------------
Stand 27.01.2024:
Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------
Stand 27.01.2024:
Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------
-
- Beiträge: 82
- Registriert: 14.03.2020, 16:47
- Hat sich bedankt: 11 Mal
- Danksagung erhalten: 1 Mal
Re: JSON-APIs auswerten
Hallo,
ich lese mit dem Script meinen Fronius Wechselrichter aus. Das funktioniert bis auf eine Sache sehr gut.
Wo ich ein Problem habe ist folgendes:
Wenn die Solarleistung auf 0 sinkt (Abends), dann ist der Wert nicht mehr in der API vorhanden und wird vom Script auch nicht mehr gefunden.
Damit bleibt die ausgelesenen Solarleistung, die in eine SV geschrieben wird, auf dem zuletzt ausgelesenem Wert. Wie bekomme ich den Wert sinnvoll auf 0 geschrieben wenn die Solarleistung nicht mehr in der API steht?
Ich hoffe ich habe das verständlich beschrieben?!
Danke schon mal für Eure Hilfe und Hinweise. Danke!
Gruß,
Dani3000
ich lese mit dem Script meinen Fronius Wechselrichter aus. Das funktioniert bis auf eine Sache sehr gut.
Wo ich ein Problem habe ist folgendes:
Wenn die Solarleistung auf 0 sinkt (Abends), dann ist der Wert nicht mehr in der API vorhanden und wird vom Script auch nicht mehr gefunden.
Damit bleibt die ausgelesenen Solarleistung, die in eine SV geschrieben wird, auf dem zuletzt ausgelesenem Wert. Wie bekomme ich den Wert sinnvoll auf 0 geschrieben wenn die Solarleistung nicht mehr in der API steht?
Ich hoffe ich habe das verständlich beschrieben?!
Danke schon mal für Eure Hilfe und Hinweise. Danke!
Gruß,
Dani3000
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
Da muss ich erstmal drüber nachdenken.
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: 118
- Registriert: 20.02.2019, 10:42
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 38 Mal
- Danksagung erhalten: 5 Mal
Re: JSON-APIs auswerten
In so einem Fall würde ich, bevor ich das Verarbeitungsskript aufrufe, die Variable manuell auf 0 oder einen Dummywert setzen, den ich dann klar von echt gelieferten Werten unterscheiden kann
------------------------------------------
Stand 27.01.2024:
Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------
Stand 27.01.2024:
Home (RaspberryMatic auf RP4 mit HB-RF-ETH): 1203 Kanäle in 202 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten
Office (RaspberryMatic auf CCU3): 359 Kanäle in 51 Geräten und 16 CUxD-Kanäle in 1 CUxD-Geräten:
------------------------------------------
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
dann hast du aber immer einen zusätzlichen null Wert. das könnte stören. oder, man setzt den mit Verzögerung. und wenn ein Wert ausgelesen wird, wird die Verzögerung dadurch überschrieben.
das könntest du mal ausprobieren
das könntest du mal 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 +++
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: 82
- Registriert: 14.03.2020, 16:47
- Hat sich bedankt: 11 Mal
- Danksagung erhalten: 1 Mal
Re: JSON-APIs auswerten
Ja der zusätzliche Nullwert stört mich dann in der Historian Auswertung (Die Kurve ist dann nur gezackel)
Mit Verzögert auf Null setzen. Hmm ich weiß was du meinst, aber wie ich das jetzt umsetze weiß grad auch nicht.
Ich stelle mir so was im API-Script vor wie: Wenn "Wert" nicht (mehr) vorhanden dann "0"
Aber das scheint mir ja auch nicht ganz so einfach, prinzipiell weiß das Script ja nicht was an "Daten" kommen soll. Hmmm.
Zusatz: Ich lasse das Sript nur zw. SA und SU laufen (Astrozeit) Vielleicht geht ja da was. (Gut ich könnte es nach der SU-Zeit einfach auf Null setzen.
Aber es könnte auch tagsüber mal keine Sonne (Solarleistung) da ein.
- Baxxy
- Beiträge: 10969
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 622 Mal
- Danksagung erhalten: 2264 Mal
Re: JSON-APIs auswerten
Du kannst ja mal das vollständige JSON posten.
Einmal für den Tag und einmal für die Nacht.
Das kann man dann als Testdaten nehmen und ein bisschen mit "spielen". Vielleicht findest sich dann was.
Einmal für den Tag und einmal für die Nacht.
Das kann man dann als Testdaten nehmen und ein bisschen mit "spielen". Vielleicht findest sich dann was.
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
-
- Beiträge: 9764
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1646 Mal
Re: JSON-APIs auswerten
Code: Alles auswählen
WENN xxx
DANN SV JSON_xyz verzöget um 1 Minute auf 0
Skript ausführen
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: 240
- Registriert: 24.07.2015, 21:39
- System: Alternative CCU (auf Basis OCCU)
- Danksagung erhalten: 4 Mal
Re: JSON-APIs auswerten
Ich denke/hoffe, mit dem Script von MichaelN auf dem richtigen Weg zu sein, um den Füllstand meines Heizöltanks in eine Systemvariable einzulesen.
Offensichtlich scheitere ich an den im Eingangsthread aufgeführten, benötigten Fähigkeiten:
Offensichtlich scheitere ich an den im Eingangsthread aufgeführten, benötigten Fähigkeiten:
Die dazugehörige Azure API habe ich diesem Thread angehängt. Anhand der Azure API, habe ich das Script zunächst wie folgt angepasst:Grundkenntnisse in der WebUI-Programmierung (Anlegen und Ändern von Programmen, Einfügen und Anpassen von Skripten)
Anlegen von Systemvariablen
Skripte unter "Skript testen" laufen lassen und die Ausgaben verstehen und intepretieren
grundlegendes Logik-Verständnis / Abstraktionsvermögen um die beschriebenen Lösungen ggf. auf eigene Bedürfnisse anzupassen
Die für meinen Account individuellen Eintragungen unter Username, accountID, SecurityStamp und DeviceID habe ich natürlich vorgenommen, aber hier nicht aufgeführt, da es sich um Zugangsdaten handelt. Leider mündet die Ausgabe des Scripts in:!JSON universell auslesen
!V1.11 MichaelN viewtopic.php?f=18&t=68762
!GPL-3.0-or-later
string url = "https://devapiext.azurewebsites.net/api ... Fu_4PDnA==";
url = "--header 'Content-Type: text/plain' --data-raw '{"DeviceRequest":{"Username":"admin_pn@proteus.news","accountID":"2","SecurityStamp":"0bee5f07-c919-4ee6-935d-4b7bc5ae63e2","DeviceID":"5155888"}}'";
string prefix = "JSON_";
...
Mir gelingt es also leider noch nicht wirklich die Beschreibung der API in das Script zu adaptieren. Vielleicht kann mir jemand auf die Sprünge helfen?Error 1 at row 5 col 84 near ^":{"Username":"admin_pn@proteus.news","accountID":"2","SecurityStamp":"0bee5f07-
Parse following code failed:
!JSON universell auslesen
...
- Dateianhänge
-
- 2023-03-13_Azure_API_20Beschreibung_v02.pdf
- (334.92 KiB) 17-mal heruntergeladen