Dieser Beitrag wurde seit einem Jahr nicht mehr aktualisiert. Im Internet ist das manchmal eine halbe Ewigkeit. Es kann daher sein, dass die Informationen und Links nicht mehr aktuell sind.
Ein Zuhause wird erst dann richtig smart, wenn man nicht mehr manuell eingreifen muss. Ein Beispiel dafür ist eine automatisierte Beleuchtungssteuerung bei einem Filmabend.
Vorausgesetzt man nennt ein Harmony Hub* und mindestens eine Philips Hue Lampe samt Bridge sein Eigen, lässt sich dies mit Node-RED und einem kleinen Flow umsetzen. Als Beispiel soll hier der Start und das Ende einer Aktivität als Auslöser verwendet werden.
Damit Node-RED sowohl mit dem Harmony Hub als auch mit der Hue-Bridge kommunizieren kann, werden zwei Plugins benötigt. Die lassen sich bei einer Standardinstallation mit den folgenden Befehlen installieren. Alternativ können diese auch über das Node-RED Menü (Palette - Manage Palette) installiert werden.
cd ~/.node-red
npm install node-red-contrib-huemagic node-red-contrib-harmony
Bei der manuellen Installation ist anschließend noch ein Neustart der Node-RED Instanz notwendig.
Aktivierung einer Hue Szene nach Aktivitätswahl
Jetzt kann der Flow erstellt werden. Benötigt wird der Harmony-Observe Node und zur Auslösung einer Szene auf der Hue Bridge der entsprechende Node von Huemagic. Alternativ kann aber natürlich auch nur eine einzelne Lampe geschaltet werden. Die beiden werden über eine Funktion miteinander verbunden.
Der Harmony Node lässt sich sehr einfach konfigurieren. Durch einen Klick auf die Lupe wird automatisch das Netzwerk nach Hubs durchsucht.
Die Konfiguration des Hue Nodes ist auch nicht wesentlich aufwendiger. Hier muss nach der ebenfalls automatischen Suche nur der Knopf auf der Harmony Bridge gedrückt werden, damit ein entsprechender Token generiert und übermittelt wird. Anschließend kann nach verschiedenen Szenen der Hue Bridge gesucht werden.
Der Harmony-Observe Node sendet eine Nachricht, sobald etwas auf dem Harmony Hub passiert. Da dies alles sein kann, verwenden wir die angebundene Funktion zur Filterung der Aktivitäts-ID und des Status.
if (msg.payload.activityId === "12345678" && msg.payload.activityStatus === 2) return msg;
Die ActivityID lässt sich am einfachsten durch einmaliges Schalten mit einem verbundenen Debug Node herausfinden. Der Activity Status 2 sagt aus, dass die Aktion gestartet wurde. Laut ReadMe des Harmony Plugins gibt es folgende mögliche Werte:
- 0 - ist ausgeschaltet
- 1 - Aktivität startet
- 2 - Aktivität ist gestartet
- 3 - Harmony Hub wird ausgeschaltet
Erweiterung des Flows
Wird die Aktivität beendet, soll eine andere Szene auf der Hue Bridge aktiviert werden. Dazu wird der Flow wie folgt erweitert.
Anschließend muss die Funktion ein wenig verändert und dem Node ein zweiter Ausgang (im Bearbeitungsmodus unten veränderbar) verpasst werden.
if (msg.payload.activityId === "12345678" && msg.payload.activityStatus === 1) {
return [msg, null];
} else if (msg.payload.activityId === "12345678" && msg.payload.activityStatus === 3) {
return [null, msg];
}
Die Funktion sorgt nun dafür, dass beim Ausschalten (ausgehend von der gewünschten Aktivität, die Szene “Hell” auf der Hue Bridge aktiviert wird. Die Szene wird dann an den zweiten Ausgang des Funktionsloses angeschlossen.
Weitere Möglichkeiten
Dank der umfangreichen Möglichkeiten in Node-RED sind noch viele Erweiterungen des Flows denkbar. Zum Beispiel kann die Aktivierung der Hue Szene erst nach einer bestimmten Uhrzeit oder in Abhängigkeit des aktuellen Sonnenstands erfolgen.