Aus der CCU Python Programme starten und Werte in Systemvariable speichern

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
ThomasZ1966
Beiträge: 3
Registriert: 27.05.2023, 19:06
System: CCU

Aus der CCU Python Programme starten und Werte in Systemvariable speichern

Beitrag von ThomasZ1966 » 27.05.2023, 19:34

Hallo Homematic-Gemeinde!
Ich hätte eine Frage zu Homematic und Python. Ich suche nun schon schon länger im Forum (sorry falls ich was übersehen habe) und mit pmatic bin ich auch nicht weitergekommen. Deshalb die Frage an Euch:

Ich habe als CCU Debmatic auf einem Rapberry Pi4 und möchte aus einem Python Program ein paar Varialbe als Systemvariable in die CCU bringen.Gibt es eine Möglcihkeit mit einem einfachen CCD Skript das Python Script zu starten und die Werte der Python Variablen in CCU Systemvariablen zu schreiben. Hintergrund der Aktion ist ich lese mit einem einfachen Python Script meinen Wechselrichter und Speicher aus (Stromerzeugung, aktueller Verbrauch, Netzeinspeisung, Laden/Entladen) und möchte dann wenn Stromüberschuß vorhanden ist diverse Verbraucher über meine CCU schalten.
Wie gesagt die Werte werden mit dem Python Skript in Variablen geschriben aber nun bringe ich sie leider nicht in die CCU. Geht sowas überhaupt?

Über Modbus ( habe hir im Forum das Super universale ModBus TCP Interface von Indi55 gefunden, vielen Dank) bekomme ich die Daten zwar aus meinem Varta Speicher aber nicht aus dem Wechselrichter da der Speicher laufend mit dem Wechselrichter verbunden ist und deshalb der ModBus blokiert ist. Deshalb bin ich den Weg über das Python gegenen welches mir die Werte aus dem Web Interface lokal ausliest.

Vielen vielen Dank falls mir da jemand weiterhelfen könnte.

Liebe Grüße,
Thomas
Zuletzt geändert von Roland M. am 27.05.2023, 22:14, insgesamt 1-mal geändert.
Grund: Thema verschoben

Benutzeravatar
Black
Beiträge: 5480
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Aus der CCU Python Programme starten und Werte in Systemvariable speichern

Beitrag von Black » 27.05.2023, 22:35

Systemvariablen kann du von extern (z.b. mit deinem Phyton Script) via der Remote Script Api der CCU beschreiben. Dabei bringst du z.b. ein Script in der Homematic Script Spache zur Ausführung.

Die Remote Script APi findet sich, ih würde in Phyton das POST nehmen

IP der CCU:8181/black.exe

syntax für eine Systemvariable zu beschreiben sieht exemplarisch so aus:

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("NameDerSystemVariablen").State (IchBinder Wert);

Ein Phyton Script auf einer Debmatic startest du über system.Exec

Was du defintiv nicht brauchst ist irgendwelche kostenplichtige Zusatzsoftware.

Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

ThomasZ1966
Beiträge: 3
Registriert: 27.05.2023, 19:06
System: CCU

Re: Aus der CCU Python Programme starten und Werte in Systemvariable speichern

Beitrag von ThomasZ1966 » 28.05.2023, 19:10

Hallo Black,

vielen vielen Dank für deine super schnelle Antwort und den super Tipp!
Ich dachte nicht daß dies so einfach ist mit einem Post Request aus Python direkt Werte in die Systemvariablen in der CCU zu schreiben. Habe das einfach wie von dir beschrieben in meim Python Script geschrieben und es hat sofort funktioniert.

requests.post(f'http://{IP_CCU}:8181/black.exe?ret=dom.GetObject(ID_SYSTEM_VARIABLES).Get ("VartaActivePower").State ({Wert})')

Ich habe jetzt auf meinem Raspberry mit der Debmatic auch einen Cronjob eingerichtet der alle 10 Minuten mein Python Skript startet und meine PV Daten in die CCU transferiert.

Eine Frage hätte ich noch gibt es die Möglcihkeit statt der Cronjobs das Python Skript aus der CCU zu starten?
Giene dies über SystemExe oder ein CuxD Gerät auch? Und falls ja wie müsste ich dann das Python Skript aufrufen?

Danke
Thomas

Benutzeravatar
Black
Beiträge: 5480
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 424 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: Aus der CCU Python Programme starten und Werte in Systemvariable speichern

Beitrag von Black » 28.05.2023, 20:51

sollte so gangbar sein

system.Exec("python3 myscript.py &");

myscript.py muss natürlich ausführbar sein


Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

ThomasZ1966
Beiträge: 3
Registriert: 27.05.2023, 19:06
System: CCU

Re: Aus der CCU Python Programme starten und Werte in Systemvariable speichern

Beitrag von ThomasZ1966 » 29.05.2023, 09:39

Vielen Dank an BLack!

Antworten

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