XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

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

Moderator: Co-Administratoren

Antworten
mstuebner
Beiträge: 73
Registriert: 16.07.2014, 22:47
Wohnort: Isen
Kontaktdaten:

XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

Beitrag von mstuebner » 21.11.2015, 13:53

Servus,

ich hatte vor einiger Zeit auf die Empfehlung hier im Forum gehört, Device/Channeldaten statt mit der XMPAPI sondern besser mit der XMLRPC abzuholen, was auch gut funktioniert.

Da nun der Winter naht und ich die "Programmierung" der CCU2 mit den Skripts im Webfrontend so unsäglich grausam finde (keine IDE, kein Debugger und eher viel Try&Error) habe ich wieder mal PyCharm gestartet und wollte die Logik die ich an der CCU2 programmiert hatte extern umsetzen.

Um die Geräte anzusprechen kodiere ich die aber nicht hart, sonder nutze Favoritenlisten und zusätzliche Temperaturen kommen von 1Wire Sensoren.

Da Favoriten "logisch" sind existieren diese in XMLRPC nicht, sodass ich die Information über deren Existenz und der Channels in den Favoritenlisten wieder mit XMLAPI abholen muss. Ist ja kein Problem. In den Rückgabedaten der "xmlapi/favoritelist.cgi" wird aber für jeden Channel die ise_id angegeben, einen Wert den ich in den XMLRPC Daten zum Channel nicht bekomme.

Daher stelle ich mir die Frage: Wie kann ich einen Zusammenhang zwischen einer ise_id und einem RPC-Channel/Device herstellen? Zudem bekomme ich die 1Wire-Daten ja auch nur über XMLAPI?

Inwiefern kann ich dann die XMPRPC wirklich sinnvoll nutzen, ohne mir wirklich ALLE Funktionalitäten der CCU2 nachprogrammieren zu müssen, inkl. Webinterface etc.?

vg Matthias
213 Kanaele in 36 Geraeten, 14 Geraetetypen:
1x HM-PBI-4-FM(Funk-Tasterschnittstelle 4-fach), 1x HM-RCV-50(CCU2 System), 4x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter), 1x HM-RC-19(Funk-Fernbedienung 19 Tasten), 8x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 2x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RC-8(Funk-Handsender 8 Tasten), 10x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-PB-2-WM55-2(Funk-Wandtaster 2-fach im 55er Rahmen), 1x HM-LC-Sw4-DR(Funk-Schaltaktor 4-fach), 3x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-OU-LED16(Funk-Statusanzeige LED 16), 1x HM-Sec-RHS(Funk-Fenster-/ Drehgriffkontakt), 1x HM-TC-IT-WM-W-EU(Funk-Wandthermostat)
--------------------------------------------
https://github.com/jollyjinx/homematic/ ... entory.hms

mstuebner
Beiträge: 73
Registriert: 16.07.2014, 22:47
Wohnort: Isen
Kontaktdaten:

Re: XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

Beitrag von mstuebner » 28.11.2015, 16:36

Servus,

nach fünf Tagen fange ich mich jetzt doch an zu fragen, ob meine Frage so dumm/einfach war, oder so schwer, dass sich keine eine Antwort traut?

:shock:
213 Kanaele in 36 Geraeten, 14 Geraetetypen:
1x HM-PBI-4-FM(Funk-Tasterschnittstelle 4-fach), 1x HM-RCV-50(CCU2 System), 4x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter), 1x HM-RC-19(Funk-Fernbedienung 19 Tasten), 8x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 2x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RC-8(Funk-Handsender 8 Tasten), 10x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-PB-2-WM55-2(Funk-Wandtaster 2-fach im 55er Rahmen), 1x HM-LC-Sw4-DR(Funk-Schaltaktor 4-fach), 3x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-OU-LED16(Funk-Statusanzeige LED 16), 1x HM-Sec-RHS(Funk-Fenster-/ Drehgriffkontakt), 1x HM-TC-IT-WM-W-EU(Funk-Wandthermostat)
--------------------------------------------
https://github.com/jollyjinx/homematic/ ... entory.hms

erniesesam

Re: XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

Beitrag von erniesesam » 28.11.2015, 17:21

mstuebner hat geschrieben:Wie kann ich einen Zusammenhang zwischen einer ise_id und einem RPC-Channel/Device herstellen?
Musst Du Dir auch von der Rega holen. Ich würde von einer Nutzung der XMLAPI abraten, schick einfach Scripts per HTTP Post direkt an die Rega (Port 8181).

In CCU.IO kannst Dir Inspiration holen, da gibt es zwei Rega-Scripts die Geräte und Kanäle als JSON auflisten:
https://github.com/hobbyquaker/ccu.io/b ... devices.fn
https://github.com/hobbyquaker/ccu.io/b ... hannels.fn

mstuebner
Beiträge: 73
Registriert: 16.07.2014, 22:47
Wohnort: Isen
Kontaktdaten:

Re: XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

Beitrag von mstuebner » 29.11.2015, 15:49

erniesesam hat geschrieben:In CCU.IO kannst Dir Inspiration holen, da gibt es zwei Rega-Scripts die Geräte und Kanäle als JSON auflisten:
Ich erinnere mich noch sehr gut, dass es, als es darum ging dass die CCU2 nach einiger Zeit nicht mehr erreichbar war, die Lösung war Rega-HSS abzuschalten, weil das so instabil ist!

Die XML-API setzt doch an der selben Stelle an, nur dass statt des Port 8181 eben über den Webserver gegangen wird. Oder übersehe ich da noch was?
213 Kanaele in 36 Geraeten, 14 Geraetetypen:
1x HM-PBI-4-FM(Funk-Tasterschnittstelle 4-fach), 1x HM-RCV-50(CCU2 System), 4x HM-LC-Sw1PBU-FM(Funk-Schaltaktor 1-fach fuer Markenschalter), 1x HM-RC-19(Funk-Fernbedienung 19 Tasten), 8x HM-Sec-SCo(Funk- Tuer-/Fensterkontakt optisch), 2x HM-Sec-SC-2(Funk-Tuer-/ Fensterkontakt), 1x HM-RC-8(Funk-Handsender 8 Tasten), 10x HM-CC-RT-DN(Funk-Heizkoerperthermostat), 1x HM-PB-2-WM55-2(Funk-Wandtaster 2-fach im 55er Rahmen), 1x HM-LC-Sw4-DR(Funk-Schaltaktor 4-fach), 3x HM-ES-PMSw1-Pl(Funk-Schaltaktor mit Leistungsmessung), 1x HM-OU-LED16(Funk-Statusanzeige LED 16), 1x HM-Sec-RHS(Funk-Fenster-/ Drehgriffkontakt), 1x HM-TC-IT-WM-W-EU(Funk-Wandthermostat)
--------------------------------------------
https://github.com/jollyjinx/homematic/ ... entory.hms

erniesesam

Re: XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

Beitrag von erniesesam » 29.11.2015, 20:34

mstuebner hat geschrieben:Die XML-API setzt doch an der selben Stelle an, nur dass statt des Port 8181 eben über den Webserver gegangen wird.
Am Ende macht es keinen Unterschied, beide Wege (Scripte an Port 8181 schicken und XMLAPI) fragen die Rega ab. Port 8181 tut das quasi direkt, der ReGa-Prozess hat da seinen eigenen kleinen HTTP Server laufen. XMLAPI ist wesentlich aufwändiger:

Anfrage an lighttpd (Webserver der CCU) -> Aufruf eines "CGI" (die Dateien der XMLAPI) -> start des TCL-Interpreters -> Nachladen der "tclrega.so" damit TCL auf der Rega arbeiten kann -> Abarbeitung Script durch Rega und die Antwort nimmt den gleichen Weg durch den TCL-Interpreter und den Lighttpd zurück.

Daher rate ich von der XMLAPI ab. Sie bringt schlicht keinen Benefit aber dafür gleich noch 2 Prozesse mehr ins Spiel die Rechenzeit und RAM benötigen.

erniesesam

Re: XMLAPI, XMLRPC, eines allein reicht nicht zu nutzen

Beitrag von erniesesam » 29.11.2015, 20:44

mstuebner hat geschrieben:Ich erinnere mich noch sehr gut, dass es, als es darum ging dass die CCU2 nach einiger Zeit nicht mehr erreichbar war, die Lösung war Rega-HSS abzuschalten, weil das so instabil ist!
Klar, dazu rate ich auch, die Rega ist in meinen Augen ein Haufen Müll, wer sich das freiwillig antut hat mein Beileid ;-) Ich selbst benutze die Rega auch nicht (mehr), damit erübrigt sich dann auch die Frage nach XML-API vs Port 8181. Allerdings musst Dir dann Deine "Logikschicht" (die z.B. die Namen und Raumzuordnungen Deiner Geräte managed und Automatisierung mit Programmen/Scripten ermöglicht) eben woanders selbst schaffen oder zu einer "großen" Smarthome-Software wie ioBroker, IP-Symcon, OpenHAB o.Ä. greifen.

Antworten

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