NEWS
hue-Adapter mit diyhue nutzen?
-
Hi!
Ich nutze diyhue zur Steuerung meiner Lampen und würde es gerne in iobroker integrieren. Der hue-Adapter erkennt die Bridge, allerdings wird der Benutzer nicht angenommen. Ich hatte hier testweise einen Benutzer aus der config-Datei von diyhue eingetragen, es kommt beim Erstellen aber immer die Meldung "Zeitüberschreitung der Anforderung". Den Link-Button hatte ich vorher natürlich gedrückt.
Nutzt das zufällig jemand in der Konstellation und kann helfen? -
@schubi82 ChatGPT-Vorschlag
diyHue verwaltet Benutzer in der Datei config.json im Bereich whitelist.
Beispiel:
"whitelist": { "meinbenutzer123": { "name": "ioBroker", "create date": "2025-05-06T10:00:00", "last use date": "2025-05-06T10:00:00" } }
Datei config.json auf der diyHue-Bridge bearbeiten (z. B. über SSH oder Docker-Volume)
Eigenen Benutzernamen eintragen (z. B. meinbenutzer123)
diyHue neu starten
Im ioBroker Hue-Adapter diesen Benutzernamen eintragen
Keinen neuen Benutzer erzeugen, sondern direkt mit diesem verbinden
-
@mcu Danke für Deine Antwort. In diyhue gibt es unter /opt/hue-emulator/config die config anscheinend nur als config.yaml, welche ich wie folgt durch den unteren Eintrag ergänzt habe:
41870de6e71a11ef9638fae9a63f7358: name: Echo client_key: null create_date: '2025-02-06T18:33:49' last_use_date: '2025-05-07T16:02:59' iobroker: name: iobroker client_key: null create_date: '2025-05-07T14:33:49' last_use_date: '2025-05-07T16:02:59'
Leider ist der Eintrag nach dem Neustart von diyhue wieder verschwunden und der Adapter kann sich somit auch nicht mit dem Benutzer verbinden
Ich hatte es stattdessen auch einmal mit dem Benutzer darüber versucht, geht aber auch nicht. -
@schubi82
diyHue-Webinterface ist erreichbar unter?
http://192.168.1.100
Testen der APIcurl http://<bridge-ip>/api/config
-> JSON als Antwort
User anlegen per API
curl -X PUT http://192.168.1.100/api/config -d '{"linkbutton": true}'
innerhalb von 30 Sekunden
curl -X POST http://192.168.1.100/api -d '{"devicetype":"iobroker#hue"}'
Ergebnis
[ { "success": { "username": "abc123xyz456..." } } ]
Neue hue-Instanz
-
IP-Adresse der diyHue-Bridge (z. B. 192.168.1.100)
-
Benutzername: Der eben erzeugte Token (z. B. abc123xyz456)
-
Port: Standard ist 80 (es sei denn, du hast diyHue geändert)
-
HTTPS deaktivieren, wenn diyHue kein HTTPS nutzt
-
-
@mcu Vielen Dank, so hat's geklappt!
Den Befehl hat er zwar nicht angenommen, hab dann aber einfach den Link-Button im Webinterface gedrückt:root@diyhue:/# curl -X PUT http://192.168.178.95/api/config -d '{"linkbutton": true}' {"message": "The method is not allowed for the requested URL."}
Egal, Hauptsache läuft! Nochmal besten Dank und einen schönen Abend!
-
@schubi82 Erkläre bitte für andere, die es brauchen, was du genau gemacht hast.
-
@mcu Eigentlich hast Du es schon ganz gut erklärt, aber ich schreibe es noch etwas detaillierter:
- mit Putty in diyhue einloggen
- curl http://IP_VOM_DIYHUE_WEBINTERFACE/api/config
- Link button im diyhue-Webinterface drücken
- curl -X POST http://192.168.178.95/api -d '{"devicetype":"iobroker#hue"}'
- ausgegebenen Usernamen in Klammern kopieren (z.B. [{"success": {"username": "f43573fe236911f09adef424a63f7358"}}] )
- in der frischen iobroker-Instanz falls nötig die IP von diyhue eingeben und ggf. Port auf 80 anpassen (war bei mir 443, also SSL)
- Haken unten bei SSL raus
- kopierten Benutzer bei "Bridge Benutzer" einfügen
- speichern
- that's it!
-
@schubi82 Ich hatte vermutlich ein ähnliches Problem.
Die Bridge wird mit korrekter Adresse angezeigt, nach einem Buttonpress an der Bridge und einem Klick auf "Erstelle Benutzer" wird zwar ein OK angezeigt, aber kein neuer Benutzer eingetragen. Nach einiger Recherche habe ich eine Lösung gefunden.Wenn man das o.g. Procedere durchführt und dann mal in das ioBroker LOG schaut, wird dort der Wert für einen neuen Bridge Benutzer angezeigt. Ich habe mit Copy und Paste diesen Wert im Hue Adapter eingetragen. Anscheinend ein Bug im Adapter, der diesen Wert nicht korrekt übernimmt.
Vielleicht klappt dies ja auch mit diyHue - das nutze ich nicht.