schnellster Zugriff auf Aktoren/Sensoren
Moderator: Co-Administratoren
schnellster Zugriff auf Aktoren/Sensoren
Hallo zusammen,
ich plane mir einen Raspberry Pi zuzulegen und möchte etwas mit C++ darauf entwickeln.
Nun ist die Frage wie ich am schnellsten auf die CCU zugreifen kann.
Soll ich die JSON-Schnittstelle oder die XML-API verwenden ?
Oder gibts schon einen besseren Tipp ? Über den USB Stick kann ich vermutlich nicht zugreifen ?
ich plane mir einen Raspberry Pi zuzulegen und möchte etwas mit C++ darauf entwickeln.
Nun ist die Frage wie ich am schnellsten auf die CCU zugreifen kann.
Soll ich die JSON-Schnittstelle oder die XML-API verwenden ?
Oder gibts schon einen besseren Tipp ? Über den USB Stick kann ich vermutlich nicht zugreifen ?
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: schnellster Zugriff auf Aktoren/Sensoren
ich würde keines von beidem Empfehlen. Nutze XML RPC um direkt an die Geräte zu kommen und Remote Homematic Script (HM-Scripte per HTTP-Post an Port 8181) falls Du an die Logikschicht ran willst.Soll ich die JSON-Schnittstelle oder die XML-API verwenden ?
Hier: http://www.homematic-wiki.info/mw/index ... c_Software siehst Du auch warum XML RPC beim Zugriff auf Geräte unbedingt dem JSON RPC oder der XML API vorgezogen werden sollte - es spart schlicht den Weg durch mehrere TCL und Homematic-Scripts, den ReGaHss Prozess sowie den Webserver - deutlicher performance-Vorteil und weniger Belastung für die CCU.
Und noch ein Hinweis: nicht XML RPC und die XML-API verwechseln. Die XML-API ist eine inoffizielle Erweiterung und arbeitet genauso wie JSON RPC an der Logikschicht.
Grüße
Re: schnellster Zugriff auf Aktoren/Sensoren
Wenn ich den Status abfragen möchte geht das einfacher über XML RPC oder muss ich da an die Logikschicht direkt ran ?
Würde gerne z.B. jede Bewegung in einer Datenbank protokolieren
Würde gerne z.B. jede Bewegung in einer Datenbank protokolieren
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: schnellster Zugriff auf Aktoren/Sensoren
Hallo Powerup,
die Logikschicht beherbergt Systemvariablen, Programme, die Zurordnung zu Gewerken und Räumen sowie die Namen von Geräten. Wenn es also nur darum geht einen Wert aus einem Sensor zu lesen oder in einen Aktor zu schreiben (sprich Zugriff auf die Datenpunkte eines Gerätes) brauchst Du die Logikschicht nicht. Möchtest Du allerdings wissen wie ein Gerät heisst, welchem Raum es zugeordnet ist oder wenn Du ein Programm auf der CCU starten möchtest - dann würdest Du die Logikschicht brauchen.
Grüße
Hobbyquaker
die Logikschicht beherbergt Systemvariablen, Programme, die Zurordnung zu Gewerken und Räumen sowie die Namen von Geräten. Wenn es also nur darum geht einen Wert aus einem Sensor zu lesen oder in einen Aktor zu schreiben (sprich Zugriff auf die Datenpunkte eines Gerätes) brauchst Du die Logikschicht nicht. Möchtest Du allerdings wissen wie ein Gerät heisst, welchem Raum es zugeordnet ist oder wenn Du ein Programm auf der CCU starten möchtest - dann würdest Du die Logikschicht brauchen.
Grüße
Hobbyquaker
Re: schnellster Zugriff auf Aktoren/Sensoren
Hallo powerup,
ich würde dir empfehlen auch die Logikschicht abzufragen da einige Geräte auch System variablen nutzen (Kombi Sensor für z.B. "max temp heute" usw..) auch sind System variablen allgemein sehr wichtig wenn Programme auf der ccu direkt ausgeführt werden sollten.
Es gibt leider keine Ereignisse auf System variablen ebene, also müssten diese Zeitgesteuert von der CCU abgefragt und bei Änderung in die db geschrieben werden.
Welche Datenbank möchtest du auf dem raspberry verwenden MySQL?
Aktuell verwende ich die xml-api und wandle die xml Dateien um um diese in die MySQL db zu schreiben, dies ist aber leider nicht die beste Lösung, wenn also jemand ein C Programm machen würde welches alle Ereignisse und auch die System variablen in eine MySQL DB schreiben würde wäre das genau das was ich schon lange suchen würde...
Wenn du also jemanden zum Testen brauchst ich habe einige RPI's herumliegen (256 und 512MB RAM Versionen)
LG
Paul
ich würde dir empfehlen auch die Logikschicht abzufragen da einige Geräte auch System variablen nutzen (Kombi Sensor für z.B. "max temp heute" usw..) auch sind System variablen allgemein sehr wichtig wenn Programme auf der ccu direkt ausgeführt werden sollten.
Es gibt leider keine Ereignisse auf System variablen ebene, also müssten diese Zeitgesteuert von der CCU abgefragt und bei Änderung in die db geschrieben werden.
Welche Datenbank möchtest du auf dem raspberry verwenden MySQL?
Aktuell verwende ich die xml-api und wandle die xml Dateien um um diese in die MySQL db zu schreiben, dies ist aber leider nicht die beste Lösung, wenn also jemand ein C Programm machen würde welches alle Ereignisse und auch die System variablen in eine MySQL DB schreiben würde wäre das genau das was ich schon lange suchen würde...
Wenn du also jemanden zum Testen brauchst ich habe einige RPI's herumliegen (256 und 512MB RAM Versionen)
LG
Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI
Re: schnellster Zugriff auf Aktoren/Sensoren
Hat jemand ein Beispiel, wie man per Remote Homematic Script auf Daten der CCU zugreift ?
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
-
- Beiträge: 237
- Registriert: 11.12.2011, 12:19
- Danksagung erhalten: 1 Mal
Re: schnellster Zugriff auf Aktoren/Sensoren
Hallo paul53,
Prowl ist bei mir eine Systemvariable.
<ergebnis>2013-01-08 09:55:51</ergebnis>
Prowl ist bei mir eine Systemvariable.
Code: Alles auswählen
http://192.168.169.37:8181/MaxWrestler.exe?ergebnis=dom.GetObject('Prowl').State();
Code: Alles auswählen
-<xml>
<exec>/MaxWrestler.exe</exec>
<sessionId/><httpUserAgent>User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
</httpUserAgent>
<ergebnis>2013-01-08 09:55:51</ergebnis>
</xml>
Re: schnellster Zugriff auf Aktoren/Sensoren
[quote="MaxWrestler"]
Gibt es keine allgemeine Zugriffsmethode, die nicht über eine spezielle ausführbare Datei "MaxWrestler.exe" erfolgt ?
Code: Alles auswählen
http://192.168.169.37:8181/MaxWrestler.exe?ergebnis=dom.GetObject('Prowl').State();
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)
Re: schnellster Zugriff auf Aktoren/Sensoren
Hallo,
/config/xmlapi/info.html = Hilfe zur API
/config/xmlapi/statelist.cgi = Liste alle Geräte mit Kanälen und aktuellen Werten
nimm einfach die XML-API und mit http://<ccuip>/config/xmlapi/state.cgi?datapoint_id=12345 bekommst du deinen Wertpaul53 hat geschrieben:Gibt es keine allgemeine Zugriffsmethode, die nicht über eine spezielle ausführbare Datei "MaxWrestler.exe" erfolgt ?
/config/xmlapi/info.html = Hilfe zur API
/config/xmlapi/statelist.cgi = Liste alle Geräte mit Kanälen und aktuellen Werten
-
- Beiträge: 237
- Registriert: 11.12.2011, 12:19
- Danksagung erhalten: 1 Mal
Re: schnellster Zugriff auf Aktoren/Sensoren
Die Datei kann auch paul.exe heißenpaul53 hat geschrieben:Gibt es keine allgemeine Zugriffsmethode, die nicht über eine spezielle ausführbare Datei "MaxWrestler.exe" erfolgt ?
genau, oder bau sie dir "einfach" um so wie du sie brauchst.Monty1979 hat geschrieben:nimm einfach die XML-API und mit http://<ccuip>/config/xmlapi/state.cgi?datapoint_id=12345 bekommst du deinen Wert