Mit Philips Hue Lighting System können Sie die Beleuchtung in Ihrem Haus von einer mobilen App oder von jeder Anwendung steuern, die Sie selbst schreiben, die eine Verbindung zum Internet herstellen kann. Die Mitte des Systems ist die Hue Bridge, ein von Ethernet verbundenes Gerät, das mit kompatiblen Lampen über das Zigbee-HA-Funkprotokoll kommuniziert. Philips stellt eine Reihe von Farbton-kompatiblen Lampen her, und viele Lampen von Drittanbietern arbeiten mit demselben Protokoll. IconNecthue unterhält eine gründliche Liste von Farbton-kompatiblen Lampen. Meistens im Euro-Market zentriert, aber immer noch sehr nützlich.
Jede Hue -Brücke ist ein eigener HTTP -Webserver und kann mit der Hue -REST -API gesteuert werden. Es gibt Bibliotheken, die den in vielen Programmiersprachen verfügbaren Farbton steuern. Die Tutorials hier sind alle im clientseitigen JavaScript mit P5.JS, Plain JavaScript oder serverseitig unter Verwendung von node.js oder miccontroller-basiert für Arduino.
Die Hue API V2 wurde kürzlich veröffentlicht und wird schließlich V1 ersetzen. Diese Notizen beziehen sich derzeit auf V1 (19. Januar 2021) und arbeiten noch. HUE API V2 Features HTTPS sowie einige Bruchänderungen gegenüber V1.
Um zu starten, müssen Sie Hue -Apps mit dem Programmieren von Programmen auf eine Hue -Brücke benötigen. Sie möchten auch ein Hue -Konto. Die Entwicklerkonten sind kostenlos. Halten Sie den Hue Developers Site Link griffbereit.
Die HUE -App für Android oder iOS ist bei der Entwicklung hilfreich, da sie funktioniert, wenn Ihr Projekt noch nicht der Fall ist. Die Hue Essentys -App ist auch eine ziemlich hilfreiche Alternative.
Jeder Hue verfügt über eine Debug -Schnittstelle, die unter http://$ADDR/debug/clip.html
ersetzt $ADDR
durch die IP -Adresse Ihrer Brücke ersetzen. Wenn Sie sich entwickeln, können Sie dies verwenden, um API -Befehle an die Brücke zu senden, um Dinge zu testen.
Peter Murrays Node-Hue-API-Bibliothek für Node.js ist die beste der verschiedenen Node.js JavaScript-Bibliotheken, die ich getestet habe, um den Farbton zu kontrollieren.
Für die Kontrolle des Farbtons von einem Browser -Client leistet P5.JS gute Arbeit, da es eine einfache HTTP -Anfrage -API hat. Natürlich können Sie auch einfach JavaScript verwenden.
Die Arduinohttpclient Library und die Arduino_Json-Bibliothek sind nützlich, wenn Sie eines der Arduino Wifi-Enabled-Boards verwenden, um eine Verbindung zu Ihrer Farbtonbrücke herzustellen. (HINWEIS: Es gibt eine andere JSON -Bibliothek ohne Unterstrich. Das ist nicht die hier verwendete.)
Das Befehlszeilen -Tool -Curl ist hilfreich, um HTTP -Anforderungen an Ihre Brücke zu testen, wenn Sie mit der Befehlszeile von POSIX (Linux/UNIX) vertraut sind. Curl ist nicht in der Windows -Befehlsschnittstelle verfügbar. Sie können es jedoch über das Windows -Subsystem für Linux in Windows 10 oder über Cygwin erhalten, eine Anwendung, die eine Linux -Shell für Windows bietet. Hier finden Sie einige Details zur Verwendung von Curl, um auf eine Farbtonbrücke zuzugreifen.
Abgesehen davon müssen Sie einige HTML und JavaScript und einen Texteditor, eine Befehlszeilenschnittstelle und einen Browser kennen, um die Beispiele auf dieser Website auszuprobieren. Die hier gezeigten Befehlszeilenbeispiele sind alle für Linux oder UNIX, funktionieren jedoch unter Windows 10 mit dem Windows -Subsystem für Linux in Windows 10.
Ihre App muss mit einem einzigartigen Benutzernamen an Ihrer Brücke identifiziert werden. Diese Beispielseite vereinfacht dies, wenn Sie die IP -Adresse Ihrer Brücke kennen. Sie können diese Seite nicht von einem Remote -Server ausführen. Laden Sie es herunter und öffnen Sie die Datei index.html
in einem Browser aus Ihrem Dateisystem. Dies liegt daran, dass die HUE API Version 1 HTTP verwendet, nicht HTTPS.
Sie können auch den Anweisungen der Hue Developer -Website erstellen.
Wenn Sie es richtig machen, sollten Sie eine Antwort wie diese erhalten:
[
{
"success": {
"username": "newusername"
}
}
]
Jetzt sind Sie bereit, Code für Ihre Brücke zu schreiben. Unabhängig davon, in welcher Umgebung Sie programmieren, werden Sie den hier festgelegten Benutzernamen verwenden.
Die Debug -Clip -Schnittstelle ist eine Seite, mit der Sie Funktionen auf Ihrer Brücke testen können. Seine Adresse lautet:
http://your.bridge.ip.address/debug/clip.html
Es kann verwendet werden, um einen API -Befehl an Ihre Brücke zu senden. Die allgemeine Abfragezeichenfolge lautet wie folgt:
/api/$HUE_USER/command
Im Allgemeinen erfolgt das Abfragen des Status des Geräts mithilfe von GET -Befehlen und das Ändern erfolgt mit Put. Um zum Beispiel den Status aller Lichter abzufragen, geben Sie Folgendes in das URL -Feld ein:
/api/$HUE_USER/lights
Und klicken Sie auf GET. Um die Konfiguration abzufragen, geben Sie ein:
/api/$HUE_USER/config
Und klicken Sie auf GET. Um Licht 1 einzuschalten, geben Sie Folgendes in das URL -Feld ein:
/api/$HUE_USER/lights/1/state
Und geben Sie Folgendes in das Feld "Message Body" ein:
{"on":true}
Und klicken Sie auf Put. Das Licht sollte ankommen, und die Brücke sollte antworten:
[
{
"success": {
"/lights/1/state/on": true
}
}
]
Weitere Informationen zu der Hue -API finden Sie im Hue -Erst -Start -Handbuch, den Hue -API -Kernkonzepten und der Dokumentation der vollständigen Hue -API. Sie müssen ein kostenloses Konto erstellen und sich anmelden, um das Entwicklerportal zu verwenden.
Wenn Sie Ihre Brücke zu Ihrem Netzwerk hinzugefügt haben, sollten Sie in der Lage sein, die HUE -App oder die HUE Essentys -App zu verwenden, um die IP -Adresse zu erhalten. Aber in einem komplexen Netzwerk wie einem Schulnetzwerk funktioniert dies möglicherweise nicht. Ihr mobiles Gerät und Ihre Hue -Brücke müssen sich im selben lokalen Netzwerk befinden, damit dies funktioniert. Wenn Ihr WiFi -Netzwerk beispielsweise nicht das gleiche lokale Netz wie Ihr verdrahtetes Ethernet -Netzwerk ist (wo die Brücke lebt), können Sie möglicherweise nicht die Adresse erhalten. Wenn Sie jedoch die MAC -Adresse der Brücke erhalten können, können Sie in Ihrem Netzwerk danach suchen. So wie
Jede Brücke hat eine eindeutige, die die MAC -Adresse auf der Unterseite Ihrer Brücke finden. Es ist eine Sechs-Byte-Zahl in hexadezimaler Notation wie SO:
00:17:88:0B:14:48
Einige Brücken zeigen nur die letzten drei Bytes. Zum Beispiel könnte die Brücke oben nur 0b1448 zeigen. Bei älteren Farbtonbrücken werden die ersten drei Bytes immer 00:17:88
sein. Mit neueren sehen Sie möglicherweise auch EC:B5:FA
stattdessen.
Um nach Ihrer Brücke in Ihrem Netzwerk zu suchen, stellen Sie sicher, dass Sie die ersten drei Ziffern des lokalen Netzwerks haben und darauf zugreifen können, und öffnen Sie dann eine Befehlszeilenschnittstelle und geben Sie ein:
$ ping -c 5 xxx.xxx.xxx.255
Wobei xxx.xxx.xxx
die ersten drei Nummern Ihres Netzwerks sind. In einem Netzwerk, dessen Router 172.16.130.1 beträgt, würden Sie beispielsweise 172.16.130.255 eingeben. Manchmal verwenden große Institutionen zwei verschiedene Subnetze für kabelgebundene und drahtlose Netzwerke, sind jedoch immer noch im gleichen größeren lokalen Netzwerk.
Sie erhalten eine Liste von Antworten, da Geräte im Netzwerk auf Ihre Ping -Anfragen reagieren. Wenn es fertig ist, geben Sie:
$ arp -a
Sie erhalten eine Liste aller Geräte auf demselben Netzwerk, das Ihr Computer sehen kann. Suchen Sie nach dem, der der MAC -Adresse Ihrer Brücke entspricht, und die IP -Adresse daneben wird die IP -Adresse Ihrer Brücke sein. Die letzten drei Bytes Ihrer MAC -Adresse vom Etikett unten. Die ersten drei werden wahrscheinlich entweder 00:17:88 oder EC: B5: FA sein, wie oben erläutert. Hier ist ein typisches Beispiel:
$ arp -a
? (192.168.0.1) at ac:b7:16:61:e3:77 on en0 ifscope [ethernet]
? (192.168.0.3) at 00:17:88:0B:14:48 on en0 ifscope [ethernet]
? (192.168.0.255) at ff:ff:ff:ff:ff:ff on en0 ifscope [ethernet]
In diesem Fall beträgt die IP -Adresse des HUE 192.168.0.3.
Sie können mit der regulären mobilen Hue -App nach neuen Lampen auf der Brücke suchen. Sie können dies auch über die Debug -Clip -Schnittstelle mit einer Postanforderung in der folgenden URL tun:
/api/$HUE_USER/lights/
Füllen Sie die Adresse Ihrer Brücke für $ adr und Ihren Farbton -Benutzernamen für $ hue_user ein. Sie sollten eine Antwort wie diese erhalten:
[[ { "success": { "/lights": "Searching for new devices" } }]
Nach 90 Sekunden können Sie nach neuen Lampen scannen, die wie SO hinzugefügt wurden:
/api/$HUE_USER/lights/new
In Curl:
$ curl -X GET http://$ADDR/api/$HUE_USER/lights/new
Dadurch werden nur die neuen Lampen aufgeführt, die nach einem Scan nach neuen Lampen hinzugefügt wurden.
Wenn Sie versuchen, eine Lampe hinzuzufügen, die zuvor mit einer anderen Brücke verbunden war, müssen Sie einen anderen Ansatz verwenden. Legen Sie die Lampe in der Nähe der Brücke, mit der Sie sie steuern möchten (näher als jede andere Lampe, idealerweise weniger als 1 Meter). Schalten Sie alle anderen mit der Brücke verbundenen Lampen aus oder stellen Sie sicher, dass sie viel weiter entfernt sind als die, die Sie möchten.
Senden Sie die folgende Debug -Clip -Schnittstelle mit einer Put -Anforderung:
/api/$HUE_USER/config/
Im Körper Ihrer Anfrage gestellt:
{"touchlink": true}
In Curl das ist:
$ curl -X PUT -d '{"touchlink": true}' http://$ADDR/api/$HUE_USER/config
Die Lampe sollte ein paar Mal blinzeln, und der Server antwortet mit einer Erfolgsnachricht. Sie können die Lampe jetzt mit der oben beschriebenen Anforderung neuer Lampen hinzufügen.
Wenn Touchlink es nicht gelingt, eine Lampe zurückzusetzen, müssen Sie sie möglicherweise manuell zurücksetzen. Für jeden Hersteller ist es anders, aber das allgemeine Muster besteht darin, die Lampe drei- bis fünfmal ein- und auszuschalten, wonach es leicht blinzelt oder leicht schwenket, um anzuzeigen, dass sie zurückgesetzt wurde. Zum Beispiel ist das Muster mit den GE -Link -Glühbirnen:
Für einige Lampen von Drittanbietern, wie die Cree Connect oder die Innr -Glühbirnen, können Sie dies mit 2 Sekunden -Intervallen tun. Im Zweifelsfall gehen Sie jedoch mit drei Sekunden.
Wenn Sie eine der Farbton -Fernbedienungen haben, können Sie eine Lampe auch mit dieser zurücksetzen. Schalten Sie dazu die Lampe ein und legen Sie die Fernbedienung innerhalb von sechs Zoll von der Lampe. Drücken Sie die Stromversorgung und führen Sie die Tasten aus (oder schalten Sie die Szene aus und wählen Sie Szene aus, die auf neuere Modelle in neueren Modellen ausgewählt werden). Dadurch wird die Lampe in ihren Standard -Fabrikzustand eingebaut, der bereit ist, sich mit einer neuen Brücke zu kombinieren.
Sie können eine Lampe von einer Brücke von der Debug -Clip -Schnittstelle unter Verwendung einer Löschanforderung für die folgende URL löschen:
/api/$HUE_USER/lights/1
In Curl:
$ curl -X DELETE http://$ADDR/api/$HUE_USER/lights/1
Ersetzen Sie 1 durch die Anzahl des Lichts, das Sie löschen möchten.
Um den Status aller angeschlossenen Lichter zu erhalten, senden Sie Folgendes von der Debug -Clip -Schnittstelle mit einer GET -Anforderung:
/api/$HUE_USER/lights/
In Curl ist das:
$ curl http://$ADDR/api/$HUE_USER/lights/
Dies sollte die Liste der verfügbaren Lichter wie SO zurückgeben:
{"1":{"state":{"on":true,"bri":254,"hue":14314,"sat":172,"effect":"none","xy":[0.4791,0.4139],"ct":405,"alert":"none","colormode":"ct","reachable":true},"type":"Extended color light","name":"Hue color light 1","modelid":"LCT001","manufacturername":"Philips","uniqueid":"00:17:88:01:00:ff:9a:28-0b","swversion":"5.127.1.26581"}}
Um ein Licht einzuschalten, müssen Sie wissen, welche Nummer es ist. Dann ändern Sie seinen Zustand wie so:
Senden Sie Folgendes über die Debug -Clip -Schnittstelle mit einer Put -Anforderung:
/api/$HUE_USER/lights/4/state
Im Körper Ihrer Anfrage gestellt:
{"on": true}
In Curl ist das:
$ curl -X PUT -d '{"on":true}' http://$ADDR/api/$HUE_USER/lights/4/state
Um es auszuschalten, ändern Sie den Körper der Anfrage an die Anfrage an
{"on": false}
Sie können die Eigenschaften des Zustands eines Lichts auf diese Weise ändern. Schauen Sie sich beispielsweise bei Light 1 aus dem Abschnitt "Status aller Lichter" oben an:
{"1":{"state":{"on":true,"bri":254,"hue":14314,"sat":172,"effect":"none","xy":[0.4791,0.4139],"ct":405,"alert":"none","colormode":"ct","reachable":true},
Solange die reachable
Eigenschaft wahr ist, was bedeutet, dass die Brücke versuchte, die Lampe zu erreichen und eine Antwort zu erhalten, können Sie die anderen Eigenschaften ändern. Dies ist eine Farblampe und verfügt über drei Modi, HS (für Farbton, Sättigung), CT (für Farbtemperatur) und XY (für x- und y -Dimensionen im CIE1931 -Farbraum). Wenn Sie entweder den Farbton oder die Sättigung ändern, wechselt die Colorde der Lampe zu HS, und wenn Sie die Farbtemperatur ändern, wechselt die ColorModes zu CT. Wenn Sie XY -Werte senden, wechselt der Colorde in den XY -Modus.
Unterschiedliche Lichter haben unterschiedliche Eigenschaften in ihrer Zustandsvariablen, die Sie ändern können. Die P5.JS -Skizze scannt alle Eigenschaften jeder Lampe auf der
Die Modelle MKR1000, MKR1010 und Nano 33 IoT Arduino können die Hue -Brücke auch über HTTP -Anforderungen steuern. Es gibt auch einige Arduino -Hue -Beispiele mit Notizen in diesem Repository.