Ansteuerung des LD382 mit netcat

Um die Decke im Büro in verschiedenfarbiges Licht zu tauchen, habe ich die Deckenleuchte mit RGB LED Stripes versehen. Zur Steuerung der Farbe und Helligkeit verwende ich den wireless LED Controller LD382, scheinbar ein Nachfolger des LW12. Der Controller bindet sich sehr einfach in das Wireless Lan Heimnetzwerk und lässt sich spielend einfach konfigurieren. Auch können die Apps für Iphone und Android durchaus überzeugen.

Nur für Linux bzw. Windows habe ich nichts geeignetes gefunden. Daher habe ich mich auf die Suche begeben und unter http://www.emessaging.biz einen ersten Hinweis auf das verwendete Protokoll gefunden. Der Controller lauscht auf Port 5577 und erwartet eine Hexadezimal codierte Codesequenz. Im Heimnetzwerk ist keinerlei Authentifizierung erforderlich.

Zum Glück war ein Großteil der Arbeit mittels Netzwerksniffen schon getan und ein Teil der Sequenz war bereits entschlüsselt. Das erste Byte gibt den Befehl an. Das letzte Byte ist eine Checksumme über alle vorangegangen Bytes Und verknüpft mit 255 bzw. FF. Alles dazwischen sind Argumente.

BefehlSequenz
einschalten
0×71, 0×23, 0x94
ausschalten
0×71, 0×24, 0x95
Rot
0×31, 0xFF, 0×00, 0×00, 0×00, 0×00, 0×00, 0x30
Grün
0×31, 0x00, 0×FF, 0×00, 0×00, 0×00, 0×00, 0x30
Blau
0×31, 0x00, 0×00, 0×FF, 0×00, 0×00, 0×00, 0x30


Um den Controller über das Netzwerk zu erreichen und Befehle zu senden empfiehlt sich Netcat, das schweizer Taschenmesser fürs Netzwerk. Netcat ist faktisch für alle Plattform erhältlich und lässt sich sehr gut automatisieren.

Ich habe für jede Codesequenz eine eigene Datei erstellt. Dabei ist zu beachten, dass die Sequenz hexadezimal ist. Ich habe dafür notepad++ mit dem Plugin Hex Editor verwendet. Die Checksumme lässt sich einfach mit dem Taschenrechner unter http://www.squarebox.com/legacy/hcalc.html berechnen. Beispielsweise für die Controllsequenz für die Farbe Blau: "31+FF AND FF".

Damit haben wir alle Bausteine zusammen getragen und es wird Zeit für einen ersten Test.

ncat --send-only IP.Adresse.des.LD382 5577 < einschalten

Damit kann ich jetzt beliebige Farben erzeugen, ein- bzw. ausschalten und den Controller per Batch- bzw. Shellskript aus unterschiedlichsten Applikationen ansteuern. Beispielsweise beim eintreffen neuer Mails zweimal rot aufblinken lassen.

Der es sehr mühsam ist den Befehl fehlerfrei auf der Kommandozeile abzusetzen, habe ich noch ein kleines Batchscript erstellt. Dabei wird einfach der Name der Befehlsdatei als Argument übergeben. Um beispielsweise durch alle 7 Farben zu faden genügt folgender Befehl.

ld382_controll.bat color_fade