HM Systemvariablen auslesen und in IPS anlegen

Wie aus der Überschrift zuerfahren liest das Skript alle HM-Systemvariablen aus, nicht mehr und nicht weniger.

Im Urzustand der CCU hat es nur diese zwei Systemvariablen.

Die Variablen deiner Geräte sind keine Systemvariablen.

Aso, dann bin ich da wieder ein Stück schlauer … :wink:

Hallo,

leider bringe ich das Skript nicht zum Laufen. Die Ursache scheint die XML-API zu sein, denn ich kann sysvarlist auch nicht direkt absetzen. Die übrigen Funktionen der API liefern die erwartete Antwort, nur sysvarlist liefert die folgende Fehlermeldung:

XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: http://192.168.178.24/config/xmlapi/sysvarlist.cgi
Zeile Nr. 1, Spalte 64:<?xml version=„1.0“ encoding=„ISO-8859-1“ ?><systemVariables><!DOCTYPE HTML PUBLIC „-//W3C//DTD HTML 4.01 Transitional//EN“> ^

Ich habe 1.508 auf der CCU und V1.2 der XML-API. Auch die Deinstallation aller Zusatzsoftware, Nauaufspielen der CCU-Firmware und Neueinspielen der API hat nichts geholfen. Ich habe mein Problem schon bei homematic-inside gepostet, wo ich die API heruntergeladen hatte, leider bisher ohne Antwor

Kennt Ihr schon diese Fehlermeldung???

Liebe Grüße, trubbert.

Hallo zusammen
Das Skript funktioniert soweit sehr gut, besten Dank für die tolle Arbeit.
Einzig habe ich das Problem, dass beim Einlesen einer Homematic-Systemvariable, welche als Zahl definiert wurde, nur immer die Ganzzahl als Variable in IPS erscheint (wahrscheinlich, da sie vom Skript in Integer umgewandelt wird). Ist es auch möglich, die Variable als Dezimalzahl zu lesen, oder kann das nur über String getan werden?
Besten Dank für die Hilfe

Kleiner VV (Verbesserungsvorschlag)
Und auch das Problem mit dem Float-Variablen zu lösen:
Das erste case 4 ersetzen durch:


            case  4:  //Float-Variable erstellen
                $new_var_id = IPS_CreateVariable(2);
                SetValueFloat($new_var_id, (float)$var_value);
                break;

Und das zweite case 4 durch:


           case  4:  //Float-Variable veraendern
                SetValueFloat($var_id, (float)$var_value);
                break;

Michael

Hier mal was zum auslesen des Systemvariabeln aus der CCU:
http://www.ip-symcon.de/forum/threads/24633-Modul-Homematic-Systemvariablen-und-Powermeter
Es werden alle Typen (Float, Int, bool und String) unterstützt und sogar die CCU-Profile werden mit ausgelesen und in IPS übernommen.
Michael

Und wie kann ich eine einzelne Variable auslesen? Ich will nicht alle auslesen. Gibt es dafür einen ganz kurzen Code?

Ist es möglich , Variablen zu setzen ?

Mit dem hier nicht, steht hier auch gleich auf der ersten Seite Post 4.
Allerdings würde ich diese alte Thema hier gar nicht mehr beachten.
Außerdem benötigt es den xml-api-patch. Somit eh ein NoGo für mich.
Michael