Hue-Bridge-Zauber

Diesen Beitrag schrieb ich 5 Jahre und 7 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

Mir war gar nicht bewusst, wie einfach man Informationen aus der Hue Bridge auslesen kann – eine wirklich praktische Sache. Ich nutze hier eine Bridge erster Generation – die kleine weiße runde – und vielleicht mag mir jemand Feedback geben, ob das mit der neueren eckigen auch so funktioniert?

Als das Hue-System aufkam, hielt ich es für völlig überbewertet: bunte Lampen, schön. Dimmbare Lampen, toll. Braucht doch keiner – oder?

Für meinen Artikel „Brückenbauer“ in der c’t 22/16 stellte Heise mir dann für einige Wochen eine Teststellung zur Verfügung – und ich war schockverliebt. Denn wenn man es richtig angeht… Also dann ist es viel mehr als nur dummes buntes Licht. Das mag nicht für jeden zutreffen, aber wie ich inzwischen weiß, wird meine Gemütslage durch die Beleuchtung leider sehr stark beeinflusst. Und so kam es über die Zeit, dass ich nun zwei Hue Bridges aktiv betreibe – mit einer steigenden Zahl an Leuchtmitteln. Ist umfangreich, auch in Hinblick auf Wartung & Co. Und so kam ich drauf, mir Informationen ohne große Umwege direkt aus der Bridge zu ziehen…

Die Abfrage der Information erfolgt über die API, sprich: du benötigst einen Client, mit dem du API-Abfragen übermitteln kannst, und du benötigst einen User auf der Hue-Brigde der berechtigt ist, das auch zu tun. Für ersteres gibt es sicherlich verschiedene Ansätze, aber da ich ein Freund von „keep it simple and stupid“ bin empfehle ich den in der Hue-Bridge eingebauten.

Hue Bridge PUT Hue Bridge PUT

Du öffnest also http://ip.deiner-hue-brid.ge/debug/clip.html; als URL gibst du http://ip.deiner-hue-brid.ge/api an und als Message Body etwas wie { "devicetype" : "Smart Home" }. Klicke dann auf den Button POST; du wirst eine Antwort ähnlich folgender erhalten:

[
  {
    "error": {
      "type": 101,
      "address": "",
      "description": "link button not pressed"
    }
  }
]

Also rennst du nun zur Hue Bridge und drückst Knöpfchen; ich weiß nicht, wieviel Zeit man dafür hat, ich vermute aber mal die obligatorische Minute. Dann wieder zurück zum Rechner, wo du die Webseite mit dem API-Client noch offen hast, und dann drückst du erneut auf POST – und schickst ihm somit genau den gleichen Input wie zuvor noch einmal. Wenn du schnell genug warst, erhältst du nun einen Usernamen:

[
  {
    "success": {
      "username": "JDdI-qoUx0Iw14saJWou2LTqe6BqaEYkGORw608A"
    }
  }
]

Mit Hilfe dieses Users kannst du nun konkrete Abfragen formulieren – so zum Beispiel alle Beleuchtungsszenen aufgreifen, die du in der Hue Bridge hinterlegt hast. Der Aufruf kann zum Beispiel erfolgen, indem du http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/irgendwas/ als Adresse in den Browser tütest, für die Szenen also http://ip.deiner-hue-brid.ge/api/JDdI-qoUx0Iw14saJWou2LTqe6BqaEYkGORw608A/scenes/

[...]
"UbN-wv6nVsgy0vJ":{"name":"Gedimmt","lights":\["9","10","11"\],"owner":"2EukPX-x9npIqQHFdGDDIZb-Q5vrSigowGRAaI25","recycle":false,"locked":false,"appdata":{"version":1,"data":"L57TV\_r02\_d06"},"picture":"","lastupdated":"2019-01-07T21:59:39","version":2},
"ZQ3aaKyroKC-Vkg":{"name":"Nachtlicht","lights":\["9","10","11"\],"owner":"2EukPX-x9npIqQHFdGDDIZb-Q5vrSigowGRAaI25","recycle":false,"locked":false,"appdata":{"version":1,"data":"lvKsn\_r02\_d07"},"picture":"","lastupdated":"2019-01-07T21:59:39","version":2},
"NLTt-7q8iTtsQft":{"name":"Nordlichter","lights":\["9","10","11"\],"owner":"2EukPX-x9npIqQHFdGDDIZb-Q5vrSigowGRAaI25","recycle":false,"locked":false,"appdata":{"version":1,"data":"ibYuv\_r02\_d17"},"picture":"","lastupdated":"2019-01-07T21:59:40","version":2},
"hbYqzM5seuY0h3s":{"name":"Tropendämmerung","lights":\["9","10","11"\],"owner":"2EukPX-x9npIqQHFdGDDIZb-Q5vrSigowGRAaI25","recycle":false,"locked":false,"appdata":{"version":1,"data":"5mp3V\_r02\_d16"},"picture":"","lastupdated":"2019-01-07T21:59:40","version":2},
"hpjngDa9yuPR1F8":{"name":"Frühlingsblüten","lights":\["9","10","11"\],"owner":"2EukPX-x9npIqQHFdGDDIZb-Q5vrSigowGRAaI25","recycle":false,"locked":false,"appdata":{"version":1,"data":"aUeYL\_r02\_d18"},"picture":"","lastupdated":"2019-01-07T21:59:41","version":2},
"Yw1PqChqgHf3y-7":{"name":"Unterwasser","lights":\["9","10","11"\],"owner":"2EukPX-x9npIqQHFdGDDIZb-Q5vrSigowGRAaI25","recycle":false,"locked":false,"appdata":{"version":1,"data":"VifwM\_r02"},"picture":"","lastupdated":"2019-01-07T22:27:46","version":2}
[...]

Damit lässt sich dann zum Beispiel in Home Assistant sehr schön arbeiten – hier mal ein hübsches kleines input_select:

input_select:
  szenenbeleuchtung:
    name: "Szenenbeleuchtung"
    options:
      - Gedimmt
      - Nachtlicht
      - Nordlichter
      - Tropendämmerung
      - Frühlingsblüten
      - Unterwasser
    initial: 'Tropendämmerung'
    icon: mdi:palette

Hue Bridge API Hue Bridge API

Aber natürlich lassen sich auch viele weitere Informationen auslesen:

  • http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/config/: Informationen zur Konfiguration der Bridge
  • http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/lights/: die einzelnen Leuchtmittel
  • http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/lights/12/: wenn man die Übersicht ein wenig behalten will, lässt sich so beispielsweise die Information zu Leuchtmittel Nr. 12 abrufen.
{"state":{"on":true,"bri":254,"hue":59904,"sat":41,"effect":"none","xy":\[0.3402,0.3157\],"ct":367,"alert":"none","colormode":"ct","reachable":true},"type":"Extended color light","name":"Lichtband Lesezimmer","modelid":"LIGHTIFY Indoor Flex RGBW","manufacturername":"OSRAM","uniqueid":"7c:b0:3e:aa:00:a9:e8:0b-03","swversion":"V1.04.90"}
  • http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/sensors/: die verschiedenen Sensoren
  • http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/rules/: Regelwerke – in meinem Fall ist das leer
  • http://ip.deiner-hue-brid.ge/api/<$DEIN\_USERNAME>/schedules/: auch das ist bei mir leer, weil es über das Smart Home-Setup abgefackelt wird

Und nur der Vollständigkeit halber: natürlich lassen sich auf diesem Wege auch Werte manipulieren. Sendest du mittels PUT den Message Body { "on": true, "bri": 13 } konkret an /lights/12/state, so wirst du erfreut feststellen, dass sich die Helligkeit der Lampe mit ID 12 entsprechend einstellt. Ich weiß nicht, wie es euch geht – aber mir erleichtert das die Arbeit mit den Systemen schon sehr. Wobei – inzwischen werde ich den Hue-Bridges ja mit einem Gateway Marke Eigenbau untreu… Zu gegebener Zeit muss ich davon unbedingt mal erzählen.

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Vereistes Blatt auf dem Weg zum Parkplatz, 2020, 1500x 1000px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „Hue-Bridge-Zauber“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.