Philips Hue - Licht einschalten über VU+ Fernbedienung - TUTORIAL

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Philips Hue - Licht einschalten über VU+ Fernbedienung - TUTORIAL

      Hallo VU-Community,

      da es ja aktuell noch kein "richtiges" Plugin zur Steuerung von Philips Hue für die VU+ gibt, habe ich mich selbst ein wenig mit dem Thema auseinandergesetzt.
      Im Grunde ging es mir in erster Linie darum, das Licht schnell einschalten zu können, ohne erst mein iPhone zu suchen + App starten.

      Ziel war es also mit der VU+ Fernbedienung (bzw. in meinem Fall Logitech Harmony) das Licht einzuschalten.

      Einleitung
      Die Philips Hue Lichter können bequem über APIs bedient werden. Wer nicht weiß was eine API ist -> Im Grunde wird hier ein Web-Aufruf zur Hue-Bridge abgesetzt.
      • Mittels GET können z.B. Status-Informationen abgefragt werden -> Beispiel: Welche Lichter sind aktuell eingeschaltet oder welche Farbe hat Glühbirne 1.
      • Mittels POST können Info's zur Bridge übertragen werden. -> Beispiel: Schalte Lampe 1 ein.

      A - Philips Hue - User erstellen
      Einen User benötigt man, damit man sich über die APIs an der Philips Hue authentifizieren kann.
      Ich benutze dafür das Tool "Cocoa Rest Client" für den Mac. Es geht aber jedes Rest-fähige Tool ob für Windows, Linux, Mac o.ä.
      Alternativ kann dieser Schritt auch direkt über Curl (Kommandozeilen-Tool) ausgeführt werden.
      Eine weitere Variante ist der integrierte Rest-Client unter: http://192.168.xx.xx/debug/clip.html

      API-Beschreibung: Create user

      Die folgenden Inhalte beziehen sich auf das Cocoa Tool für Mac.

      Request-Body (vorher auf Raw-Input stellen):

      Quellcode

      1. {"devicetype": "Vu", "username": "1234567890"}


      Header:
      Name: Content-Type
      Value: application/x-www-form-urlencoded

      Mittels POST die folgende URL ansprechen http://192.168.xx.xx/api

      Man sollte dann als Ergebnis (Response) eine Meldung wie z.B. "Link Button not pressed" bekommen.
      Wir müssen nun den Link-Button auf der Hue-Bridge drücken, um in den Pairing-Modus zu wechseln. Wenn wir nun nochmals den Api-Aufruf starten, dann sollte ein "Success" zurückkommen.

      Mit dem Key "1234567890", welchen wir oben angegeben haben (frei wählbar) können wir nun die API aufrufen. -> http://192.168.xx.xx/api/1234567890/....
      Schritt 1 geschafft!

      Zum testen der API bzw. des Registrierten Keys könnt ihr die folgende URL aufrufen: http://192.168.xx.xx/debug/clip.html
      Den gerade vergebenen Key in die URL oben eintragen und mittels PUT zur Bridge übertragen. Es sollte dann "Lampe 1" kurz blinken.


      B - CURL auf der VU nachinstallieren
      Dies ist relativ einfach und schnell erledigt.
      Einfach per Putty als "root" auf die VU verbinden und folgenden Befehl ausführen:

      Quellcode

      1. root@vusolo2:~# opkg install curl

      C - Shell-Skript auf der VU+ ablegen
      Anstatt per Rest-Tool (siehe oben) können APIs auch direkt auf der Kommandozeile angesteuert werden. Dazu wird z.B. CURL benötigt.
      CURL haben wir bereits auf der VU installiert.

      Dokumentation der Licht-API: http://developers.meethue.com/1_lightsapi.html

      Anbei der Inhalt meines Skripts (abgelegt in /media/hdd/hue/licht_tv.sh):
      Spoiler anzeigen

      curl -X PUT -d "{\"on\":true,\"bri\":254,\"hue":15613}" "http://192.168.xx.xx/api/1234567890/lights/2/state" > /dev/null 2>&1
      curl -X PUT -d "{\"on\":true,\"bri\":130,\"hue\":47784,\"sat\":253,\"ct\":500}" "http://192.168.xx.xx/api/1234567890/lights/1/state" > /dev/null 2>&1

      Der erste Befehl schaltet z.B. Lampe 2 ein, setzt eine Farbe und eine Helligkeit.
      WICHTIG: Die Anführungszeichen innerhalb der "{ xxx }" müssen mit einem \ "Backslash" maskiert werden, sonst funktioniert es nicht!
      Der zweite Befehl schaltet die Lampe Nr. 1 ein und setzt noch einige weitere Parameter. Hier muss jeder selbst mit den Möglichkeiten der API rumspielen.
      Bei mir kommt hierbei TV-taugliches Licht heraus. Die Deckenleuchte (Nr. 1) ist relativ dunkel - die Stehlampe (Nr. 2) leuchtet etwas heller.
      Putty-Sitzung als root:
      Mit dem folgenden Befehl die Ausführ-Berechtigung setzen:

      Quellcode

      1. chmod u+r /media/hdd/hue/licht_tv.sh


      Das Skript könnt ihr über Putty nun direkt einmal antasten:

      Quellcode

      1. /media/hdd/hue/licht_tv.sh

      Wenn alles passt, dann sollte sich nun das Licht verändert haben ;)
      D - Taste auf der Fernbedienung für Skript definieren
      Ich nutze dafür das Plugin Multi Quick Button. Es gibt sicherlich auch Alternativen. MQB nutze ich aber ohnehin schon und eignet sich deshalb ganz gut für diese Aufgabe.
      Ich habe bei mir die gelbe Taste (Standardmäßig "TimeShift" - Habe ich separat auf der "Pause"-Taste) gewählt.
      Über das MQB-Menü lässt sich leider nicht direkt ein Skript auswählen. Daher muss hier das XML-File angepasst werden.

      In meinem Fall (gelbe Taste) muss die folgende Datei wie folgt angepasst werden /etc/MultiQuickButton/quickbutton_yellow.xml
      Spoiler anzeigen
      <?xml version="1.0" encoding="UTF-8" ?>
      <xml>
      <Menu>
      <content>
      <name>Licht an</name>
      <sel>1</sel>
      <module>Screens.Console</module>
      <screen><![CDATA[Console, "Licht an", ["sh /media/hdd/hue/licht_tv.sh"]]]></screen>
      </content>
      </Menu>
      </xml>

      E - Fertig
      Das wars schon. Ein Klick auf die gelbe Taste auf der FB ruft nun das Shell-Skript auf. Das Skript wiederum ruft die API der Hue-Bridge auf und schaltet licht ein.
      Dies kann natürlich unendlich weit getrieben werden.
      Ich habe z.B. noch ein weiteres Skript bei langem drücken der gelben Taste, welche das Licht wieder ausschaltet.

      Das Shell-Skript (z.B. licht_aus.sh) zum ausschalten von Lampe 1 + Lampe 2 schaut z.B. so aus:
      Spoiler anzeigen

      curl -X PUT -d "{\"on\":false}" "http://192.168.178.153/api/1234567890/lights/2/state" > /dev/null 2>&1curl -X PUT -d "{"on":false}" "http://192.168.178.153/api/1234567890/lights/1/state" > /dev/null 2>&1



      Ich habe dann analog zu licht_an.sh die quickbutton_yellow_long.xml mit dem licht_aus.sh Skript belegt.

      Viel Spaß beim nachbauen.

      Grüße aus Hamburg,
      Robert.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single

      Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von robhh ()

    • Ich kann es leider nicht testen da ich noch keine Hue besitze, aber ich habe mal den Bedankomaten an geschmissen ;)

      Gruß Fukkel
      "Das Geheimnis des Könnens liegt im Wollen." Giuseppe Mazzini Eigentlich wollte ich mich mit Dir geistig duellieren.........aber ich sehe Du bist unbewaffnet.
      >>> TOP Infos hier: <<<
      Wissen heißt wissen, wo es geschrieben steht. Albert Einstein
    • Erstmal besten Dank :) nur ich bekomme eine Fehlermeldung wenn ich meine von mir festgelegte Taste drücke.
      XML Fehler: XML or text declaration not at of entiry: line 1, column 1

      Curl ist auf der Vu installiert, nur bei
      chmod u+r /media/hdd/hue/licht_tv.sh

      komme ich nicht so weiter, dort sollten die Lampen ja schon angehen das geht nicht, bzw. wenn ich den Befehl starte bekomme ich auch keine Rückmeldung oder irgentwas.
    • Planetor80 schrieb:

      Erstmal besten Dank :) nur ich bekomme eine Fehlermeldung wenn ich meine von mir festgelegte Taste drücke.
      XML Fehler: XML or text declaration not at of entiry: line 1, column 1
      Hier scheint es so, als ob dein XML-File korrupt ist. Kannst du deins hier mal reinpasten?
      Du kannst dir auch zum Vergleich mal ein bestehendes anderes XML anschauen.

      Planetor80 schrieb:

      Curl ist auf der Vu installiert, nur bei
      chmod u+r /media/hdd/hue/licht_tv.sh

      komme ich nicht so weiter, dort sollten die Lampen ja schon angehen das geht nicht, bzw. wenn ich den Befehl starte bekomme ich auch keine Rückmeldung oder irgentwas.
      Wenn du den chmod Befehl ausführst, dann bekommt du keinerlei Rückmeldung -> dies ist völlig in Ordnung. Du setzt hiermit nur die "Ausführ-Berechtigung" für das sh-skript.

      Wenn du das Shell-Skript starten willst, dann reicht ein:
      Einfach per Putty:

      Quellcode

      1. root@vusolo2:~# /media/hdd/hue/licht_tv.sh



      Probier doch nochmal direkt das Skript zu starten, ohne es über die Fernbedienung zu machen.
      Sonst lässt sich schlecht herausfinden, an welcher Stelle der Fehler liegt.

      Grüße,
      Robert.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single
    • Ok da liegt wohl der Fehler denn dort erhalte ich die Fehlermeldung Permission denied, wobei ich hab noch ne Frage zur API, ich hab mir einen Benutzernamen über das Philips API Webmenü angelegt, das macht doch keinen Unterschied oder?
    • Planetor80 schrieb:

      Ok da liegt wohl der Fehler denn dort erhalte ich die Fehlermeldung Permission denied, wobei ich hab noch ne Frage zur API, ich hab mir einen Benutzernamen über das Philips API Webmenü angelegt, das macht doch keinen Unterschied oder?
      Erklär mir mal bitte kurz die Schritte, wie du das gemacht hast.
      Ich wüsste nicht, wie man das machen sollte, ohne einen Api Request zu machen.
      Meinst du einen User für meethue.com? Der hat mit dem User für die API nichts zu tun...

      Hier noch eine kleine Anleitung (weiter unten), wie das ganze per CURL funktioniert:
      everyhue.com/vanilla/discussion/146/hue-noob/p1

      Grüße,
      Robert.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von robhh ()

    • Planetor80 schrieb:

      Ich habs das über diese Anleitung gemacht: developers.meethue.com/gettingstarted.html da liegt warscheinlich der Fehler
      Moin,
      ich wusste nicht, dass in der Hue-Bridge über die URL http://<hueip>/debug/clip.html bereits ein REST-Client integriert ist.
      Diesen kannst du dann genauso benutzen.
      Ich habe irgendwo in einem anderen Forum gelesen, dass der "Username" mindestens 10 Zeichen haben muss. Das könnte evtl. auch ein Problem sein.

      Unter URL oben musst du dann nur /api angeben.
      Im Feld Message Body z.B. {"devicetype":"vuplus","username":"1234567890"}


      Drückst du dann auf "POST", dann bekommst du als Antwort: (...) "description": "link button not pressed" (...)
      Wenn du den Knopf auf der Bridge drückst und dann nochmal auf "POST" klickst, dann sollte ein "successful" angezeigt werden.

      Grüße,
      Robert.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single
    • So habe das noch ein mal so gemacht, funktioniert leider noch nicht gibt noch immer diese Fehlermeldung.
      Hier mal meine licht_tv.sh Datei wie ich Sie aufgebaut habe:
      curl -X PUT -d "{"on":true, "sat":255, "bri":255,"hue":10000}" "http://192.168.x.x/api/546458xxxx/lights/1/state" > /dev/null 2>&1

      Die x sind dementsprechend mit meinen Zahlen gefüllt. Nun frage ich woran es liegt. Also ich logge mich per putty als root nutzer ein und gebe dann direkt:




      chmod u+r /media/hdd/hue/licht_tv.sh

      ein... hmm
    • Also zum aufrufen des Shell-Files direkt von der VU ist der chmod-Befehl nicht mehr erforderlich (siehe schon weiter oben). Das muss man nur einmalig nach der Erstellung der Datei machen.
      google mal, was chmod tut ;)

      Falsch:
      chmod u+r /media/hdd/hue/licht_tv.sh

      Richtig:

      /media/hdd/hue/licht_tv.sh

      Dann sollte sich bei den Lampen etwas tun, vorausgesetzt der Username passt, Lampe 1 ist vorhanden und eingeschaltet.

      P.S.: Habe gerade mal ausprobiert. Leuchtet dann in einem rel. hellen Orange ;)
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von robhh ()

    • Sehr merkwürdig, dann stimmt wohl was mit script bei mir nicht.
      Also er hatte mir bislang immer noch den Fehler angezeigt das er die Datei nicht ausführen durfte, nun habe ich per ftp die Dateiberichtigung Ausführen angekreutzt, nun bekomme ich zwar keinen Fehler aber die Lampe startet auch noch nicht.
      Wenn ich das über das Api Debug tool mache also den Befehl eingebe mit dem Benutzernamen usw. dann startet die Lampe... nun bin ich auch überfragt woran es liegen könnte. Liegt es vielleicht an curl das das nicht korrekt ausgeführt wird?
    • So, herausgefunden ;)
      Es lag an den "Anführungszeichen" innerhalb des JSON-Befehls. Hier hat das Forum die Backslash's vor den Anführungszeichen herausgefiltert.
      Habe es oben im Thread entsprechend angepasst - nur wird es da auch richtig angezeigt.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single
    • Endlich klappt bei mir, dank euch!!! ABER: Am Anfang kleine Skript licht_tv.sh geht nicht, habe etwas geändert:

      Statt
      curl -X PUT -d "{"on":true, "sat":255, "bri":255,"hue":10000}" "http://192.168.1.36/api/1234567890/lights/2/state" > /dev/null 2>&1

      habe ich /dev/null ... entfernt. So sieht mein Skript (licht_on.sh) aus:
      curl -XPUT "http://192.168.1.36/api/1234567890/lights/2/state" -d '{"bri": 47,"hue": 63220,"sat": 253,"on": true}'

      Und licht_off.sh
      curl -XPUT "http://192.168.1.36/api/1234567890/lights/2/state" -d '{"on":false}'

      Frage, muss /dev/null unbedingt bleiben oder?

      Ich habe 5 Hue-Lampen, habe mehrere Zeilen eingefügt, im MQB lange ROT-Taste drücken => licht.off.sh und lange GREEN-Taste => licht_on.sh
      Einzige unschöne ist: wenn ich Taste drücken, kommt Befehlskript auf Bildschirm und muss Exit drücken, macht aber nix.

      EDIT: Doch richtig mit "> /dev/null 2>&1" vorher habe ich vergessen ">" einzufügen. Jetzt sieht besser aus mit Befehlskript auf Bildschirm!
      • • VU+ ULTIMO 3xDVB-C Unitymedia, Image OpenPLi 4.0 (beste Unterstützung für Untertitel!)

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von deafmicky ()

    • Ich habe 5 HUE-Lampen. Um komplett auszuschalten, habe ich kleine Änderung gemacht und zwar in Lampen-Gruppe.

      Statt /lights/2/state in /groups/0/action

      Man muss nicht jede Zeilen für jede Lampe, nur 1 Zeile in Gruppe.

      curl -X PUT -d "{"on":false}" "http://192.168.1.36/api/1234567890/groups/0/action" > /dev/null 2>&1
      • • VU+ ULTIMO 3xDVB-C Unitymedia, Image OpenPLi 4.0 (beste Unterstützung für Untertitel!)

    • deafmicky schrieb:

      Ich habe 5 HUE-Lampen. Um komplett auszuschalten, habe ich kleine Änderung gemacht und zwar in Lampen-Gruppe.

      Statt /lights/2/state in /groups/0/action

      Man muss nicht jede Zeilen für jede Lampe, nur 1 Zeile in Gruppe.

      curl -X PUT -d "{"on":false}" "http://192.168.1.36/api/1234567890/groups/0/action" > /dev/null 2>&1
      Hi,

      schön, dass es bei dir klappt.
      Ich habe letztens irgendwo einen Artikel gesehen, wo man den Skript-Bildschirm unter MultiQuickButton komplett weglassen kann. Finde die Seite nur nicht wieder. Ich werde nochmal ein wenig suchen.

      Das mit den Gruppen funktioniert natürlich genauso, vorausgesetzt man hat auch Gruppen definiert. Ich habe 3 Hue-Lampen, möchte aber beim TV-schauen nur 2 davon an haben.
      Man kann natürlich noch deutlich mehr machen, als nur an+ausschalten.
      Man könnte so z.B. auch sagen, wenn ein Timer startet, dann 1x rot blinken o.ä.

      Freut mich, dass es Leute gibt, denen die kleine Anleitung hier hilft :8)
      Falls noch jemand coole Ideen hat - immer her damit.

      Grüße,
      Robert.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single
    • Super, vielen Dank, klappt bei mir jetzt auch wunderbar mit 2 hues.
      Gibts eigentlich irgendwo ne Farbtabelle, um zu wissen, welche Parameter für welche Farbe eingeben muss?

      Danke noch mal hierfür !

      LG
    • rooter schrieb:

      Super, vielen Dank, klappt bei mir jetzt auch wunderbar mit 2 hues.
      Gibts eigentlich irgendwo ne Farbtabelle, um zu wissen, welche Parameter für welche Farbe eingeben muss?

      Danke noch mal hierfür !

      LG
      Hallo Rooter,

      du brauchst dafür keine Farbtabelle.
      Das einfachste ist, wenn du eine deiner Lampen einfach per App (iPhone etc.) steuerst und dann über die API die Info's zur eingestellten Farbe/Helligkeit etc. abrufst.
      Dies kannst du über GET und der URL /api/1234567890/lights tun.
      Die Antwort beinhaltet dann alles was du hierfür brauchst...

      Beispiel-Antwort:
      Spoiler anzeigen


      "1": {
      "state": {
      "on": true,
      "bri": 130,
      "hue": 12521,
      "sat": 225,
      "xy": [
      0.5261,
      0.4132
      ],
      "ct": 497,
      "alert": "none",
      "effect": "none",
      "colormode": "ct",
      "reachable": true
      },
      "type": "Extended color light",
      "name": "Deckenlampe",
      "modelid": "LCT001",
      "swversion": "66010820",
      "pointsymbol": {
      "1": "none",
      "2": "none",
      "3": "none",
      "4": "none",
      "5": "none",
      "6": "none",
      "7": "none",
      "8": "none"
      }
      },



      Grüße,
      Robert.
      Setup:
      Vu+ Solo2 (+WD Black 750GB) - Harman Kardon AVR 365 - Canton Karat (front + center) - Canton Plus XL (rear) - Canton Plus Beta (woofer), Apple TV 3, Sony PS3, Selfsat single
    • Danke für die Tipse mit den Farben. Hab´s jetzt hinbekommen. Allergings nur mit dem Skript von vuplus-support.org/wbb3/index.php?page=User&userID=97830deafmicky. Änder ich die hue Nummern im Anfagsskript, keine Änderungen, Helligkeit verändern geht. Komisch. Aber es klappt ja zumindest mit dem anderen Skript. Hab jetzt 3 verschiedene Farben und Licht aus auf eine Taste gelegt, und kann schön im Fenster auswählen, welche Frabe ich haben möchte. Danke noch mal !
    • robhh schrieb:

      Man kann natürlich noch deutlich mehr machen, als nur an+ausschalten.
      Man könnte so z.B. auch sagen, wenn ein Timer startet, dann 1x rot blinken o.ä.


      Ich hätte gerne mit Timer ausprobieren, leider weiss ich nicht, wo Skript aus Timer abrufen kann. Weisst du vielleicht? Mit Befehl "alert":select hätte gereicht.
      • • VU+ ULTIMO 3xDVB-C Unitymedia, Image OpenPLi 4.0 (beste Unterstützung für Untertitel!)