Objekte per rest api auslesen mit einem Skript

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

cfleischmann
Beiträge: 22
Registriert: 20.04.2009, 12:05
Danksagung erhalten: 1 Mal

Objekte per rest api auslesen mit einem Skript

Beitrag von cfleischmann » 28.01.2021, 17:52

Hallo,
ich habe ein Problem, dass ich bei einer mystrom steckdose den momentanen Verbrauch auslesen möchte, in eine Variable schreiben,
und diese in eine Systemvariable schreiben möchte..

Das wollte ich über ein Skript machen, dass zb. alle 15 minuten den verbrauch der Steckdose abfragt..
die Rest Ip dafür lautet: http://[IP]/report

zurück bekomme ich dann soetwas:

Code: Alles auswählen

{
  "power": 35.804927825927734,
  "relay": true,
  "temperature": 21.369983673095703
}
hier wollte ich "Power" auslesen, und in eine Variable schreiben, die ich bei "Systemvariablen" in der Homematic anzeigen wollte..

Aber wie stelle ich das an? - welche Syntax muss das skript haben?
Hab leider noch nie selbst eine Variable erstellt und weiss daher nicht so recht weiter..

Vielen dank schonmal im vorraus für eure tipps
Zuletzt geändert von alchy am 28.01.2021, 20:51, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von MichaelN » 28.01.2021, 18:22

EDIT 20.07.2021
Jetzt habe ich mal den ganz großen Wurf gemacht und das Skript soweit erweitert, das es auch beliebige, komplexere, valide JSON-Ausgaben von Web-Seiten / APIs auswerten kann.

zur besseren Pflege und Wartung habe ich das Skript nun hier
viewtopic.php?f=18&t=68762
veröffentlicht. Dort steht immer der aktuellste Stand!
Zuletzt geändert von MichaelN am 20.07.2021, 12:47, insgesamt 17-mal geändert.
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 +++

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von MichaelN » 30.01.2021, 12:06

Danke fürs Feedback :(
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 +++

cfleischmann
Beiträge: 22
Registriert: 20.04.2009, 12:05
Danksagung erhalten: 1 Mal

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von cfleischmann » 30.01.2021, 14:06

Danke dir vielmals.. :roll:

Hab es bisher zeitlich noch nicht geschafft. Werd mich nächste
Woche mal dransetzen...

Sieht gut aus soweit.

Muss mich auch noch ein bischen weiter einarbeiten.

BF0911
Beiträge: 59
Registriert: 08.04.2018, 11:10

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von BF0911 » 11.05.2021, 11:08

Hi,

@MichaelN

ich hab dein Script erfolgreich getestet.

Danke dafür.

Mir erschließt sich noch nicht ganz, wie ich die Werte der Abfrage in eine Systemvariable schreiben kann.

Kannst du mir da auf die Sprünge helfen?

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von MichaelN » 11.05.2021, 11:14

Das macht es doch schon. Du musst die SV nur vorher entsprechend anlegen.
Dazu gibt es den Prefix, damit die SV Namen eindeutig bleiben.
Definierst Du Prefix = "Skript_" müssen die SV alle mit "Skript_" anfangen
Und der Name des SV ergibt sich aus dem Namen des JSON Parameters.
Wenn im JSON steht Temperature, dann heisst die SV "Skript_Temperature"

Und wenn Du das Skript unter "Skript testen" laufen lässt, dann gibt es Dir sogar eine Liste der möglichen SV Namen und der Werte die da abgelegt würden aus.
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 +++

BF0911
Beiträge: 59
Registriert: 08.04.2018, 11:10

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von BF0911 » 12.05.2021, 07:44

Wenn ich das Skript ausführe, erhalte ich die folgende Daten zurück:

HTTP-Request OK
Pool_
secure_counter = 456
Pool_
symbol = °C
Pool_
temperature = 21.37
Pool_
unit = Celsius


Damit ist der Prefix ja Pool_

Wenn ich dich nun richtig verstanden habe, müsse ich nur eine systemvariable mit dem Namen Pool_temperature erstellen und dein Programm würde den Wert in die Variable schreiben.

Das tut er bei mir aber nicht.

Das Skript soll stündlich ausgeführt werden.
WEnn ich das Programm manuell starte, müsste ich ja den Wert in der Variablen haben.

Diese ist bei mir immer 0,00°C

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von MichaelN » 12.05.2021, 08:05

Danke für das Feedback. Die Tücke steckt im Detail. Ich muss noch ein paar Tests machen...
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 +++

MichaelN
Beiträge: 9562
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 696 Mal
Danksagung erhalten: 1608 Mal

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von MichaelN » 12.05.2021, 09:22

Habe das Skript im Ursprungspost viewtopic.php?f=26&t=65051&p=639981#p639981 angepasst.
Nun kommt es auch mit Zeilenumbrüchen klar.
Bitte einmal 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 +++

BF0911
Beiträge: 59
Registriert: 08.04.2018, 11:10

Re: Objekte per rest api auslesen mit einem Skript

Beitrag von BF0911 » 12.05.2021, 09:44

Danke, das klappt tadellos.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“