XML-RPC: peer-ID vs. Serial number

Hallo,

ich stehe am Anfang einer Anbindung von Homegear/Homematic an ein Visualisierungs- und Steuerungssystem (EDOMI). Das Ziel ist, Homematic-Geräte zu steuern- im Idealfall sowohl über eine ggf. vorhandene CCU als auch über Homegear plus die diversen CC1101-Varianten (direkt über SPI, CUL-Stick,…)
Bisher war ich davon ausgegangen, dass die XML-RPC-Schnittstellen von CCU und Homegear kompatibel sind, und der zu erstellende Baustein für beide “Funk-Schnittstellen” gleichermaßen vewendbar ist:
" It implements the same XML-RPC (XML Remote Procedure Call) interface and supports the same set of methods as the HomeMatic central or the BidCoS® service. Because of this you can use any software or script that supports the HomeMatic XML-RPC interface to control Homegear." (Homegear-Webseite)

Aber schon bei den ersten Methoden sehe ich Differenzen:

Homematic:
setValue(String address, String value_key, ValueType value)

Hier drei Parameter, wobei der erste wohl aus Serien- und Kanalnummer zusammengesetzt ist.

Dagegen Homegear:
setValue(Integer peerID, Integer channel, String parameterName, Variant value)

Hier vier Parameter- Peer ID und Kanal getrennt.

INsbesondere der Unterschied peer-ID vs. Geräteadresse verwirrt mich. It es auch möglich, die Prozeduren in Homegear unter Verwendung der Geräteadresse aufzurufen?
Wie kann man ein Programm so gestalten, dass sowohl eine CCU als auch Homegear mit CUL angesprochen werden kann?

Freu mich über Tipps,

Gunnar

Sers Gunnar,

aus dieser Kompatibilität heraus unterstützt homegear genau den Homematic Funktionsaufruf:
https://www.homegear.eu/index.php/SetValue

Void setValue(String address, String parameterName, Variant value)
Void setValue(String address, String parameterName, Variant value, Boolean wait)

Du kannst natürlich beide Varianten nutzen.

Die Peer-ID ist die durch homegear zugeordnete ID des Gerätes, der Channel entsprechend der Channel der Eigenschaften.
Über die Homegear-Konsole, die du auch zum Anlernen der Geräte nutzt, kannst du diese Informationen abrufen:

sudo homegear -r
fs 0
ls
ps <id-des-gerätes>
config print

fs bedeutet family select, ls listet die in dieser Familie gepairten Geräte an, ps bedeutet peer select und wählt das entsprechende Gerät.

Du kannst die Lang- wie auch die Kurzschreibweisen der Befehle nutzen und jederzeit durch help die Hilfe der aktuellen Ebene anzeigen lassen.

so long,
p

Eventuell kannst du dir ja mal beim openHab Homematic-Binding von Gerhard Riegler ein paar Dinge abgucken. Dort wird homegear UND die CCU unterstützt und es gibt, meines Wissens nach, bei der Anbindung keine Unterscheidung.

https://github.com/openhab/openhab2-addons/tree/master/addons/binding/org.openhab.binding.homematic


Und wenn es dir um reine Kommunikation mit homegear geht, mag ich noch mal MQTT als allgemeingültigen Kommunikationsstandard erwähnen. Hatte hier mal was dazu zusammen geschrieben. Und ob jetzt node-red oder etwas anderes darüber hängt, ist ja zweitranging.

1 Like

hi,

Danke erstmal für Deinen Tipp und den Verweis auf die “deprecated” Version der SetValue-Methode… hat in einem ersten Test funktioniert!

Das OpenHab-Binding schau ich mir an, da gibts sicher einiges zu lernen.

Danke!
G.

1 Like

Gern!

Ansonsten behaupte ich jetzt einfach mal, dass homegear komplett zur CCU kompatibel ist. Man kann es ja auch mit dem Homematic-Konfigurator von eq3 - der für die CCU entwickelt wurde und der von homegear nichts weiß - bedienen und steuern :smiley:

So long,
p

Ach, und der Vollständigkeit halber: