NEWS
Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich
-
@DerS sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Kann mir da jemand einen Tipp geben?
Vor dem Tipp kommen ein paar Fragen:
- welche Datenpunkte benutzt der vis colorpicker um bei der Tradfri Lampe die Farbe zu ändern ?
- welche Datenpunkte der Tradfri Lampe sind wie mit Yahka verbunden ?
- was passiert wenn du die Werte in den Datenpunkten manuell anpasst ?
A.
-
Hallo,
der VIS Colorpicker nutzt zweimal den XY und den sat State, hab hier im Forum eine Anleitung gefunden diesen Abzuändern für die HUE Leuchten.
Für den Yahka Adapter nutze ich bri, hue und sat.
Dein Tip mit den Datenpunkten manuell anzupassen hat neues gebracht. Ich glaube da ist ein Bug irgendwo... Die Hue kann ich manuell sowohl über den hue und als auch den xy State steuern. Die Tradfri reagiert nur bei Änderung des xy State, wenn der hue State geändert wird ändert sich zwar die xy im Feld, wird aber offenbar nicht bestätigt. Wenn ich dann das Feld XY anklicke und einfach mit der Entertaste den Wert bestägige dann ändert sich die Farbe... -
@DerS
Damit ist das ein Bug in der deconz software - nicht im iobroker - du müsstest also einen issue auf GitHub für die deconz software anlegen.A.
-
@DerS
Noch eine Frage dazu - musst du wirklich nur den XY Wert aktualisieren damit die Farbe gesetzt wird ? Wenn ja, dann gibt es eine recht einfache Möglichkeit den Fehler im deconz aktuell zu umschiffen :Du setzt einen trigger der auf Änderungen von hue / sat der Lampe reagiert, und aktualisierst dann den xy wert der Lampe.
A.
-
@Asgothian
Super, das funktioniert!!Ohne den Timeout gibt es eine Menge häßlicher Logeinträge.
-
Das Skript funktioniert zwar, aber irgendwas scheint mit der Umkonvertierung des Sat State auch nicht zu stimmen. Die Farben sind recht blaß. Eine Änderung von sat wird offenbar in XY nicht berücksichtigt.
edit:
Das nehme ich wieder zurück, war mein Fehler. Hab vor lauter hin und her die sat Range auf 100 stehen gehabt in Yahka. -
@DerS
Ich stehe vor fast dem gleichen Problem. Ich hab auch eine Tradfri RGB über den Zigbee Adapter drin.
Mit brightness kann ich normal Dimmen. Mit color kann ich mittel rgb die Farben ändern.
Egal was ich in colortemp rein schreibe, verändert sich an der Lampe nichts. Ist das normal bzw. bei dir auch so das die Lampe darauf nicht reagiert?
In Yaha hab ich bisher das angegeben:
Ein/Aus und dimmen geht.
Wenn ich den color Datenpunkt unter Hue angebe, wird in der Homekit App keine Farbauswahl angegeben. Wenn ich den unter Saturation angebe habe ich in der Homekit App die Farbauswahl und in den Datenpunkt wird auch was geschrieben. Jedoch nur Werte von 0-100. Damit kann die Lampe nichts anfangen, weil ja rgb codes benötigt werden.
Wie bekomme ich das hin? Kann ich die irgendwie umrechnen oder so?CC: @Asgothian (weil du dich damit anscheinend gut auskennst. In den anderen Threads zum Thema rgb und Yahka konntsr du immer helfen )
EDIT: Inzwischen habe ich den Adapter auf 0.9.2 upgedated.
Hab nun unter "Conversation" jede Auswahl (hue, level255 usw.) für den Datenpunkt color und colortemp getestet, leider ohne Erfolg. Im Log taucht auch ab und zu das auf:zigbee.0 2019-09-21 17:41:54.771 error No converter available for 'LED1624G9' with key 'colortemp'
EDIT2: Hier im Forum und auf GitHub gibt es ein Issue, dass die color temp. bei der Leuchte nicht funktioniert. Somit fällt das Problem vorerst schon mal weg.
Jetzt muss also nur noch geschafft werden, die Werte die Homekit liefert, in rgb codes umzuwandeln oder sehe ich das falsch? -
@el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Issue
Das Problem mit der Farbtemperatur lässt sich nicht so ohne weiteres lösen. Lt. der aktuellen Version des Zigbee-Shepherds ist die Einstellung der Farbtemperatur unterstützt, aber die Fehlermeldung deutet darauf hin das das nicht so ohne weiteres geht. Um da etwas zu tun bräuchte ich eine Lampe.
Zum Thema RGB sieht es besser aus. Ich nutze selber dazu die Bibliothek color-convert (von Qix- auf GitHub). Yahka unterstützt bei der Farbe nur das HSL Modell, der Datenpunkt bei der Ikea Lampe ist RGB als Hex wert wie im Web (rrggbb). Der da zu nutzende Weg ist einfach: Du brauchst 2 Datenpunkte (hue, saturation ), die du mit einen Script und der color-convert Bibliothek dazu benutzt die RGB codes zu berechnen. der 3. Datenpunkt im HSL Farbmodell ist brightness, wobei du darauf achten musst das das HSL Farbmodel folgende Wertebereich benötigt:
- hue: 0..360
- sat: 0..100
- lightness: 0..100
Falls der Datenpunkt "brightness" zwischen 0 und 255 angesteuert wird musst du den bei der Verwendung im Script entsprechend anpassen.
A.
-
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
@el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Issue
Das Problem mit der Farbtemperatur lässt sich nicht so ohne weiteres lösen. Lt. der aktuellen Version des Zigbee-Shepherds ist die Einstellung der Farbtemperatur unterstützt, aber die Fehlermeldung deutet darauf hin das das nicht so ohne weiteres geht. Um da etwas zu tun bräuchte ich eine Lampe.
Hmm, der User im Foum hat ja geschriben, dass es mit einer älteren Version ml funktioniert hat.
PS: Mit einer alten Version hat es schon mal funktioniert, allerdings hat da die RGB Farbe nicht funktioniert.
Zum Thema RGB sieht es besser aus. Ich nutze selber dazu die Bibliothek color-convert (von Qix- auf GitHub). Yahka unterstützt bei der Farbe nur das HSL Modell, der Datenpunkt bei der Ikea Lampe ist RGB als Hex wert wie im Web (rrggbb). Der da zu nutzende Weg ist einfach: Du brauchst 2 Datenpunkte (hue, saturation ), die du mit einen Script und der color-convert Bibliothek dazu benutzt die RGB codes zu berechnen. der 3. Datenpunkt im HSL Farbmodell ist brightness, wobei du darauf achten musst das das HSL Farbmodel folgende Wertebereich benötigt:
- hue: 0..360
- sat: 0..100
- lightness: 0..00
Falls der Datenpunkt "brightness" zwischen 0 und 255 angesteuert wird musst du den bei der Verwendung im Script entsprechend anpassen.
A.
Kannst du mir da mit dem JS Skript helfen? Ich kann leider nur Blockly.
-
@el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
@el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Issue
Das Problem mit der Farbtemperatur lässt sich nicht so ohne weiteres lösen. Lt. der aktuellen Version des Zigbee-Shepherds ist die Einstellung der Farbtemperatur unterstützt, aber die Fehlermeldung deutet darauf hin das das nicht so ohne weiteres geht. Um da etwas zu tun bräuchte ich eine Lampe.
Hmm, der User im Foum hat ja geschriben, dass es mit einer älteren Version ml funktioniert hat.
PS: Mit einer alten Version hat es schon mal funktioniert, allerdings hat da die RGB Farbe nicht funktioniert.
Das Problem ist das nicht mehr heraus zu bekommen ist mit welcher Version des Adapters bzw. des Zigbee-Shepherd das mal funktioniert hat. Und ohne eine Möglichkeit das zu testen mag ich da nicht dran Gehen.
Zum Thema RGB sieht es besser aus. Ich nutze selber dazu die Bibliothek color-convert (von Qix- auf GitHub). Yahka unterstützt bei der Farbe nur das HSL Modell, der Datenpunkt bei der Ikea Lampe ist RGB als Hex wert wie im Web (rrggbb). Der da zu nutzende Weg ist einfach: Du brauchst 2 Datenpunkte (hue, saturation ), die du mit einen Script und der color-convert Bibliothek dazu benutzt die RGB codes zu berechnen. der 3. Datenpunkt im HSL Farbmodell ist brightness, wobei du darauf achten musst das das HSL Farbmodel folgende Wertebereich benötigt:
- hue: 0..360
- sat: 0..100
- lightness: 0..100
Falls der Datenpunkt "brightness" zwischen 0 und 255 angesteuert wird musst du den bei der Verwendung im Script entsprechend anpassen.
A.
Kannst du mir da mit dem JS Skript helfen? Ich kann leider nur Blockly.
Kann ich machen. 1. Frage: ist brightness zwischen 0 und 255 nutzbar oder zwischen 0 und 100 ?
Ansonsten musst du zunächst folgendes Tun :
im JS adapter die Funktion für color-convert hinzufügen :
(Da wo bei mir Add Module steht einfach "color-convert" eintragen)
Dann musst du dir 2 Datenpunkte anlegen. Ich mache so etwas immer unter javascript.0
Für das Beispiel unten sind das javascript.0.farbumsetzung.hue und javascript.0.farbumsetzung.sat.
Diese bindest Du bei Yahka als Datenpunkte für hue und sat ein.
Das Script sollte dann so aussehen:
var cc = require('color-convert'); var valchanged = null; function updateLightColor() { let h = getState('javascript.0.farbumsetzung.sat').val; let s = getState('javascript.0.farbumsetzung.sat').val; let l = getState('lampObject.brightness').val let rgb_numeric = cc.hsl.rgb(h, s*100, l); let rgb_text = cc.rgb.hex(rgb_numeric); setState('LampObj.color', rgb_text); } on ({ id:'javascript.0.farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); }); on ({ id:'javascript.0.farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
Wichtig ist das sich die Farbe nur dann ändert, wenn du hue oder sat veränderst. Wenn du nur mit der Helligkeit spielst bleibt wird der Farb-Wert nicht angepasst - das sollte die Lampe selber tun.
A.
-
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Kann ich machen. 1. Frage: ist brightness zwischen 0 und 255 nutzbar oder zwischen 0 und 100 ?
0-100
Vielen Dank schon mal für die Hilfe.
-
@el_malto Siehe oberer Post - ich hab den einfach editiert nachdem ich die Frage gestellt hatte.
-
@Asgothian habe dein Skript mal ausprobier. Klappt leider nicht ganz. Den ersten Farbwechsel macht die Lampe, der ist aber von der Farbe falsch. Danach macht die Lampe nichts mehr.
var cc = require('color-convert'); var valchanged = null; function updateLightColor() { let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val; let s = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val; let l = getState('zigbee.0.14b457fffe43566d.brightness').val let rgb_numeric = cc.hsl.rgb(h, s*100, l); let rgb_text = cc.rgb.hex(rgb_numeric); setState('zigbee.0.14b457fffe43566d.color', rgb_text); } on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); }); on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
Ist das richtig, dass in Zeile 6 und 7 immer der „hue“ Datenpunkt stehen muss? Hatte das schon mal getauscht mit „sat“, hat aber auch nicht funktioniert.
Muss ich bei „Conversation“ noch was angeben? -
@el_malto Ja, das ist ein Tippfehler. Eine Umrechnung brauchst du nicht - der Wertebereich ist 0-100.
Was genau hat nicht funktioniert, i.e. was war das Ergebnis in den Objekten ? i.e. Was fuer einen Hex wert liefert die Funktion an die Lampe ?
A.
-
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
@el_malto Ja, das ist ein Tippfehler. Eine Umrechnung brauchst du nicht - der Wertebereich ist 0-100.
Wie muss es denn richtig heißen?
Was genau hat nicht funktioniert, i.e. was war das Ergebnis in den Objekten ?
i.e. Was fuer einen Hex wert liefert die Funktion an die Lampe ?
A.Die neu angelegten Datenpunkte ändern sich immer wenn ich ein Farbe einstelle.
Der color Datepunkt ändert sich meistens nur nachdem ich die Lampe eingeschaltet habe und einen ersten Farbwechsel mache (aber dann auch mit einer falschen Farbe). Danach ändert sich der Datenpunkt nicht mehr. Die hue und sat Datenpunkte ändern sich aber immer.
-
@el_malto schalte mal bitte das Script ab und prüfe in welchem Wertebereich der yahka Adapter den hue Wert anpasst. Soll ist 0-360. Wenn da andere Werte stehen musst du den h Wert im Script so umrechnen zwischen 0 und 360 bleibt.
I’m detail kann ich da erst heute Abend ran.
A.
-
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
@el_malto schalte mal bitte das Script ab und prüfe in welchem Wertebereich der yahka Adapter den hue Wert anpasst. Soll ist 0-360. Wenn da andere Werte stehen musst du den h Wert im Script so umrechnen zwischen 0 und 360 bleibt.
Das passt. Wenn ich am "farbigen Rad" in der Homekit App "drehe" gehen die Werte von 0-360.
@el_malto Ja, das ist ein Tippfehler. Eine Umrechnung brauchst du nicht - der Wertebereich ist 0-100.
Wie muss es denn richtig heißen?
Könntest du das nochmal beantworten?
-
let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
Wird zu
let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
A.
-
@el_malto sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Die neu angelegten Datenpunkte ändern sich immer wenn ich ein Farbe einstelle.
Der color Datepunkt ändert sich meistens nur nachdem ich die Lampe eingeschaltetWenn hue 0-360 ist, wie ist dann der oben stehende Screenshot entstanden ?
A.
-
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val;
Wird zu
let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val;
Erledigt.
@Asgothian sagte in Tradfri RGB über deconz und Yahka, Farbwahl nicht möglich:
Wenn hue 0-360 ist, wie ist dann der oben stehende Screenshot entstanden ?
Das frage ich mich auch gerade. Kann es so jetzt nicht mehr reprodzieren. Jetzt passt es auf jeden fall.
Hier noch mal das aktuelle Skript.var cc = require('color-convert'); var valchanged = null; function updateLightColor() { let h = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue').val; let s = getState('javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat').val; let l = getState('zigbee.0.14b457fffe43566d.brightness').val let rgb_numeric = cc.hsl.rgb(h, s*100, l); let rgb_text = cc.rgb.hex(rgb_numeric); setState('zigbee.0.14b457fffe43566d.color', rgb_text); } on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.sat', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); }); on ({ id:'javascript.0.meineDatenpunkte.DL_SZ_farbumsetzung.hue', change:'ne'}, function() {if (!valchanged) valchanged = setTimeout( updateLightColor, 100); });
Jetzt stellt stellt sich nur noch die Frage, warum das Skript den color Datenpunkt nicht aktualisiert wenn man die Farbe ändert...