Zunächst benötigen wir das Addon xml-api.
Damit sind wir in der Lage über einfache HTTP-Aufrufe z.B. sämtliche Raum- oder Gewerkenamen auszulesen oder den Status eines Kanals zu lesen bzw. zu setzen.
wget -qO- - 'http://MEINEIP/config/xmlapi/sysvarlist.cgi'
listet alle Systemvariablen auf.
So habe ich z.B. einen optischen HomeMatic Funk-Tür-/Fensterkontakt mit einer Systemvariablen (Studioalarm) verknüpft.
<systemVariable name='Studioalarm' variable='1' value='true' value_list='' ise_id='2143' min='' max='' unit='' type='2' subtype='2' logged='false' visible='true' timestamp='1518936726' value_name_0='aus' value_name_1='an'/></systemVariables>
Die Sytemvariable „Studioalarm“ hat also die ID „ise_id=’2143′“.
Nun können wir uns den Wert der Variablen holen.
wget -qO- - 'http://MEINEIP/config/xmlapi/state.cgi?datapoint_id=2143'
Das gibt folgendes zurück:
<?xml version="1.0" encoding="ISO-8859-1" ?><state><datapoint ise_id='2143' value='true'/></state>
Der Studioalarm ist also an (true)
Setzen können wir die Variablen natürlich auch:
wget -qO- - 'http://MEINIP/config/xmlapi/statechange.cgi?ise_id=2143&new_value=0'
Das liefert uns erwartungsgemäß ein fröhliches „false“.
<?xml version="1.0" encoding="ISO-8859-1" ?><state><datapoint ise_id='2143' value='false'/></state>
Liste aller Routinen:
Routine Beschreibung 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 favoritelist.cgi Liste aller Favoriten Enthält eine gruppierte Darstellung sämtlicher Favoriten runprogram.cgi Startet ein Programm mit der angegebenen ID: 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 state.cgi Gibt den Status eines einzelnen Geräts aus: state.cgi?device_id=12796 state.cgi?channel_id=12796 state.cgi?datapoint_id=12839 (gibt nur Value() zurück)