
Abbildung 1: Das Skript <code>tradfri-status.py</code> berichtet über zwei Lampen in einer Gruppe und deren IDs.
Passend zum Home-Automation-Schwerpunkt dieser Ausgabe ist Sysadmin-Kolumnist Kühnast in einem Möbelhaus shoppen gegangen, wo sich alle duzen. Heraus kam Charly mit einem smarten Lichtsystem, das er erhellenderweise nun mit einem Linux-PC automatisiert.
Trådfri ist das schwedische Wort für “drahtlos” und passt für ein smartes Beleuchtungssystem. Im einfachsten Fall kombiniere ich eine Leuchte mit einem Aktor, drei davon bietet der Möbelmulti an: eine Fernbedienung, einen Dimmer und einen Bewegungsmelder.
Will ich die Helligkeit der Leuchtmittel – bei vielen auch die Lichtfarbe von kalt- bis warm-weiß – per Android- oder Apple-Smartphone steuern und speichern, brauche ich noch ein Gateway, eine kleine Steuerbox, die am Ethernet hängt und Kommandos an die Leuchten funkt. Als Protokoll arbeitet Zigbee Light Link [1]. Kompatible Leuchten gibt es mit den Sockeln E14, E27 und GU10 sowie LED-Paneele, die der Kunde an die Wand hängt oder in Möbel integriert.
Alles nett, aber natürlich will nicht ich selbst das Ganze per App steuern, sondern das Beleuchtungssystem soll sich dynamisch dem Umgebungslicht anpassen, etwa bei einsetzender Abenddämmerung nach und nach heller werden. Wann es dunkelt, weiß der Linux-PC, der die Daten meiner Photovoltaik auswertet. (Natürlich tut’s ansonsten auch ein simpler Helligkeitssensor.) Eben jener Linux-PC soll nun dem Ikea-Gateway Kommandos geben, um sie an die Leuchten durchzureichen.
Das erreiche ich mit Libcoap [2], einer C-Implementierung des Maschine-zu-Maschine-Protokolls Co AP (Constrained Application Protocol). Die Installation erfordert die Kommandos aus Listing 1. Danach liegt mir das Programm »coap-client« vor, dem ich Parameter zur Steuerung der am Gateway angeschlossenen Leuchten mitgeben soll.
Listing 1
Libcoap installieren
01 sudo apt-get install libtool autoconf automake buid-essential 02 git clone --recursive https://github.com/obgm/libcoap.git 03 cd libcoap 04 git checkout dtls 05 git submodule update --init --recursive 06 ./autogen.sh 07 ./configure --disable-documentation --disable-shared 08 make 09 sudo make install
Umhüllt – eine Freude!
Da die Syntax des Programms ziemlich eklig ist, benutze ich einen Python-Wrapper [3], der die Arbeit mit Libcoap zum reinen Vergnügen macht. Der Eintrag
sudo pip install tqdm git clone https://github.com/sandyjmacdonald/ikea-smartlight cd ikea-smartlight
installiert ihn. Im aktuellen Verzeichnis lege ich eine Datei an mit der IP-Adresse des Gateway und dessen Sicherheitscode, der unter dem Gehäuse klebt:
[tradfri] hubip = 10.0.0.42 securityid = laskuhgoACBUWHG
Jetzt stehen mir simple Steuer- und Statuskommandos zur Verfügung. Abbildung 1 zeigt die Ausgabe von »tradfri-status.py«, die zwei gefundene Leuchtmittel zeigt, die zu einer Gruppe zusammengefasst sind. Jede Leuchte und die Gruppe haben eine ID, die ich zur Steuerung benutzen kann. Um zum Beispiel alle Leuchtmittel der vorliegenden Gruppe 133164 auf 75 Prozent Helligkeit zu bringen, genügt das Kommando:
tradfri-groups.py -g 133164 -a brightness -v75
Bis zum 13. Dezember, dem schwedischen Luciafest, habe ich fürs niederrheinische Wohnzimmer sicher eine passende Kerzensimulation programmiert.

Abbildung 1: Das Skript »tradfri-status.py« berichtet über zwei Lampen in einer Gruppe und deren IDs.
Infos
-
Zigbee Light Link: http://www.zigbee.org/zigbee-for-developers/applicationstandards/zigbee-light-link/
-
Libcoap: https://libcoap.net
-
Ikea-smartlight-Wrapper: https://github.com/sandyjmacdonald/ikea-smartlight




