NEWS
[gelöst] Philips-Hue Farbe über Deconz und Yahka einstellen
-
Hallo zusammen,
ich habe einen Server aufgebaut, der primär auf die Adapter IoBroker.deConz (0.2.5) und IoBroker.Yahka (0.8.2) setzt. Das meiste habe ich hin bekommen, allerdings habe ich aktuell noch keine wirkliche Lösung gefunden wie ich über HomeKit die Farbe einer Philips Hue Lampe stabil steuern kann.
Was ich bisher heraus gefunden habe:
-
Yahka setzt Hue (0 - 360), Saturation (0-100 bzw. 0-255 bei level255 Conversion) und brightness (auch 0-100/0-255) bzw. ColorTemperature (ca. 140 - 500)
-
deConz erzeugt die States bri (für Brightness), ct (für Farbtemperatur), hue und sat, sowie xy (vermutlich CIE xyY Farbraum Koordinaten)
Die Farbtemperatur wird entsprechend angepasst (ct wert scheinbar passend zu dem vom Yahka) wenn in der Phoscon App die Farbtemperatur verstellt wird. Wenn ich aber über das Phoscon Web Interface die Farbe einstelle, dann bleiben die Werte für hue (8541) und sat (254) stabil, einzig der Datenpunkt xy (der als Rolle Color.CIE definiert bekommen hat) verändert sich.
Wenn ich manuell Hue oder Sat verändere werden die Werte von deConz wieder zurück gesetzt sobald ich eine Einstellung in der Phoscon App vornehme.
Ich habe schon relativ tief im Forum gegraben, aber bisher noch keinen Weg gefunden, wie hier eine Saubere Verbindung der Datenpunkte hin bekomme.
Mit den verschiedenen Farbraummodellen kenne ich mich nicht gut genug aus.
Ich habe versucht aus hue und sat die RGB Werte zu berechnen, ohne damit erfolg zu haben. Der Ansatz, hue, sat und bri als "hsv" Farbraum zu interpretieren hat zumindest in so weit funktioniert das ich saubere RGB Werte bekomme. Allerdings passen die XYZ werde die ich berechnet bekomme nicht zu den xy werten die bei Phoscon heraus bekommen. Anscheinend habe ich da nicht den korrekten Farbraum als Ziel für die Umrechnung gewählt.
Damit kann ich über HomeKit die Farbe aktuell nicht einstellen, was ich aber gerne hin bekommen würde.
Kann mir da jemand einen Tipp geben wie ich da weiter komme ?
Im voraus schon einmal vielen Dank.
A.
-
-
Ich hab mich mit dem Thema Farbsteuerung der Hue Lampen nicht besonders Lang auseinander gesetzt.
Mir ging es genau wie dir, es lies sich nichts vernünftiges einstellen.
Ich hab dann am Ende einfach die eine Farbe die ich haben wollte eingestellt, damals noch WebApp, die Einstellungen aufgeschrieben und setze die Entsprechenden werte wenn ich sie brauche. Hab aber auch nur einen RGB Stripe.
Der Ansatz, hue, sat und bri als "hsv" Farbraum zu interpretieren ` ist richtig.
Yahka setzt Hue (0 - 360) ` Die deConz API gibt hier einen Wert 0-65535 aus. Du musst als den Wert von deConz in ° Umrechnen und dann passt das. Wusste ich bis gerade auch ich nicht.
-
@Jey Cee:…[SNIP]
@Asgothian:Yahka setzt Hue (0 - 360)
Die deConz API gibt hier einen Wert 0-65535 aus. Du musst als den Wert von deConz in ° Umrechnen und dann passt das. Wusste ich bis gerade auch ich nicht.
Danke fuer die Hinweise.Die Umrechnung ist soweit klar, allerdings veraendert der deConz Adapter die Werte in den Objekten nicht - unabhaengig von den Eingestellten Farbwerten wird fuer hue und sat immer der identische Wert in den Objekten abgelegt. Ist das normal ?
Gibt es eine einfache Moeglichkeit nach zu schauen was die deConz API an den Adapter liefert, um da ggf. einhaken zu koennen ?
Prinzipiell waere es mir am liebsten wenn ich nicht selber mit einer Umrechnung basteln muss.
A.
-
Verändert sich die Farbe der Lampe wenn du die Werte in hue und sat eingibst?
Gesendet von meinem HTC U11 mit Tapatalk
-
Soweit ich das erinnere ändert sich die Farbe der Lampe nicht - das muss ich heute Abend aber noch einmal verifizieren.
A.
-
Soweit ich das erinnere ändert sich die Farbe der Lampe nicht - das muss ich heute Abend aber noch einmal verifizieren. ` Mach das mal bitte.
Bei mir ändert sich nur die Anzeige der Werte nicht, aber die Farbe des Stripes schon, da wird nur die Anzeige im Admin irgendwie nicht aktualisiert.
-
@Jey Cee:Bei mir ändert sich nur die Anzeige der Werte nicht, aber die Farbe des Stripes schon, da wird nur die Anzeige im Admin irgendwie nicht aktualisiert. `
Nachdem ich noch einmal geschaut habe muss ich die vorherige Aussage korrigieren. Die Farbe lässt sich über hue, sat und ct einstellen. Allerdings muss man die Werte irgendwo zwischen Puffern, da die extern eingestellten Werte seitens des deConz Adapters nicht beibehalten werden, sondern nach einer mir bisher nicht eingängigen Logik auf andere Werte eingestellt werden. Dabei scheint es so das man den Wert bei sat und hue der in den Objekten beibehalten wird dadurch beeinflussen kann das man im Phoscon die Farbtemperatur verstellt. Das macht das Einstellen über ein Vis Control oder HomeKit unhandlich.Dem würde ich dann doch gerne noch einmal genauer nach gehen bevor ich mit dem Holzhammer (scripte mit gepufferten Werten die dann an die entsprechenden Stellen kopiert werden) weiter mache. Gibt es eine einfache Möglichkeit die Kommunikation zwischen dem ioBroker Adapter und der deconz rest api mitzuloggen ?
A.
-
Ja du kannst das Loglevel für den Adapter auf Debug stellen, dann siehst du alle Nachrichten.
Gesendet von meinem HTC U11 mit Tapatalk
-
Danke. Damit kann ich zumindest sicher sagen das ein Teil des Problems auf der deConz Seite liegt.
Alle Tests habe ich mit deConz 2.5.54, api 1.16.0 sowie ioBroker.deconz 0.2.5 durchgeführt.
Es scheint so zu sein das man zwar die Werte für hue und sat setzen kann (die rest API beantwortet das setLightState mit "success" und dem neu gesetzten Wert), setzt die Farbe intern offensichtlich auch um, setzt aber dann die internen Werten anscheinend nicht nach. Es gibt keinen Event "value changed" wie wenn bri oder ct verändert werden, und das getLightState beinhaltet immer noch die vorherigen Werte für hue und sat.
Interessanterweise werden die Werte für hue und sat durchaus per Event "value changed" angepasst, aber nur wenn ct geaendert wird. Damit erklären sich auch die seltsamen Voreinstellungen für hue und sat
Bei meinen Versuchen ist es mir leider nicht gelungen, den wert für xy zu modifizieren. Anscheinend erwartet die rest API ein Array, bekommt aber vom deconz adapter einen String geliefert, was zu einer "Bad Request" Antwort führt. Um das entsprechend weiter zu verfolgen wäre der nächste Schritt ein issue auf GitHub zu öffnen ?
-
Ja, erstell ein issue auf Github.
Gesendet von meinem HTC U11 mit Tapatalk
-
Mach ich heute abend wenn ich zugang zu den Logdaten habe.
-
Hallo,
Ich würde mich gerne an dieser Diskussion beteiligen, weil ich das gleiche Problem habe. Ich hatte meine Frage aber leider im VIS Forum gepostet, wo sie wahrscheinlich keinen Sinn gemacht hat.
Wenn die Steuerung über die XY Werte möglich ist, wäre das toll.
Für das VIS Hue Color Widget ist allerdings "Command" notwendig, sonst funktioniert das Widget nicht. Alternativ wäre auch eine Steuerung über RGB Werte toll, der HUE Adapter rechnet hierfür die RGB Werte in XY um (siehe Helper Funktion https://github.com/ioBroker/ioBroker.hu … eHelper.js)
Über command versucht das Widget folgende Werte zu setzen:
{"transitiontime":4,"xy":"0.43434343434343436,0.96","level":100}
-
Hallo,
Ich würde mich gerne an dieser Diskussion beteiligen, weil ich das gleiche Problem habe. Ich hatte meine Frage aber leider im VIS Forum gepostet, wo sie wahrscheinlich keinen Sinn gemacht hat.
Wenn die Steuerung über die XY Werte möglich ist, wäre das toll.
Für das VIS Hue Color Widget ist allerdings "Command" notwendig, sonst funktioniert das Widget nicht. Alternativ wäre auch eine Steuerung über RGB Werte toll, der HUE Adapter rechnet hierfür die RGB Werte in XY um (siehe Helper Funktion https://github.com/ioBroker/ioBroker.hu … eHelper.js)
Über command versucht das Widget folgende Werte zu setzen:
{"transitiontime":4,"xy":"0.43434343434343436,0.96","level":100} `
Ich gehe davon aus das Du (sofern wir die Steuerung über xy hin bekommen, was nicht garantiert ist) den "command" Datenpunkt nicht unbedingt brauchst. Falls doch, dann müsstest Du ein Script erzeugen, das den String im Command parsed, und dann im deconz die entsprechenden Datenpunkte setzt.
Bei deinem Beispiel oben wären das "bri" für "level", allerdings umskaliert auf 0-255, nicht 0-100,"transitiontime" und "xy". Mit den vis Color widgets kenne ich mich nicht aus.
Ein Hinzufügen eines "command" Datenpunktes als "Sammelstelle" für verschiedene Werte halte ich für nur bedingt sinnvoll.
A.
-
Ich habe das selbe Problem.
Versuche jetzt schon seit Stunden irgendwie im vis meinen Hue- Lampen bestimmte Farbeinstellungen zu verpassen und es funktioniert weder mit dem color- picker widgets noch indem ich die xy-Werte bestimmer Farben einfach rauskopiere und sie via Set value- Button überschreibe. Dann bekomm ich ein Code 400: Bad request.
! deconz.0 2019-01-08 21:15:29.764 warn Set light state with ID: 7 parameter: {"xy": "0.313868,0.0851269"} Code 400: Bad request
! deconz.0 2019-01-08 21:15:29.764 info options: {"url":"http://192.xxx.xx.xx:xx/api/A66BAZ3583/lights/7/state","method":"PUT","headers":"Content-Type" : "application/json","body":"{"xy": "0.313868,0.0851269"}"}
! deconz.0 2019-01-08 21:15:29.756 info setLightState: {"xy": "0.313868,0.0851269"} 7 deconz.0.Light_7.xyGibt es da noch einen anderen workaround? Ist ja schon eine ziemlich elementare Funktion die Lichtfarbe einstellen zu können
-
Ich habe das Problem mit dem xy Datenpunkt gefixt. Ihr müsst den Adapter von github installieren. Achtung: Ihr seid dann Tester.
Gesendet von meinem HTC U11 mit Tapatalk
-
@Jey Cee:Ich habe das Problem mit dem xy Datenpunkt gefixt. Ihr müsst den Adapter von github installieren. Achtung: Ihr seid dann Tester.
Gesendet von meinem HTC U11 mit Tapatalk `
Letzte Tests - erfolgreich. Bei mir geht es.
Danke für die schnelle Umsetzung.
A
-
Jup, xy funktioniert jetzt bei mir auch, Vielen dank für den schnelle Lösung!
-
Steuert ihr die Farbeinstellung über ein vorhandes VIS Widget oder macht ihr das manuell?
-
Ich steuere das über Farbflächen, die bei Klick den entsprechenden Xy-wert überschreiben. Für mehrere Lampen gleichzeitig erstelle ich eine Szene mit mehreren XY-Datenpunkten von Den gewünschten Lampen.
Geil wäre natürlich, wenn man statt fixer Gruppierungen vorher Per Checkbox oder so auswählen könnte, welche Lampen man gerade steuern will.
So könnte man sich binnen Sekunden stimmungsvolle Szenen über die VIS zusammenklicken.
Doch dafür fehlt mir momentan das know-How.
Das find ich mittlerweile sogar sinnvoller als Color-Picker, geht schneller und mehr als 8 Farben macht eh kaum Sinn.
-
Danke dann werde ich das auch mal versuchen. Manchmal ist ein Color Picker trotzdem ganz nett.
Wenn ich mal wieder etwas mehr Zeit hab, werd ich mir die Widgets nochmal anschauen. Wenn jemand neue Erkenntnisse hat, gerne noch mehr.
Ansonsten vielen Dank fürs fixen der XY Werte.