Homematic Script: Aktoren einem Gateway zuordnen

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
Piri22
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

Beitrag von Piri22 » 16.06.2022, 12:30

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

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

Re: Homematic Script: Aktoren einem Gateway zuordnen

Beitrag von Black » 19.06.2022, 10:31

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
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

Piri22
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

Beitrag von Piri22 » 12.09.2022, 12:16

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

Fonzo
Beiträge: 6687
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Homematic Script: Aktoren einem Gateway zuordnen

Beitrag von Fonzo » 12.09.2022, 12:43

Piri22 hat geschrieben:
12.09.2022, 12:16
Jetzt muss ich nur noch herausfinden, wie man diese API über PHP oder Homematic Skript anspricht
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.

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

Re: Homematic Script: Aktoren einem Gateway zuordnen

Beitrag von MichaelN » 12.09.2022, 12:59

Der SDV von Black kann das auch :wink:
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 +++

jp112sdl
Beiträge: 12085
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
Kontaktdaten:

Re: Homematic Script: Aktoren einem Gateway zuordnen

Beitrag von jp112sdl » 12.09.2022, 13:17

MichaelN hat geschrieben:
12.09.2022, 12:59
Der SDV von Black kann das auch :wink:
Und das sogar kostenlos!

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

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

Re: Homematic Script: Aktoren einem Gateway zuordnen

Beitrag von Black » 12.09.2022, 21:00

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
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

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

Re: Homematic Script: Aktoren einem Gateway zuordnen

Beitrag von Black » 15.09.2022, 20:31

so, dann nehmen wir uns mal das ewig komplizierte API Interface vor. Aus dem ewig kompliziert bleibt als Ansatz folgendes überschaubare Template übrig:

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); 
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:

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);
Als Ausgabestring erhält man z.B.:

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 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

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);   
mit paar Zeilen ein paar hundert Euro gespart. ^^

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

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“