UNPKG

node-red-contrib-huemagic

Version:

Philips Hue node to control bridges, lights, groups, scenes, rules, taps, switches, buttons, motion sensors, temperature sensors and Lux sensors using Node-RED.

97 lines (69 loc) 10.2 kB
<script type="text/markdown" data-help-name="hue-light"> Der „Hue Licht“-Node kann mit der Bridge verbundene Lichter steuern und ihre Statusmitteilungen empfangen. ### Einrichtung Wählen Sie die vorkonfigurierte Hue Bridge und klicken Sie auf die Suchschaltfläche, um alle verfügbaren Lichter zu finden. Wenn Sie die ID von einem Licht bereits kennen, können Sie sie auch manuell an dieser Stelle eintragen. Sie können intern entweder einen neuen Namen für das Licht vergeben oder den vordefinierten Namen wählen. Optional können Sie auch alle automatischen Statusmeldungen dieses Nodes deaktivieren, indem Sie die Einstellung „Ignoriere die Mitteilungen des Nodes“ anklicken. Der Node wird anschließend keine Geräteupdates mehr ausgeben. Alternativ können Sie auch auswählen, ob die Initialisierungsnachricht des Nodes beim Start von Node-RED nicht unterdrückt werden soll. Wenn Sie diese Einstellung aktivieren, erhalten Sie nach jedem Deploy eine Statusmeldung des aktuell ausgewählten Lichts. Wenn Sie die Einstellung „Aktiviere Farbnamen“ aktivieren, wird der Node bei jeder Statusmeldung versuchen, die aktuell eingerichtete Lichtfarbe zu beschreiben. Sie erhalten dann also einen zusätzlichen Parameter mit der englischen Beschreibung der aktuell eingestellten Farbe in der Ausgabe. Wenn Sie kein Licht auswählen und die Node-Konfiguration so anwenden, arbeitet der Node im sogenannten „Universalmodus“. In diesem Modus empfängt der Node alle Statusmitteilungen desselben Typs und gibt diese aus. Sie können aber auch Einstellungen im Universalmodus auf ein bestimmtes Licht anwenden, indem Sie die entsprechende Licht-ID als String in `msg.topic` zusammen mit Ihren Einstellungen übergeben. ### Status abrufen Gibt den aktuellen Status des Lichts aus, sobald ein `msg.payload`-Objekt mit folgendem Inhalt an den Node übergeben wurde. Sie können alternativ auch den Button in der Node-RED-Oberfläche betätigen, ohne vorher eine Nachricht an den Node übergeben zu müssen. : status (boolean) : Gibt den aktuellen Status des Lichts zurück ### Licht ein- / ausschalten (einfach) Um ein Licht im einfachen Modus schnell ein- oder auszuschalten, übergeben Sie ein Objekt mit folgendem Inhalt an den Node: : payload (boolean) : `true` schaltet das Licht ein, `false` schaltet es aus ### Lichtsteuerung (erweitert) Neben dem einfachen Ein- und Ausschalten, stehen Ihnen auch viele weitere Optionen zur Steuerung des Lichts zur Verfügung. Alle Nodes in HueMagic können mit additiven Befehlen gesteuert werden. Das heißt, dass Sie zunächst eine Einstellung übergeben können und in einem späteren Befehl eine weitere Einstellung, ohne, dass die vorherige Einstellung damit verworfen wird. Übergeben Sie folgende Parameter in ein `msg.payload`-Objekt, um umfangreichere Einstellungen am Licht vorzunehmen: : on (boolean) : `true` schaltet das Licht ein, `false` schaltet es aus : toggle (boolean | any) : Wechselt zwischen Ain- und Ausschalten, je nachdem, wie der vorherige Zustand der Lichts war : brightness (int | string) : Prozentualer Wert der Lichthelligkeit (0-100) oder ein String mit dem Wert `auto`, um die Helligkeit automatisch auf Basis der aktuellen Uhrzeit einzustellen : brightnessLevel (int) : Nummerischer Wert der Lichthelligkeit (0-254) : incrementBrightness (int | boolean) : Gibt an, um wie viel Prozent das Licht heller gemacht werden soll oder `true`, um das Licht in 10%-Schritten heller zu machen : decrementBrightness (int | boolean) : Gibt an, um wie viel Prozent das Licht dunkler gemacht werden soll oder `true`, um das Licht in 10%-Schritten dunkler zu machen : color (string) : `random`, um eine zufällige Farbe einzustellen oder einen englischen Farbnamen (z. B. `red`) : hex (string) : Farbwert in Hexadezimal in Form eines Strings : rgb (array[0,0,0]) : Farbwert im RGB-Format in Form eines Arrays : xyColor (object{x[float], y[float]}) : Farbwert im XY-Farbformat in Form eines Objekts : gradient (object{hex[…]}) : Ein Objekt mit einem unterstützem Farbobjekt (z. B. `hex`, `rgb`, …) und mehreren Farben, um einen Gradienten auf unterstützte Lichter einzustellen : mixColor (object) : Eine Farbe, die mit der aktuellen Lichtfarbe gemischt werden soll. Kann `color`, `hex`, `rgb` oder `xyColor` Objekte annehmen und optional `amount` (int), um das Mischverhältnis in Prozent anzugeben : image (string) : Pfad eines Bildes (lokal oder im Web) um die aktuelle Farbe des Lichts auf die Durschschnittsfarbe des Bildes einzustellen : saturation (int) : Prozentualer Wert der Sättigung der aktuellen Farbe (beta) : colorTemp (int | string) : Wert zwischen 153 und 500, um die Farbtemperatur des Lichts einzustellen oder die Werte `cold`, `normal`, `warm`, `hot` und `auto` – wobei `auto` die Farbtemperatur auf Basis der aktuellen Uhrzeit ausmacht : incrementColorTemp (int | boolean) : Wert um wie viel die Farbtemperatur wärmer werden soll oder `true`, um in 50er-Schritten die Farbtemperatur wärmer zu machen : decrementColorTemp (int | boolean) : Wert um wie viel die Farbtemperatur kälter werden soll oder `true`, um in 50er-Schritten die Farbtemperatur kälter zu machen : transitionTime (float) : Übergangszeit der aktuellen Einstellung in Sekunden. Wenn 0 eingegeben wird, wechselt das Licht in die gewünschte Einstellung sofort. Wenn 3 eingegeben wird, wechselt das Licht mit einem leichten Übergang in den nächsten 3 Sekunden auf die gewünschte Einstellung : colorloop (float) : Spielt eine „colorloop“-Animation für die gewählte Dauer in Sekunden ab und wechselt anschließend wieder zurück auf den ursprünglichen Zustand des Lichts : alert (float) : Spielt eine „alert“-Animation für die gewählte Dauer in Sekunden ab und wechselt anschließend wieder zurück auf den ursprünglichen Zustand des Lichts ### Statusnachrichten des Nodes Sobald eine Änderung an den Lichteinstellungen festgestellt wurde (egal ob über Node-RED oder extern), wird folgende Statusnachricht vom Node zurückgegeben: #### Statusobjekt unter `msg.payload` : on (boolean) : Zustand des Lichts, wobei `true` für an steht und `false` für aus : brightness (int | boolean) : Aktuelle Helligkeit in Prozent oder `false`, wenn das Licht keine Helligkeitseinstellung unterstützt : brightnessLevel (int | boolean) : Aktuelle Helligkeit von 0-254 oder `false`, wenn das Licht keine Helligkeitseinstellung unterstützt : reachable (boolean | string) : `true` wenn das Licht mit der Bridge verbunden ist, `unknown` wenn der Verbindungsstatus abweicht : connectionStatus (string) : Der aktuelle Verbindugsstatus mit der Bridge in Form eines Strings. Kann `connected`, `disconnected`, `connectivity_issue` oder `unidirectional_incoming` als Wert beinhalten : rgb (array[int,int,int] | optional) : Aktuelle Lichtfarbe in Form eines RGB-Wertes, wenn das Licht Farben darstellen kann : hex (string | optional) : Aktuelle Lichtfarbe in Form eines Hexadezimal-Wertes, wenn das Licht Farben darstellen kann : xyColor (object{x[float], y[float]} | optional) : Aktuelle Lichtfarbe in Form eines XY-Wertes, wenn das Licht Farben darstellen kann : color (string | optional) : Aktueller Lichtname auf Englisch, wenn das Licht Farben darstellen kann und die entsprechende Einstellung des Nodes aktiviert wurde : gradient (object | optional) : Aktuelle Gradienteneinstellung mit allen verfügbaren Farbeinheiten in Form eines Arrays, wenn das Licht Gradienteneinstellungen unterstützt, wobei `colors` die Farben ausgibt, `numColors` die Anzahl der eingestellten Farben im Gradienten und `totalColors` die maximal mögliche Anzahl der Farben, die die Ressource im Gradienten unterstützen kann : colorTemp (int | boolean | optional) : Aktuelle Farbtemperatur des Lichts, wenn das Licht Farbtemperaturen darstellen kann und eine Farbtemperatur eingestellt wurde : colorTempName (string | optional) : Aktuelle Farbtemperatur des Lichts in Form eines beschreibenden Strings mit den Werten `cold`, `normal`, `warm` oder `hot`, wenn das Licht Farbtemperaturen darstellen kann und eine Farbtemperatur eingestellt wurde. Andernfalls wird `unknown` ausgegeben : updated (string) : Zeitpunkt der letzten Aktualisierung der Ressource von HueMagic (ISO 8601) #### Informationen des Lichts unter `msg.info` : id (string) : Gibt die neue ID des Lichts an : idV1 (string | boolean) : Gibt die alte ID des Lichts an : uniqueId (string) : Die eindeutige ID des Lichts : deviceId (string) : Die eindeutige ID des Geräts : name (string) : Der aktuell eingestellte Name des Lichts : type (string) : Der Typ des Lichts (immer `light`) : softwareVersion (string) : Die aktuelle Firmware des Lichts : model (object) : Beinhaltet die Modellinformationen des Lichts unter `id`, `manufacturer`, `name`, `type`, `certified`, `friendsOfHue`, `colorGamut` und `colorGamutType` #### Zustandsänderungen unter `msg.updated` Listet einzelne Parameter in Form eines Objekts auf, die sich im Vergleich zum letzten Zustand des Lichts geändert haben. Wenn keine Änderungen registriert wurden, ist dieses Objekt leer. #### Letzter Stand des Lichts unter `msg.lastState` Beinhaltet das komplette Statusobjekt (siehe Ausgabewerte oben) des letzten Zustands vor der letzten Änderung. Wenn der letzte Zustand von HueMagic noch nicht registriert wurde, wird `false` ausgegeben. #### Letzter Befehl unter `msg.command` (optional) Sofern der Status des Nodes sich über einen bestimmten Befehl geändert hat, wird der gesamte Befehl der ausgeführt wurde mit ausgegeben. Andernfalls wird dieses Objekt vom Node nicht ausgegeben. ### Beispiele von HueMagic HueMagic stellt einige Beispielkonfigurationen zu diesem Node zur Verfügung. Um ein fertiges Beispiel in Ihrer Node-RED-Oberfläche zu importieren, klicken Sie auf das Menü-Icon von Node-RED, wählen Sie dann „Import“ und navigieren Sie in der Sidebar des Popups auf „Beispiele“. Wählen Sie anschließend den HueMagic-Ordner aus und Ihren gewünschten Node, um einen Beispielflow zu importieren. ![examples](https://user-images.githubusercontent.com/5302050/148681840-2275c15a-7c0c-4a37-b817-199608e571d2.gif) </script>