Bildquelle: myharmony.com
Die Philips Hue API
Unter der Developer Seite hat Philips eine umfangreiche Dikumentation der API veröffentlicht. Das Grundprinzip besteht aus einer REST API, die man direkt an der Hue Bridge aufrufen kann, die Geräte ansprechen kann die mit der Bridge verbunden sind. Die Verbindung der Geräte zur Hue Bridge funktioniert übrigens mit dem Zigbee Protokoll.
Um auf die API zuzugreifen, sollte man sich zunächst im Philips Entwickler Portal registrieren. Dann bekommt man den vollen Zugang zur Dokumentation. Nunhat Philips eine sehr gute Idee für Entwickler gehabt: Unter dem folgenden Link bekommt man eine Debug-Konsole zur eigenen Bridge mittels der man alle Kommandos ausprobieren kann:
http://<bridge ip address>/debug/clip.html
Diese Seite beschreibt den Zugang und die ersten Schritte sehr gut. Man erhält die Erklärung wie man sich ein lokales Token erstellt mit dem man dann anschließend die REST Calls mit einer sicheren Authentifizierung absetzen kann. Mit diesen Calls kann man dann alle Informationen abrufen über angeschlossene Leuchten und Geräte, Gruppen, Räume und Regeln. Im hundhome verwende ich hauptsächlich die Abfrage und das Setzen der Leuchten. Es ist zu beachten, dass Philips Hue keine Schnittstelle zum Erhalten von Events anbietet. Wer also den aktuellen Zustand der Leuchten kontinuierlich verfolgen möchte, der muss diese Daten fortlaufend aktualisieren und anfragen - sogenanntes Polling. Ich mache das alle 30 Sekunden um einigermaßen aktuell zu sein. Die REST Calls liefern alle einfache JSON Strukturen zurück. Diese lassen sich leicht verarbeiten und erzeigen eine geringe Systemlast.
Integration in girder
Über ein item Manager Module für Philips Hue werden die Leuchten in girder integriert und somit für die Verwendung von Regeln und Automatismen vorbereitet.
Für jede Philips Hue Bridge wird ein eigenes Module Objekt erzeugt. Somit lassen sich pro Haushalt mehrere Bridges z.B. für entlegene Räume integrieren. Für jede Leuchte wird danach ein eigenes Item angelegt. Der Wert des Items ist dabei ein String der die vollständige JSON-Struktur beinhaltet inkl. on/off-Status, Farbwert und Farbtemperatur.
Damit ist es nun möglich, Philips Hue Geräte als generische Leuchten über den item Manager anzusprechen, ohne die spezifischen APIs von Philips in den Regeln ansprechen zu müssen. Wer gerne mehr Details dazu wissen möchte oder den Austausch sucht, der kann sich gerne bei mir melden!