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)

 

Kommentar hinterlassen