Hallo liebe Community,
für alle, die wie ich noch nicht auf Ihre Hue Bridge verzichten wollen, die Lampen aber trotzdem vom homee aus ansteuern möchten und sich über den lästigen Zeitversatz von IFTTT ärgern oder nicht über das Internet gehen wollen.
Nachdem ich im Forum des Öfteren gefragt wurde, hier nun eine kleine Beschreibung wie Ihr Eure Hue Bridge mittels webhooks vom homee steuern könnt.
Vorweg gleich die Nachteile:
Keine Rückmeldung von der Birdge, das heißt Ihr seht nicht den Status der Lampen, könnt nicht auf Variablen (Sensoren) der Bridge reagieren (in homee), die Bewegungsmelder und Schalter (die an der Bridge angemeldet sind) können keine Homeegramme auslösen.
Die Vorteile:
-
Alles auf der Bridge bleibt so wie es ist. Sämtliche Apps funktionieren wie gewohnt im Zusammenspiel mit der Bridge.
-
Die Steuerung der Farben etc. wird von der Bridge vorgenommen. Alle Szenen und Regeln die auf der Bridge liegen bleiben erhalten und funktionieren.
-
Keine Umwege über das Internet (IFTTT etc.)
-
Kein Zeitverlust beim Absetzen des Webhooks
-
Alle Variablen können mittels homee in der Bridge gesetzt und verändert werden (z. B. Sensoren in All4Hue). Alles lokal über WLAN.
Die Voraussetzungen:
-
Legt einen Useraccount bei https://www.developers.meethue.com an (kostenfrei und Voraussetzung um die API lesen zu dürfen).
-
Lest die Hue API https://www.developers.meethue.com/documentation/getting-started
Hier ist genau beschrieben wie man über das WLAN auf die Bridge kommt und was für Kommandos im Webhook stehen müssen. -
Legt für die Bridge eine feste IP an. Alle Kommandos beinhalten die IP-Adresse der Bridge, sollte sich die ändern, müsstet Ihr sonst alle Webhooks in homee umschreiben.
Die Umsetzung:
Setzt Euch an das Laptop/den Rechner und startet einen beliebigen Webbrowser innerhalb Eures WLAN. Durch die Eingabe folgender Zeile startet Ihr das Debug-Tool mit dem Ihr schon Kommandos an die Bridge senden könnt.
- http://(IPderBridge)/debug/clip.html
(IPderBridge) müsst Ihr natürlich durch die IP Eurer Hue Bridge ersetzen.
Dann sollte folgendes erscheinen:
Die Kommandos sind wie die Webhooks im JSON-Format aufgebaut (also Adresse, Methode und Body bzw. Response-Bereich für die Meldung aus der Bridge).
Zuerst muss ein neuer berechtigter Benutzer der Bridge angelegt werden. Ihr kennt das ja, wenn eine App Zugriff auf die Bridge haben soll, dann muss der Button auf der Bridge gedrückt werden, damit diese App autorisiert wird. Genauso muss das mit dem neuen Benutzer gemacht werden.
Der User wird durch folgende Eingaben im Debug-Tool generiert:
-
URL: http://(IPderBridge)/api
-
Body: {“devicetype”:“my_hue_app#irgendeinBenutzername”}
-
Dann klickt Ihr auf den Button „POST“
Ihr sollten dann folgende Rückmeldung der Bridge bekommen:
Die Antwort der Bridge ist logisch, weil Ihr ja noch nicht autorisiert seid.
Also nun zur Bridge und auf den runden Button klicken und dann nochmal den „POST“ Button hier im Tool. Dann erscheint:
Diese kryptische Kennung (ist bei Euch natürlich anders, wird zufällig generiert) müsst Ihr Euch nun merken, das ist jetzt der User-Name, der Kommandos an die Bridge senden darf.
Jetzt könnt Ihr schon die ersten Kommandos absetzen und Eure Lichter steuern.
Wichtig ist nun zu wissen welche ID die einzelnen Lampen (und ggf. Variablen) haben und welchen Namen die Szenen in der Bridge haben um sie ansprechen zu können. Wie Ihr an diese Info kommt (über das Debug-Tool) ist in der API sehr gut beschrieben z. B. für die Lichter unter
https://www.developers.meethue.com/documentation/lights-api
(Lesen!!!)
Meine Lichter auszulesen geht z. B. mit:
-
URL: http://(IPderBridge)/api/(MeinBenutzerName)/lights
-
Body: (bleibt leer)
-
Dann den Button „GET“ anklicken
Im unteren Bereich des Tools (Command Response) werden alle Lampen aufgelistet, mit ihren Eigenschaften und ID’s. Die Info könnt Ihr Euch dann rauskopieren und in ein Dokument oder eine txt-File schreiben, damit Ihr auf die Informationen später zurückgreifen könnt.
Möglicher Response der Bridge könnte sein:
"1": {
"state": {
"on": true,
"bri": 144,
"hue": 13088,
"sat": 212,
"xy": [0.5128,0.4147],
"ct": 467,
"alert": "none",
"effect": "none",
"colormode": "xy",
"reachable": true
},
"type": "Extended color light",
"name": "Hue Lamp 1",
"modelid": "LCT001",
"swversion": "66009461"
}
So werden alle Lampen Eures Systems aufgelistet. Anhand der Namen (name: Hue Lamp 1 - hier die dritte Zeile von unten) könnt Ihr die gewünschte Lampe identifizieren.
Das ist dann der Name der Lampe, wie Ihr ihn in der Bridge hinterlegt habt. Jeweils ganz oben steht die ID der Lampe (hier „1“).
Alternativ ist es auch möglich durch Eingabe direkt im Webbrowser folgendes zu bekommen:
z. B alle Sensoren:
Alle Lichter:
(IPderBridge)/api/(MeinBenutzerName)/sensors
Alle Szenen:
(IPderBridge)/api/(MeinBenutzerName)/scenes
Alle Gruppen oder Räume:
(IPderBridge)/api/(MeinBenutzerName)/groups
Alle festgelegten Regeln:
(IPderBridge)/api/(MeinBenutzerName)/rules
(Danke an @sublevel7 für den Tipp!)
Mit dieser Info kann man nun alles mit der Lampe machen. Testweise nochmals im Debug-Tool:
z. B.
-
URL : http://(IPderBridge)/api/(MeinBenutzerName)/lights/1/state
-
und BODY: {“on”:true}
-
Dann „PUT“ klicken
und die erste Lampe sollte sich einschalten.
Fertig (was die Bridge angeht)!
Einbindung in homee:
Mit den Informationen könnt Ihr nun Homeegramme erstellen.
Das was wir gerade am Debug-Tool gemacht haben, würde in einem Homeegramm so aussehen:
EDIT: Die URL des Webhooks im Homeegramm muss mit “http://” beginnen, “https://” funktioniert nicht.
Damit könnt Ihr ohne Zeitversatz und recht gut Eure Szenen aufrufen, Variablen ändern, einzelne Lampen oder Gruppen schalten, dimmen, die Farben ändern, Helligkeit und Sättigung der Farbe beeinflussen.
Ich simuliere hier auch das Anklicken von Dimmern (in der Hue Bridge), da ich viel mit Variablen (Sensoren) arbeite. Z. B. Wenn ich den Dimmerschalter anklicke, dann setze ich in All4Hue eine Variable auf „1“. In einer Regel reagiere ich auf den Inhalt der Variable und setze eine Szene.
Wenn ich nun mittels Homeegramm die Variable auf „1“ setze, dann reagiert meine Regel in der Hue Bridge genauso und schaltet die Szene. Natürlich könnte ich die Szene auch direkt im Homeegramm ansprechen, aber ich habe noch viele andere Abhängigkeiten (Ausschalt-timer wird gestartet, Folgevariablen werden gesetzt die beim Klicken vom Schalter den Bewegungsmelder deaktivieren etc.), alles über All4Hue angelegt. Darauf möchte ich nicht verzichten.
Mir reicht das als Zwischenlösung allemal aus, bis homee soweit ausgereift ist, dass ich die gleichen komplexen Szenen wie in meiner Bridge erstellen kann.
Ich hoffe das hat dem einen oder anderen von Euch geholfen, bzw. Anregungen gegeben. Das ganze ist nicht wirklich schwer, wichtig ist nur sich vorher die ganze API durchzulesen. Dauert maximal 45 Minuten, dann weiß man ziemlich gut, wie die Bridge so „tickt“.
Wenn noch jemand von Euch Ideen hat, etwas ergänzen möchte oder einen Fehler findet…
Bitte posten!
Grüße
Ralf