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