NEWS
Hue Szenen steuern - Alternativer Ansatz
-
Hallo.
habe so einiges zur Ansteuerung von Hue Szenen gelesen.
Mein Ansatz, den ich über Homematic Skripts (inkl. tcl) realisiert habe, würde ich gerne auch in iobroker realisieren, bin aber im Skripten sehr unbeholfen. Da ja grundsätzlich ein Hue-Adapter bereits zur Verfügung steht, der z.B. Lampen und Gruppen auslesen und steuern kann, wäre die Unterstützung der in der Hue-Bridge gespeicherten Szenen durch eine Adapter-Erweiterung meines Erachtens recht einfach.
Grundsätzlicher Ansatz und Überlegung:
Das Erstellen und Verwalten von beliebig vielen Szenen (und Gruppen und Lampen) mache ich komfortabel mit der "Hue Lights" iOS App von huelights.com. Diese App ist eine echte Empfehlung. Sie kann alle editierten Szenen mit der Hue Bridge synchronisieren.
Was jetzt fehlt: Der Hue-Adapter müsste so wie er Gruppen und Lampen regelmäßig ausliest auch die Szenen aus der Bridge auslesen. Das Kommando in Richtung Bridge (Hue API) lautet: "Get all scenes" (siehe Philips Hue API Doku auf developers.meethue.com). Als Antwort erhält man eine Liste aller Szenen zurück. Für jede Szene bräuchten jetzt nur 2 Werte im Hue-Adapter gespeichert werden: Die Szene-ID und der Name der Szene, z.B. "4e1c6b20e-on-0" und "Sonnenuntergang".
Um eine Szene zu starten, fehlt jetzt nur noch die Möglichkeit, das entsprechende Kommando zur Hue Bridge zu schicken. Hierzu müsste der Befehl "Set group state", der vermutlich schon für das Aktivieren von Gruppen implementiert ist, so erweitert werden, dass man ihm zusätzlich zur Gruppen-ID die ID der gewünschten Szene mitgeben kann, z.B.: "scene": "4e1c6b20e-on-0" um den Sonnenuntergang zu starten.
Es reicht übrigens z.B. eine Szene "Sonnenuntergang" mit der erwähnten App zu speichern, in der man alle Lichter im Haus entsprechend einstellt. Will man den Sonnenuntergang nur für die Lichter einer bestimmten Gruppe aufrufen, braucht man nur im "Set group state" Kommando statt groups=0 (alle) die ID der gewünschten Gruppe angeben.
Wie gesagt, mit einem Homematic Skript habe ich das mühevoll hinbekommen. Nur: Wie könnte der Hue-Adapter erweitert werden? Ich bin nicht fit in Javascript und möchte in dem Adapter auch nicht rumfummeln.
Gibt es dazu Vorschläge?
Viele Grüße
Günni, iobroker newbie
-
Dein Problem habe ich auch. Szenen sind eine wunderbare Sache. Ich habe das wie folgt gelöst:
Im Javascript Adapter habe ich als zusätzliches NPM Modul "node-hue-api" eingetragen.
In Javascript ist es dann ganz einfach:
var HueApi = require("node-hue-api").HueApi
, lightState = require("node-hue-api").lightState;
var host = "hier IP des Host eintragen",
username = "Hier Nutzernamen des Host eintragen",
api = new HueApi(host, username),
sceneId = "Hier die Szene eintragen",
lightId = 1,
state = lightState.create().on().hue(2000);
api.activateScene(sceneId).then().done();
Ich hoffe das hilft Dir
-
Danke für den Hinweis!
Frage: Kann ich damit auch die Szenen-IDs und deren Namen auslesen und irgendwie abspeichern?
Anders komme ich n die Szene-ID nicht ran. Oder?
Gruß Günni
-
Natürlich könnte man darüber auch die Szenen speichern. Die Szene ID bekommst Du doch auch in Hue Lights angezeigt (bei der Szene auf bearbeiten klicken).
-
Danke Dir!
Kannst Du mir einen Tipp geben, wie ich die Szenen-ID und Namen abrufen kann? Ich möchte die gerne als Auswahlliste in der Oberfläche anbieten.
Das wäre echt cool.
Danke schon mal vorab!
Günni
-
Ist in der Doku des Moduls beschrieben:
https://github.com/peter-murray/node-hu … ith-scenes
Wirst wahrscheinlich nicht glücklich werden, da es vermutlich sehr viele Szenen gibt, die Du nicht selber angelegt hast, sondern Programme, die die Hues steuern. Wahrscheinlich ist es sinnvoller selber eine Liste zu führen.
-
muss ich das vorher irgendwie installieren der reicht das eintraen im Adapter?