Dabei handelt es sich um ein Plugin fuer die beliebte Hausautomation, welches es moeglich macht, mittels http-Aufrufen diverse Werte auszulesen oder zu setzen. Dazu stehen mehrere CGI-Files zur Verfuegung. Ein beispielhafter Aufruf koennte also folgendermassen aussehen:
http://ccu-ip/addons/db/table.cgi
In diesem Fall wird eine Liste sogenannter Datenpunkte zurueckgeliefert, an denen ich erkennen kann, wie der Zustand der Interfaces meiner eingebunden Geraete so ist. Bei „ccu-ip“ handelt es sich um die IP-Adresse der Steuerung im lokalen Netzwerk. Dabei funktioniert der Zugriff sowohl fuer die CCU genannte Zentraleinheit der aelteren Generation, wie auch fuer die in 2013 eingefuehrte neue CCU2. Der Aufruf
http://ccu-ip/addons/db/values.cgi
liefert nun eine Liste aller Datenpunkte zurueck, welche auch einen Wert zurueckliefern. Hier gibt es aber keine Klarnamen zur Identifikation. Wie man sieht, ist das API recht einfach zu beschicken. Natuerlich geht noch ein bisschen mehr, wenn man zum Beispiel einen konkreten Zustand checken moechte:
…/db/state.cgi?item=Dimmer%20Wohnzimmer
Der Parameter „item“ enthaelt hier den Namen des Dimmer-Aktors. Man kann auch anhand der ID abfragen. Darueber hinaus koennen saemtliche Items abgefragt werden, die etwas hergeben, also auch Sensoren oder Variablen. Das sieht dann so aus:
state.cgi?item=747
state.cgi?item=Abwesenheit
state.cgi?item=Wohnz_Kombisensor&dp=TEMPERATURE
Natuerlich wollen wir auch Werte zuweisen und das kann folgendermassen geschehen:
state.cgi?item=Schaltaktor&dp=STATE&value=true&force=1
Dadurch wird das hier mit „Schaltaktor“ benannte Geraet an seinem Datenpunkt „STATE“ in den Zustand „true“ gebracht. Eine „1“ mittels dem zusaetzlichen Parameter „force“ zu uebergeben, bewirkt, dass dies auch dann getan wird, wenn bereits der Status „true“ anliegt.
Diverse Ergebnisse werden bei einem Aufruf in der Adresszeile des Browsers dann auch logischerweise direkt im Browserfenster zurueckgeliefert. Jetzt wollen wir noch etwas automatisieren und unsere Aufrufe ueber ein Linux-Bash-Skript bewerkstelligen.
##!/bin/bash
c_str=“http://ccu-ip/addons/db/state.cgi?item=Abwesenheit“
w_val=$(wget -q -O – $c_str)
if [ „$w_val“ == „true“ ]
then
echo „Niemand im Raum.“
else
echo „Ich bin da.“
fi
Nur ein kleines Beispiel und machbar natuerlich auch als Windows CMD-Skript und in allen Skriptsprachen und kompilierbaren Programmen, wo ein Kommando bereitsteht, welches auf Web-Ressourcen mittels http zugreifen kann.