Philips Hue LED Lampen mit Homematic steuern ?

Die Licht-Bastler unter euch kennen sicherlich die tollen Philips hue LED Leuchtmittel. (s. hier…)
Diese LED Leuchtmittel bieten enorme Möglichkeiten für die stimmungsvolle Beleuchtung eurer Räumlichkeiten. Die verwendete LED-Technologie hat Philips dabei perfektioniert: So sind warmweiss-Töne in allen Helligkeiten (bis zu 600 Lumen pro Leuchtmittel) möglich.

Die Bedienung erfolgt dabei per Smartphone-App. Und genau da liegt das Problem: Wer möchte schon immer das Smartphone rauskramen, die App starten, darin rumnavigieren und dann kompliziert die Lampen schalten ?  Die Leuchtmittel sind klasse, aber früher gings doch viel einfacher:  Wandschalter AN oder Wandschalter AUS. Was nämlich, wenn das Smartphone gerade ganz woanders ist, womöglich in einer anderen Etage des Hauses ? Mal eben „Licht einschalten“ geht dann nicht. Bleibts dann dunkel ?

NEIN!  Also ein tolles neues Projekt:  Philips hue LED System mit einem Wandschalter ODER der Smartphone-App steuern.

Bei mir ist das Haussteuerungssystem Homematic im Einsatz, welches bisher schon viele andere Steuerungsaufgaben übernimmt. Warum also nicht dann auch die Philips hue damit steuern ? Und das auch noch mit einem vorhandenen Installations-Wandschalter wie aus den Busch-Jäger (oder Gira, oder …) Serien ?

Was brauchen wir ?

  • Philips hue natürlich (mind. 1 Lampe und die Hue-Bridge)
  • Homematic Zentrale CCU1 oder CCU2
  • Einen beliebigen Homematic Sender (Handsender oder Installationsadapter, Fernbedienung oder ähnliches)
  • Heimnetz mit Router
  • Etwas Bastler-Geschick und Grundkenntnisse in Elektro-Installationen

 Los Gehts:

Die Philips Hue wird über ein LAN-Ethernet Kabel mit eurem Hausnetz (Router) verbunden. Die Bridge gibt die Schaltsignale per Funk (Zigbee-Protokoll) an die einzelnen Lampen weiter. Daher die Bridge besser nicht elektromagnetisch abschirmen oder in den hintersten Keller-Winkel verbannen, wenn auch Lampen im Dachbereich geschaltet werden sollen. Bei mir gabs jedoch noch nie Reichweiten-Probleme.

Steuerung über die Homematic-Zentrale

Der Clou beim Hue-System ist, dass die Lampen über standardisierte Protokolle geschaltet werden können. Auch die Smartphone App bedient sich dieser. Konkret muss nur ein JSON-Objekt per HTTP (put) an die Bridge gesendet werden. Das JSON-Objekt enthält dabei die Steuerparameter (Lampen-Nr., Helligkeit, Farbe usw.). Also werden auch die Bedingungen klar: Der Absender des Steuerbefehls (könnte auch ein Browser sein) muss sich also im gleichen Heimnetz befinden wie die Bridge. Der Bridge ist es dabei egal, welchen Ursprung dieser Steuerbefehl hat, sofern sich die Anwendung vorher Registriert hat. Dazu dient der „Anlern-Knopf“ der Hue-Bridge.

Hue API-Key erzeugen

Dieses Anlernen erfolgt, indem man einen „Usernamen“ bei der Bridge registriert. Über einen Key in Form eines MD5-Hash kann man danach auf die Bridge über HTTP (put) zugreifen. Dieser Prozess ist ganz passend in folgendem Blog-Eintrag beschrieben: Hack the Hue – Ross McKillop

Hue API-Key testen:

Habt ihr einen solchen Key angelegt besser kurz testen:
Gebt die folgende Adresse in euren Browser (im Hausnetz) ein:

http://[IP-Adresse-Bridge]/api/[EUER-API-KEY]/lights/1/

Damit wird der Status der Lampe 1 („lights/1/“) ausgelesen. Die Bridge sendet bei Erfolg etwa sowas zurück:

{"state": {"on":false,"bri":108,"hue":13117,"sat":210,"xy":[0.5113,0.4145],"ct":463,"alert":"none","effect":"none","colormode":"hs","reachable":true}, "type": "Extended color light", "name": "Fernseher", "modelid": "LCT001", "swversion": "65003148", "pointsymbol": { "1":"none", "2":"none", "3":"none", "4":"none", "5":"none", "6":"none", "7":"none", "8":"none" }}

Das sind die einzelnen Konfigurationsdetails der Lampe 1. Sollte der API-Key nicht korrekt registriert sein (die Sache mit dem Bridge-Knopf drücken), erscheint sowas hier:

[{"error":{"type":1,"address":"/lights","description":"unauthorized user"}}]

In diesem Fall den API-Key nochmals sauber registrieren.
Danach geht es mit der Homematic weiter:

Homematic CCU vorbereiten

Als Zentrale für die Steuer-Aufgaben dient die Homematic CCU1 oder CCU2. Diese zentrale ist je eh immer aktiv und eignet sich somit perfekt. Also müssen wir dieser nur noch beibringen, einen HTTP-PUT an die Bridge zu senden, und zwar genau dann, wenn der Schalter gedrückt wird. Die CCU ist dabei ein Linux-System, welches sich einfach mit Root-Rechten versehen lässt. Damit kommen wir in die komfortable Lage die für den HTTP-PUT Aufruf erforderlichen Tools nachzuinstallieren: CURL
CURL ist ein Linux Programm, welches die nötigen JSON Objekte per PUT (oder GET) an das HTTP-Ziel der Bridge versenden kann. Um CURL auf der CCU zu installieren sind einige Linux-Kniffe nötig, die nachfolgend aber sehr einfach und Schritt für Schritt erläutert sind:  Homematic-Forum: CURL

CuxD statt system.Exec

Die Homematic-Zentrale kann jetzt theoretisch per Script und Aufruf von system.Exec(„curl…“) einen solchen Aufruf starten. Allerdings ist der system.Exec Befehl inoffiziell und fehlerhaft:  Die CCU (zumindest CCU1) stürzte bei mir in ca. 1 von 20 Fällen beim Aufruf ab, wodurch ein Neustart nötig wurde. Also ist von system.Exec() abzuraten. Es gibt aber eine Lösung:  Ein Homematic Plugin Namens CuxD.
Dieses Plugin enthält einen sicheren und stabilen EXEC-Ersatz, welcher störungsfrei und dauerhaft zuverlässig arbeitet. Also noch schnell das obenstehende CuxD wie beschrieben installieren.

Homematic Scripte

Nach CURL und CuxD gehts jetzt an die Scripte. Ist alles korrekt installiert, sollte das folgende Homematic-Script eine Lampe einschalten:  (Grundkenntnisse zu Homematic-Scripten werden hier vorausgesetzt)

string jdata=" {\"on\":true,\"bri\":108,\"hue\":13122,\"sat\":211,\"xy\":[0.5119,0.4147],\"ct\":467,\"alert\":\"none\",\"effect\":\"none\",\"colormode\":\"ct\",\"reachable\":true}";
string curlcommand="curl --request PUT --data '"+jdata#"' http://192.168.178.38/api/[euer API-Key]/lights/1/state/ ";
 dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(curlcommand);

ACHTUNG:  Die IP-Adresse, die CUxD-Adresse und der oben erzeugte API-Key müssen noch durch eure Konfigurationsdetails ersetzt werden !

Die CuxD-Adresse könnt ihr nach der Installation abfragen: es wird ein neues „virtuelles Gerät“ angelegt, dessen Name ungefähr so lautet: HM-Sen-EP CUX2801001:1   –  Die letzte Zeichenfolge ist die CuxD-Adresse, hier:  „CUX2801001:1„.

Das Ausschalten einer Lampe funktioniert so:

string jdata=“{\“on\“:false}“;

(Der Rest dann wie oben)

 

HUE-Parameter

Die oben beschriebenen Scripte enthalten die JSON-Parameter zum Einstellen der Licht-Parameter. Eine Dokumentation ist von Philips veröffentlicht worden: Philips Hue Developer API. Hier könnt ihr die genauen Bedeutungen nachlesen.

Homematic-Programme

Jetzt nur noch ein neues „Programm“ in der CCU anlegen mit dem obenstehenden Code und dieses dann dem Schalter zuordnen.

Das obenstehende Beispiel würde nun, wenn der verknüpfte Schalter betätigt wird, per CuxD den CURL-Befehl absetzen, welcher die Parameter zur Hue senden und die Lampe 1 mit den Eigenschaften der ersten Zeile (Helligkeit, Sättigung, Farbton usw.) einschaltet.

Etwas kompliziert, funktioniert aber prima !!

Kami