XML-API (FW-Patch)

Bei diesem Paket handelt es sich um eine kleine Firmware-Erweiterung, die einige nützliche Skripte auf der HomeMatic-Zentrale zur Verfügung stellt, die dann "von außen" aufgerufen werden können.

Der Patch kann als Firmware-Update direkt über das WebUI installiert werden. Die Installationsroutine kopiert daraufhin die enthaltenden Dateien in das Verzeichnis "/www/config/xmlapi". Darunter befinden sich auch einige hilfreiche Skripte, die nach einem Neustart über folgenden Aufruf erreichbar sind:

http://[CCU_IP]/config/xmlapi/[Skript_Name]

Der Platzhalter [CCU_IP] ist dabei durch die IP-Adresse der HomeMatic-Zentrale zu ersetzen. Der [Skript_Name] kann dabei durch folgende Werte ersetzt werden:

devicelist.cgi Liste aller Geräte mit Kanälen

Enthält u.a. die Namen, Seriennummern, Gerätetypen und ID's
functionlist.cgi Liste aller Gewerke mit Kanälen

Enthält u.a. die Namen, Seriennummern (pro Kanal) und ID's
sysvarlist.cgi Liste alle Systemvariablen mit Werten
statelist.cgi Liste alle Geräte mit Kanälen und aktuellen Werten

Enthält u.a. die Namen, Datenpunkte (z. B. LowBatt), aktuelle/alte Werte (Dimmer)
programlist.cgi Liste aller Programme

Enthält u.a. die Namen, Beschreibungen und ID's
runprogram.cgi Startet ein Programm mit der angegebenen ID (z.Bsp.: runprogram.cgi?program_id=1234)
roomlist.cgi Liste aller Räume mit Kanälen

Enthält u.a. die Namen und ID's
statechange.cgi Ändern ein Kanal-Zustandes

Ein möglicher Aufruf könnte dementsprechend wie folgt lauten:

http://192.168.178.200/config/xmlapi/programlist.cgi

Sämtliche Skripte erzeugen daraufhin ohne Anmeldung (!) eine XML-Datei mit den entsprechenden Daten (Geräte, Gewerke, ...) die z. B. von einem externen Programm ausgewertet werden könnte. Jeder XML-Listeneintrag enthält zudem einen Timestamp der letzten Änderung sowie die CCU-interne ID (ise_id) des Geräts, Kanals, ...

Diese ID wird auch benötigt, wenn man über "statechange.cgi" z.B. einen Aktor ansteuern möchte:

http://192.168.178.200/config/xmlapi/statechange.cgi?ise_id=12345&new_value=0.20

Würde hinter der ise_id=12345 ein Dimmer stehen, würde dieser jetzt auf 20% dimmen.

Wichtiger Hinweis:

Da es sich um ein Firmware-Patch und nicht um eine Zusatzsoftware handelt, ist eine automatische Deinstallation über das WebUI nicht möglich. Um die installierten Dateien zu löschen ist daher ein erneutes Aufspielen der (aktuellen) Firmware nötig.
  • Letze Aktualisierung: 29. Dezember 2011
  • Dateigröße: 25.27 KB
  • Version: 1.1
  • Downloads: 5330
  • Author: dirch
  • Lizenz: GNU/GPL3
Herunterladen
Einzelne Skripte (Zip-Archiv): xmlapi_ccu_fwpatchfiles.zip

Kommentare  

0 # hjl 2010-03-09 19:38
ich versuche einen Schalter mit dem cgi zu setzen, Analog zu dem Beispiel habe ich folgenden Aufruf abgesetzt:
/>http://192.168.178.200/config/xmlapi/statechange.cgi?ise_id=12345&newvalue=true

ich bekomme eine Antwort ...>changed id="12345", aber ändern tut sich nichts.

was ist denn da
falsch?
Antworten Antworten mit Zitat Zitieren
+1 # MSC 2010-03-20 00:11
Hi,

vielleicht hast du es ja schon selber gelöst. Das Beispiel hier auf der Seite hat
einen Fehler. Ich habe auch eine Weile probiert. Ein Blick in den Quellcode brachte die Erleuchtung. Mit new_value=true (mit Unterstrich) sollte es funktionieren.

@kaju: kannst du das bitte
ändern?

Gruß,
MSC
Antworten Antworten mit Zitat Zitieren
0 # admin 2010-03-21 19:06
Hi..

Danke, wurde geändert. Irgendwie hat der Editor den zweiten Unterstrich
beim Abspeichern immer wiedr "wegoptimiert" :cry:

Lieben Gruß,
- kaju
Antworten Antworten mit Zitat Zitieren
0 # hjl 2010-03-22 08:29
Hi MSC,
Super, jetzt funktioniert das Schreiben.
ABER warum auch immer, ich bekomme jetzt
offensichtlich falsche Daten beim Lesen des XML. Bei meinem Schalter steht als value immer false, auch wenn er eingeschaltet ist.
btw. gibt es eine Möglichkleit, nur den Zustand für ein Gerät
auszulesen?
Gruß hjl
Antworten Antworten mit Zitat Zitieren
0 # MSC 2010-03-22 23:47
Hallo hjl,

vielleicht ist dein Schalter in Wirklichkeit ein Taster? :-*
Ich kann
mir auch vorstellen, dass Sensoren nur gelesen werden können. Warum probierst du nicht erst mal mit einem Aktor?
Das Auslesen einzelner Geräte sollte mit statelist.cgi?ise_id=1234 theroretisch auch
irgendwie gehen. Praktisch werden aber nur Daten ausgegeben, wenn der TypName = "HSSDP" wäre, wo ich noch keinen Schimmer habe, was das eigentlich ist. Das Auslesen einzelner Geräte würde mich aber auch
interessieren, da meine Statusliste ca. 20 Sekunden zum Laden braucht. Ich habe nur momentan keine Zeit mich intensiver damit zu beschäftigen. Vielleicht über Ostern. Oder jemand anders schreibt mal was
Schlaues zum Thema.

Viele Grüße

MSC
Antworten Antworten mit Zitat Zitieren
0 # hjl 2010-03-23 08:39
Sorry, hab mich falsch ausgerückt, es handelt sich um einen Aktor HM-LC-SW1.
Es werden aber alle Aktoren
mit value='false' dargestellt, obwohl einige eingeschaltet sind.

Der Schalter "Ess A1" zwigt immer dieses XML, egal ob ein oder ausgeschaltet:

datapoint name="BidCos-
RF.FEQ0048638:1.STATE" type="STATE" ise_id="1594" value="false" valuetype="2"
Antworten Antworten mit Zitat Zitieren
0 # Patrick 2010-03-11 21:54
Hi,

habe versucht XML-API über die Web_GUI zu installieren ... jedoch ohne Erfolg!
System hat nachgefragt ob die Installation durchgeführt werden soll ... dann hat das System reeboten ... im Filesystem unter /www/config ist kein Verzeichniss xmlapi zu finden.
Ich habe die aktuelle
Software-Version: 1.500 ... Keine Fehlermeldung!
Antworten Antworten mit Zitat Zitieren
0 # admin 2010-03-17 14:34
Hi..

Hast Du das Add-on touchUI drauf? Wenn ja, deinstalliert das mal
vorübergehend und probiert's erneut.

Weitere Infos dazu:

http://www.homematic-inside.de/tecbase/general/item/general/firmware-update-klappt-nicht-was-tun.html

/>Gruß,
- kaju
Antworten Antworten mit Zitat Zitieren
0 # Patrick 2010-03-18 20:10
Hallo,

vielen Dank für deine Antwort. Nein, habe kein touchUI drauf. Habe das
install script angesehen und einzelne Befehle getestet ... denke das Problem liegt beim mounten ... habe leider noch keine Lösung ;-(

Gruß
Patrick
Antworten Antworten mit Zitat Zitieren
0 # *Florian* 2012-01-02 11:32
Hallo,
ich habe zur Zeit die xmlapi_ccu_firmwarepatch_runpr ogramm.img installiert.
Was hat sich bei der Version 1.1 geändert?
Muss ich dann zum erneuten aufspielen erstmal die Firmware mit der jetigen überschreiben und dann die neue XML-API einspielen?
Benötigen tue ich das Programm für Home24.

Gruß Florian
Antworten Antworten mit Zitat Zitieren

Neue Kommentare:

  • Hat eigentlich jemand schonmal bei dem MP3-Funkgong die Übertragung von "Standard" auf "Gesichert" umgestellt? Bei mir hat das dazu geführt, dass der Gong selbt nach dem Zurücksetzen auf "Standard" Probleme bei der Gerät... Weiter lesen
  • neues Sprungdiagramm aufgenommen... Weiter lesen
  • so jetzt gehts. Evtl hats nur beim ersten mal nicht geklappt und beim zweiten Versuch mit anderer App, war die App wohl fehlerhaft. Home24 speichert beim speichern die CCU-Daten nicht. Mit Homedroid klappts jetzt. Weiter lesen
Kommentare