Homematic Script: Aktoren einem Gateway zuordnen
Moderator: Co-Administratoren
-
- Beiträge: 61
- Registriert: 14.12.2010, 12:19
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Homematic Script: Aktoren einem Gateway zuordnen
Hallo da draussen.
Für meine Beschattungssteuerung versuche ich, auftretende UNREACH Meldungen begegnen zu können.
Dazu überprüfe ich einige Zeit nach dem Herunterfahren meiner Jalousien (mit Aktor HM-LC-Ja1PBU-FM), ob bei den genutzen Aktoren ein UNREACH aufgetreten ist und versuche noch einmal, die betroffenen Aktoren in die gewünschte Lage zu fahren.
Zur maximalen Funkabdeckung in meinem Haus, habe ich die CCU (Raspberrymatic) und zwei LAN-Gateways, denen ich die Aktoren zugeordnet habe (Roaming hat sich als eher unzuverlässig herausgestellt). Dabei habe ich die Erfahrung gemacht, dass immer wieder mal eine Zuordnung (die sonst tadellos funktionierte) zu UNREACH Fehlern führte.
Ich würde hier gerne beim zweiten Versuch, diese Zuordnung Scriptgesteuert verändern.
Wie mache ich das?
LG
Andreas
Für meine Beschattungssteuerung versuche ich, auftretende UNREACH Meldungen begegnen zu können.
Dazu überprüfe ich einige Zeit nach dem Herunterfahren meiner Jalousien (mit Aktor HM-LC-Ja1PBU-FM), ob bei den genutzen Aktoren ein UNREACH aufgetreten ist und versuche noch einmal, die betroffenen Aktoren in die gewünschte Lage zu fahren.
Zur maximalen Funkabdeckung in meinem Haus, habe ich die CCU (Raspberrymatic) und zwei LAN-Gateways, denen ich die Aktoren zugeordnet habe (Roaming hat sich als eher unzuverlässig herausgestellt). Dabei habe ich die Erfahrung gemacht, dass immer wieder mal eine Zuordnung (die sonst tadellos funktionierte) zu UNREACH Fehlern führte.
Ich würde hier gerne beim zweiten Versuch, diese Zuordnung Scriptgesteuert verändern.
Wie mache ich das?
LG
Andreas
- Black
- Beiträge: 5527
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 432 Mal
- Danksagung erhalten: 1093 Mal
- Kontaktdaten:
Re: Homematic Script: Aktoren einem Gateway zuordnen
siehe:
Homatic xmlrpc dokumentation
Kapitel 4.3.23 auf Seite 21
4.3.23 setBidcosInterface
BidCos-RF
Void setBidcosInterface(String device_address, String interface_address,Boolean roaming)
Black
Homatic xmlrpc dokumentation
Kapitel 4.3.23 auf Seite 21
4.3.23 setBidcosInterface
BidCos-RF
Void setBidcosInterface(String device_address, String interface_address,Boolean roaming)
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: 61
- Registriert: 14.12.2010, 12:19
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Homematic Script: Aktoren einem Gateway zuordnen
Ja, genau so etwas habe ich gesucht.
Vielen Dank
Jetzt muss ich nur noch herausfinden, wie man diese API über PHP oder Homematic Skript anspricht
Vielen Dank
Jetzt muss ich nur noch herausfinden, wie man diese API über PHP oder Homematic Skript anspricht
-
- Beiträge: 6823
- Registriert: 22.05.2012, 08:40
- System: CCU
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 499 Mal
Re: Homematic Script: Aktoren einem Gateway zuordnen
Wenn Du Dich nicht extra ewig in APIs einlesen willst, kannst Du existierende professionelle Lösungen nutzten, wenn Du Zeit sparen willst. Symcon nutzt PHP und kann alle von eQ-3 dokumentierten Datenpunkte auslesen und ansprechen.
-
- Beiträge: 9771
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 707 Mal
- Danksagung erhalten: 1647 Mal
Re: Homematic Script: Aktoren einem Gateway zuordnen
Der SDV von Black kann das auch
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: 12140
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 853 Mal
- Danksagung erhalten: 2156 Mal
- Kontaktdaten:
- Black
- Beiträge: 5527
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 432 Mal
- Danksagung erhalten: 1093 Mal
- Kontaktdaten:
Re: Homematic Script: Aktoren einem Gateway zuordnen
Das ist eine der einfachsten Dinge, die eine CCU nativ beherrscht und wofür es Fonzos Advertisung Produkte natürlich nicht bedarf. (Kostenlose professionelle Midleware wie IOBroker beherrschen direkten API Zugriff auf die Schnittstellenprozesse natürlich auch, kosten aber nicht mehrere hundert Euro). Davon mal ganz abgesehen, ist diese Information nicht über einen einfachen, "normalen" Datenpunkt auslesbar und änderbar, sondern nur direkt auf dem Schnittstellenprozess.
Zur Fragestellung des TO:
es geht natürlich über HM-Script, als Shell via TCL würde es auch funktionieren , man kanns auch ohne den Wrapper über TCL direkt als kommando auf den schnittstellenprozess schicken via HM Script, der SDV von Black beherrscht das auch (folglich weiss Black auch wie es geht, weil der hat den SDV programmiert), ebenso kann das auch der Homematic Manager von Hobbyquaker.
Black
Wenn ich Mittwoch von Dienstreise zurück bin, poste ich hier mal die HM-Script Lösung. Werden 3 oder 4 Programmzeilen HM-Script. Also nix, in das sich ein auch nur einigermassen erfahrener Anwender ewig einarbeiten müsste.
Dieser Tip ist kostenlos und erfordert weder Softwareinvestitionskosten noch jährlich anfallende SUS-Gebühren
Zur Fragestellung des TO:
es geht natürlich über HM-Script, als Shell via TCL würde es auch funktionieren , man kanns auch ohne den Wrapper über TCL direkt als kommando auf den schnittstellenprozess schicken via HM Script, der SDV von Black beherrscht das auch (folglich weiss Black auch wie es geht, weil der hat den SDV programmiert), ebenso kann das auch der Homematic Manager von Hobbyquaker.
Black
Wenn ich Mittwoch von Dienstreise zurück bin, poste ich hier mal die HM-Script Lösung. Werden 3 oder 4 Programmzeilen HM-Script. Also nix, in das sich ein auch nur einigermassen erfahrener Anwender ewig einarbeiten müsste.
Dieser Tip ist kostenlos und erfordert weder Softwareinvestitionskosten noch jährlich anfallende SUS-Gebühren
Zuletzt geändert von Black am 16.09.2022, 22:01, insgesamt 1-mal geändert.
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
- Black
- Beiträge: 5527
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 432 Mal
- Danksagung erhalten: 1093 Mal
- Kontaktdaten:
Re: Homematic Script: Aktoren einem Gateway zuordnen
so, dann nehmen wir uns mal das ewig komplizierte API Interface vor. Aus dem ewig kompliziert bleibt als Ansatz folgendes überschaubare Template übrig:
So, aber nun zu der Aufgabenstellung, via Script die Zuordung Gateway - Zentrale zu ändern.
als erstes braucht man die Seriennummern vom Gateway und dem Zentralenfunkmodul.
das kleine , ewig komplizierte Template von eben dient da wieder als Vorlage:
Als Ausgabestring erhält man z.B.:
(die realadressen sind natürlich geändert)
die Ausgabe entspricht damals dem ersten überhaupt publizierten weg zum Auslesen eines Dutycycles, von mir veröffentlicht ich glaub 2015 oder 2016.
NEQ6666666 ist die Adresse des Gateways,
QEQ0123456 ist die ADresse des Zentralenmodules
mit dem Wissen nun nehmen wir uns wieder das ewig komplizierte Template zur Api Ansteuerung:
(dazu brauchen wir die in meinem ersten Post oben genannte Methode setBidCosInterface sowie deren dokumentierte Syntax
mit paar Zeilen ein paar hundert Euro gespart. ^^
Black
Code: Alles auswählen
string stdErr=""; string stdOut="";
object oIFace; !Muss auf gültiges Interface Objekt zeigen, welches den Schnittstellenprozess definiert
string sTCL="";
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; puts [xmlrpc " # oIFace.InterfaceUrl() # "/ "# sTCL # "]\" |tclsh'",&stdOut,&stdErr);
als erstes braucht man die Seriennummern vom Gateway und dem Zentralenfunkmodul.
das kleine , ewig komplizierte Template von eben dient da wieder als Vorlage:
Code: Alles auswählen
string stdErr=""; string stdOut="";
object oIFace=interfaces.GetAt(0); ; !Muss auf gültiges Interface Objekt zeigen, welches den Schnittstellenprozess definiert
string sTCL="listBidcosInterfaces";
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; puts [xmlrpc " # oIFace.InterfaceUrl() # "/ "# sTCL # "]\" |tclsh'",&stdOut,&stdErr);
Code: Alles auswählen
{ADDRESS NEQ6666666 CONNECTED 1 DEFAULT 0 DESCRIPTION {} DUTY_CYCLE 1 FIRMWARE_VERSION 1.4.1 TYPE HMLGW2}
{ADDRESS QEQ0123456 CONNECTED 1 DEFAULT 1 DESCRIPTION {} DUTY_CYCLE 12 FIRMWARE_VERSION 4.4.22 TYPE CCU2}
die Ausgabe entspricht damals dem ersten überhaupt publizierten weg zum Auslesen eines Dutycycles, von mir veröffentlicht ich glaub 2015 oder 2016.
NEQ6666666 ist die Adresse des Gateways,
QEQ0123456 ist die ADresse des Zentralenmodules
mit dem Wissen nun nehmen wir uns wieder das ewig komplizierte Template zur Api Ansteuerung:
(dazu brauchen wir die in meinem ersten Post oben genannte Methode setBidCosInterface sowie deren dokumentierte Syntax
Code: Alles auswählen
string stdErr=""; string stdOut="";
string sGW="NEQ6666666";
string sCCU="QEQ0123456";
string sDev="MEQ1111111"; ! Die Adresse des Devices, welches CCU oder Gateway zugeordnet werden soll
object oIFace=interfaces.GetAt(0); ; !Muss auf gültiges Interface Objekt zeigen, welches den Schnittstellenprozess definiert
string sTCL='setBidcosInterface [list string \\\"'#sDev#'\\\"] [list string \\\"'# sCCU# '\\\"] [list bool 0]';
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; puts [xmlrpc " # oIFace.InterfaceUrl() # "/ "# sTCL # "]\" |tclsh'",&stdOut,&stdErr);
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