Aus Linux-Magazin 07/2017

Aus dem Alltag eines Sysadmin: Libcoap erleuchtet

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 <code>tradfri-status.py</code> berichtet &uuml;ber zwei Lampen in einer Gruppe und deren IDs.

Abbildung 1: Das Skript »tradfri-status.py« berichtet über zwei Lampen in einer Gruppe und deren IDs.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben