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
Aus der CCU Python Programme starten und Werte in Systemvariable speichern
Moderator: Co-Administratoren
-
- Beiträge: 3
- Registriert: 27.05.2023, 19:06
- System: CCU
Aus der CCU Python Programme starten und Werte in Systemvariable speichern
Zuletzt geändert von Roland M. am 27.05.2023, 22:14, insgesamt 1-mal geändert.
Grund: Thema verschoben
Grund: Thema verschoben
- Black
- Beiträge: 5483
- 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
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
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
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
-
- Beiträge: 3
- Registriert: 27.05.2023, 19:06
- System: CCU
Re: Aus der CCU Python Programme starten und Werte in Systemvariable speichern
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
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
- Black
- Beiträge: 5483
- 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
sollte so gangbar sein
system.Exec("python3 myscript.py &");
myscript.py muss natürlich ausführbar sein
Black
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
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
-
- Beiträge: 3
- Registriert: 27.05.2023, 19:06
- System: CCU
Re: Aus der CCU Python Programme starten und Werte in Systemvariable speichern
Vielen Dank an BLack!