Linux-Projekte
für den Raspberry Pi
(realisiert in Python)
HomeMatic
XML-RPC Schnittstelle und Alarm-Mail
|
Seit
langem habe ich mich schon gefragt, ob ich, ohne selbst eine
Anfrage an die Zentrale stellen zu müssen, auf
Ereignisse
der Homematic reagieren kann um z.B. bei wichtigen Ereignissen/
Alarmen möglicherweise sogar eigene Mails zu versenden, ohne
Zusatsoftware auf der Homematic-CPU installieren zu müssen oder
den Browser zu bemühen.
Vor
geraumer Zeit bin ich bei diesen Überlegungen schon auf die
XML-RPC Schnittstelle der HomeMatic gestoßen. Eine
Beschreibung gibt es inzwischen ganz offiziell, aber nach
deren ersten Lektüre war mir nicht so recht klar, ob das etwas
für meine Zwecke war und wie das ganze im Detail funktioniert.
Also wurde dieses Thema erst einmal beiseite gelegt, es gab ja
noch genügend andere Projekte, um die ich mich kümmern
wollte.(Inzwischen ist klar, daß ich mich mit dem Kapitel 5 der
Beschreibung [XML-RPC Server] zu befassen hatte)
Hat
mir jedoch keine Ruhe gelassen und ich habe im Netz immer mal
wieder die Suchmaschinen bezüglich dieses Themas bemüht.
Irgendwann bin ich dann auf 2 kurze Beispielprogramme gestoßen,
wie man XML-RPC Server,
bzw. Client
aufzusetzen hat (weiß nicht mehr WO ich diese Infos/ Programme
gefunden habe, sonst würde ich hier einen Verweis auf den
Ursprung verlinken).
Trotzdem
war es nicht so ganz leicht, dieses Programm-Paar zum laufen zu
bringen. Bei den Programmier-Versuchen sind dabei ETLICHTE Abende
ins Land gezogen. Bei den Tests hat sich die HomeMatic oft genug
‚verabschiedet‘, dann war wieder mal ein Neustart
erforderlich (dauert ja jeweils nur ca. 10, 15 Minuten! Sofern
man per Konsole und SSH noch Zugriff darauf hat.).
Hat man
das Prinzip aber erst einmal verstanden (und die ersten Daten
gesehen), ist es -nachträglich gesehen- gar nicht so schwer.
Zunächst
einmal muß der Server (Serverprogramm auf dem RasPi)
gestartet werden. Folgendes ist dabei zu beachten:
Daß
man bei ‚port‘ eine freie Portnummer angibt, auf dem der
Server (RasPi) ‚auf Lauschposten‘ gehen soll.
Es
müßen dort verschiedene Funktionen definiert sein, die der
Client (die Homematic) aufrufen kann, um Werte zu übergeben,
bzw. abzufragen.
Außerdem
muß noch die Funktion ‚Multicall‘ registriert werden,
weil die HomeMatic oft mehrere Werte gleichzeitig überträgt.
Schlußendlich
wird der eigentliche XML-RPC Prozeß in einer Endlosschleife
gestartet ‚serve_forever()‘
Nachdem
der Server auf dem Raspi nun gestartet wurde, muß
anschließend der Homematic mitgeteilt werden, daß sie den
XML-RPC Prozess starten soll.
|
|
In
diesem 2. Programm sind folgende Eintragungen notwendig:
ipHM:
IP-Adresse der HomeMatic
portHM:
Port
der XML-RPC Schnittstelle der HomeMatic (2001 = BidCos)
ipXmlRpcServer:
IP-Adresse
des XML-RPC Empfangsrechners (RasPi)
portXmlRpcServer:
Port
zu dem die HM die Daten senden soll (muß in Server- und
Client-Programm der gleiche sein)
idHM:
Beliebige
Kennung, die die HomeMatic dann jeder Datensendung
voranstellt.
|
|
Schon
mal vorab ein kleiner Hinweis:
Um die Datensendung der
HomeMatic wieder abzustellen, startet man das letzte Programm
nochmals, läßt aber die idHM-Kennung leer (““)
So,
nun kamen also Daten der Homematic auf dem Raspberry an.
Es
hat mich jedoch wieder viel Zeit gekostet um herauszufinden,
welche Daten da, zu welchem Zeitpunkt und in welcher Form
gesendet werden.
Letzte Aktualisierung: 11.11.2018