Systemvariable auslesen

Hallo Zusammen,

ich hab nichts gefunden, gibt es eine Möglichkeit die Systemvariablen der HomeMatic auszulesen, bzw. auf Änderungen selbiger automatisch in IPS zu reagieren?

Hi…

Offiziell NICHT…Die CCU vergibt für eigene Systemvariablen und Programme eindeutige ID’s, die leider nicht über die Schnittstelle nach außen kommuniziert werden. Ansprechen kann man diese zwar über die (bekannte) ID, aber eben nicht ermitteln. Über WebUI gibt es evtl. eine Möglichkei über Datenpunkte und Enumerations eine Liste der ID’s zu erhalten…das bringt nur IPS nichts.

Gruß,
kaju

Hi,

hast Du vielleicht mal ein Beispiel? Mich würde auch interessieren, wie ich mit der CCU kommunizieren kann.

Ich müsste also wissen, wie komme ich an die ID? Ich vermute mal, dass sie in einem Config-File abgelegt werden. Ich habe gerade mal in usr/local/etc/config/homematic.regadom nachgesehen und folgendes gefunden:


...
<varType>2</varType>
</var-dp>
<oid>1480</oid>
<var-dp>
<dp>
<obj>
<id>1480</id>
<name>testvar</name>
<type>1089</type>
...

Wird die Variable „testvar“ dann über 1480 angesprochen?

Ich frage mich aber wie? Welche IPS-Funktion nutze ich dafür?

Ich wünsche einen schönen Abend.

Christoph.

Hallo!

Dazu habe ich auf meiner Seite einen entsprechenden Artikel verfasst, der ein wenig umfangreicher ist:

HomeMatic-INSIDE - Wie werden Programme und Stati angelernt?

Ich bin diebezüglich mit eQ-3 in Kontakt das eleganter zu lösen…

Gruß,
kaju

Hallo Kaju,

herzlichen Dank für die Info. Das deckt sich ja erstaunlich gut mit den Informationen die Daniel für die Konfiguration seines „HM Touch“ angibt :wink: Interessant war für mich dann noch die Erkenntnis, dass Programme und Variablen bei der HomeMatic über Port 2000 angesprochen werden.

Mit den aus homematic.regadom gewonnenen Informationen müßte dann aber sicher ein Automatismus in IPS anwendbar sein.

Hier braucht „man“ mal wieder etwas Zeit um sich das genauer anzuschaun :wink:

@Udo:

Das mit dem Text auf der Seite von Daniel passt scho…:slight_smile:

@All:

Im Gespräch sind Schnittstellen-Erweiterungen (XMLRPC) um eine Liste der Programme und Systemvariablen zu erhalten. Daraus würde dann auch die benötigte ID ersichtlich sein…mal gucken, wie’s da weitergeht…halte Euch auf dem Laufenden.

kaju

Hi,

ich muss das Thema noch mal aufgreifen, da ich unbedingt die Variablem aus der CCU in der IPS angezeigt bekommen möchte.

Die IDs rauszukriegen ist ja kein Problem, aber die IPS nimmt die IDs einfach nicht an. Wenn ich unter Adresse z.B. 950 eintrage, dann wird die Zahl garnicht erst angenommen. Gibt es da einen Trick?

Da wir schon beim tricksen sind. Die CCU zeigt bei mir 30 virtuelle Fernbedienungen an. Die kann ich auch mit Geräten verknüpfen, aber die IPS erkennt auch hier nichts, da ich die Adresse System:1 nicht eingeben kann.

Ich wünsche einen schönen Sonntag.

Christoph.

Hallo Christoph
hab da mal einen link für dich
HomeMatic-INSIDE - XML-API (FW-Patch)
diese datei auf der CCU installieren

dann kannst du über den www.reader http://10.0.0.6/config/xmlapi/sysvarlist.cgi
und über textparser die Systemvariable auslesen

oder auch schreiben
http://10.0.0.6/config/xmlapi/statechange.cgi?ise_id=5079&new_value=false

schmiddi

Hallo Schmiddi,

danke für die Info. Ich lese die Variablen jetzt über den Port 8181 von IPS aus, oder ich greife über PHP von der CCU auf die Variablen zu. PHP für die CCU gibts auch auf HM inside.

Ich wünsche einen schönen Tag.

Christoph.

könntest du mir etwas genauer erklären wie das mit dem port 8181 funktioniert?

danke!

Hi,

schau Dir das Script hier an.

Damit kannst Du die Variablen in der CCU auch lesen und setzen.

Var Weckzeit auf 1200 setzen:

$befehl="var result = dom.GetObject('Weckzeit').State(1200);";
$result=Post_Request ($befehl);

Var Weckzeit auslesen (in Bsp. eine Zahl):

$befehl="var result = dom.GetObject('Weckzeit').Variable().ToInteger();";
$result=Post_Request ($befehl);

Bitte beachten, alles was zurückgeliefert wird ist immer ein String!

Ich wünsche einen schönen Tag.

Christoph.