NEWS
CIE Colorpicker
-
Hey und guten Morgen Community,
ich arbeite mich seit ein paar Wochen in Iobroker ein und bin regelrecht begeistert.
Jedoch komme ich bei einem Problem vorne und hinten nicht weiter.
Ich erläutere euch kurz den Aufbau:
-Raspberry Pi 2 mit Raspbee Aufsteckmodul
-Deconz Software von Dresden-Elektronik
-IobrokerProblem:
Der Deconz Adapter nimmt nur Farben im CIE Format. Also "[x, y]" für die Farben in einem Koordinatensystem.
Die Iobroker Colorpicker haben mir bisher keinen Erfolg gebracht. Hat jemand das selbe Problem und eine Lösung.Die Threads hier im Forum brachten bisher leider keinen Erfolg.
Würde mich freuen was von euch zu hören
Mit freundlichen Grüßen
Curyhoden
-
@curryhoden sagte in CIE Colopicker:
Problem:
Der Deconz Adapter nimmt nur Farben im CIE Format. Also "[x, y]" für die Farben in einem Koordinatensystem.Das ist so nicht ganz richtig. Ab der Version 0.3.1 (in etwa) akzeptiert der deconz Adapter auch hue/sat/Val tripel zur farbsteuerung. Allerdings muss dazu auch die deconz Version passen (xx.59 mindestens)
Ob das bei 1.0.0 des Adapters hochspielt weiß ich nicht, das muss ich mir noch anschauen (Test steht fürs Wochenende an)
A.
-
Ich habe den VIS-colorpicker bereits ausprobiert.
Ich habe dazu Hue/sat/bri (brightness) als Werte im Colorpicker hinterlegt.Dies führte zu einem kurzen zucken der Lampe, aber keinesfalls zur gewünschten Farbe.
Was meinst du genau mit "VAL" als angabe im colorpicker?
War brightness der falsche Eintrag?Als Anhang:
meine Objekte EINER Lampe.
Deconz adapter version: getestet mit 0.31/0.40/1.01
Deconz/Phoscon Version: 2.05.60 / 10.3.2019 -
@curryhoden
Hallo,
bevor du da mit dem Colorpicker dran gehst - hast du versucht ob sich die Farbe anpasst wenn du die Werte im Objektbaum direkt setzt ? (Hue zwischen 0 und 360, sat zwischen 0 und 255, bri zwischen 0 und 255) ?
Wenn das geht, dann ist das Problem auf der Vis Seite.
A.
-
Bri (brightness) funktioniert und dimmt das Licht.
Sat (saturation) funktioniert ebenfalls.
Hue funktioniert allerdings nicht. Keine Zahl (0-360) wird übernommen.
Ich tippe 20 ein und drücke ENTER- Im Objektbaum werden alle Werte der jeweiligen Lampe kurz grün und der Wert steht dort eingetragen.
- Nach einer weiteren Sekunde werden alle Werte erneut grün und die HUE wieder mit 0 ersetzt.
An der Lampe ändert sich nichts!
-
@curryhoden Was fuer eine Lampe hängt da dran ?
-
Müller Licht Tint Reihe. Mehrere E27 / GU10 RGB Lampen.
In Phoscon sowie home assistant klappt die Steuerung.
Der Deconz kann es also (theo.)
-
Hmm.. Das ist nicht gut. Wird der hue wert angepasst wenn du per deconz den Wert änderst, und wenn ja auf welche Werte ?
A.
-
Nein der bleibt konstant auf 0
Egal was ich mache
-
@curryhoden traust du dir zu einmal direkt nachzuschauen was die rest-API an den ioBroker fuer die Lampe sendet ? Das ganze sollte relativ einfach heraus bekommen zu sein.
Hintergrund ist das es bei mir bei den Farblampen die ich habe problemlos geht (sind aber auch alles Hue Lampen)
A.
-
Ich habe mal im Vis-Colorpicker 4-5 mal verschiedene farben eingestellt, während der DeConz Adapter im Debugmode:"silly" war.
Die entsprechende Ausgabe findet ihr im Spoiler.
Hoffe es ist das, wonach ihr gesucht habt.
-
@curryhoden Danke für die Daten. Leider bringt das nicht direkt etwas. Um an die Daten aus dem rest-Api ran zu kommen musst du einen Aufruf direkt an das Phoscon Gateway schicken. Den kann ich dir heute Abend zusammen klöppeln. Allerdings habe ich mir noch ein paar Dinge angeschaut, und bin relativ sicher das der Hue Datenpunkt nicht sauber durchgereicht wird.
Damit sinken die Optionen, allerdings habe ich abseits davon auch einen Vorschlag: Wenn du den "hue" colorpicker nutzt, dann kann kannst du mit einem kleinen Script die notwendigen Werte extrahieren und auf die Lampen setzen.
Dazu musst du:
- den Philips Hue Colorpicker nutzen
- einen Datenpunkt für den Colorpicker anlegen (Ich nutz dazu einen den ich javascript0.color.picker1 genannt habe)
- den Datenpunkt als "Command ID" eintragen
- als "XY ID" und "Level ID" die entsprechenden Datenpunkte der Lampe eintragen
- das Folgende Script wertet den dann aus und setzt die Werte auf der Lampe:
on ({id: "javascript0.color.picker1", change:"ne"}, function(obj) { json_msg = JSON.parse(obj.state.val) setState("lampObject.xy", json_msg.xy) setState("LampObject.bri", json_msg.level * 2.55) });
A.
-
@curryhoden sagte in CIE Colopicker:
Hue funktioniert allerdings nicht. Keine Zahl (0-360) wird übernommen.
Ich tippe 20 ein und drücke ENTERIm Objektbaum werden alle Werte der jeweiligen Lampe kurz grün und der Wert steht dort eingetragen.
Nach einer weiteren Sekunde werden alle Werte erneut grün und die HUE wieder mit 0 ersetzt.An der Lampe ändert sich nichts!
Werte lassen sich nur ändern wenn die Lampe an ist.
Tatsächlich wird der Hue Wert in der Anzeige sofort zurück gesetzt, aber er wird bei mir übertragen. Mir ist nicht klar wo genau das Problem liegt, es sieht so aus als würde nachdem ändern erneut der Alte Wert von deConz gesendet.@curryhoden sagte in CIE Colopicker:
Debugmode:"silly"
Falsch, es muss "debug" sein, dann sieht man im Log welche Nachrichten geschickt werden und die Antwort dazu.
-
Hey guten Morgen, bzw Mahlzeit in die Runde.
@Asgothian
Ich habe gerade mal den gewünschten API Aufruf gemacht. Zuvor habe ich mir natürlich einen API Key erstellt.
zusätzlich habe ich meinen API Key, sowie meine Syntax getestet und kann per API problemlos die Lampe ein/aus schalten.Danach habe ich versucht die "hue" zu setzen.
Im folgenden:
- lasse ich mir den Status der Lampe anzeigen
- Setze ich die hue=100, jedoch kein optischer Unterschied zu erkennen
- Zur Sicherheit setze ich die hue=200 was aber auch keinen optischen effekt auslößt.
- Lasse ich mir zur Sicherheit nochmal den Status der Lampe anzeigen
micha@JVACASPERS:~$ curl -X GET http://192.168.178.123/api/F533967F67/lights/1 {"ctmax":555,"ctmin":153,"etag":"90310e810635735c6cb338793d6e0b7b","hascolor":true,"manufacturername":"MLI","modelid":"ZBT-ExtendedColor","name":"Micha Schreibtisch","state":{"alert":"none","bri":254,"colormode":"ct","ct":384,"effect":"none","hue":0,"on":true,"reachable":true,"sat":209,"xy":[0.468742,0.412009]},"swversion":"2.2","type":"Extended color light","uniqueid":"d0:cf:5e:ff:fe:26:c7:f5-01"} micha@JVACASPERS:~$ curl -d '{"hue":100}' -X PUT http://192.168.178.123/api/F533967F67/lights/1/state [{"success":{"/lights/1/state/hue":100}}] micha@JVACASPERS:~$ curl -d '{"hue":200}' -X PUT http://192.168.178.123/api/F533967F67/lights/1/state [{"success":{"/lights/1/state/hue":200}}] micha@JVACASPERS:~$ curl -X GET http://192.168.178.123/api/F533967F67/lights/1 {"ctmax":555,"ctmin":153,"etag":"9b2575cbcfe4bda0b88c06c37dca8d06","hascolor":true,"manufacturername":"MLI","modelid":"ZBT-ExtendedColor","name":"Micha Schreibtisch","state":{"alert":"none","bri":254,"colormode":"ct","ct":384,"effect":"none","hue":0,"on":true,"reachable":true,"sat":209,"xy":[0.468742,0.412009]},"swversion":"2.2","type":"Extended color light","uniqueid":"d0:cf:5e:ff:fe:26:c7:f5-01"}
@Jey-Cee
Ich habe die Version 1.0.1 installiert. Gerade das logging auf "debug" gestellt. jedoch erzeugt es keine Einträge, wenn ich im Colorpicker etwas drücke.Hier die ca letzten 20 Zeilen. Ich weiß ja wonach ich im Log suchen muss, da ich den API request eben selber erzeugt habe.
Aber glaube mir bitte, da ist keiner. -
@curryhoden
Hallo,im Log ist mir etwas aufgefallen:
die Lampe befindet sich im falschen Farbe-Modus. In den Daten aus der rest-API meldet sie
"state":{"alert":"none","bri":254,"colormode":"ct","ct":384,"effect":"none","hue":0,"on":true,"reachable":true,"sat":209,"xy":[0.468742,0.412009]}
colormode:ct bedeutet das sie nicht auf Farbe (HSV, RGB oder CIE) sondern auf Farbtemperatur eingestellt ist. In diesem Fall wird der Hue wert ignoriert. Es gab dazu schon einmal einen issue am deconz-rest-plugin, allerdings bezogen auf die Philips Hue leuchten.
Stell doch bitte mal den xy wert um, und schau nach ob die Lampe dann den Farbmodus wechselt. Wenn sie das tut, kannst du nochmal versuchen den hue wert anzupassen.
A.
-
@Asgothian
Okay ich habe gerade folgendes gemacht:- Ich habe in den IObroker Objekten den XY Wert verändert (inkl. optischem Feedback der Lampe) und dann eine API abfrage gemacht:
micha@JVACASPERS:~$ curl -X GET http://192.168.178.123/api/F533967F67/lights/1 {"ctmax":555,"ctmin":153,"etag":"3e626f67b2716529e2f3d3ad90b4df70","hascolor":true,"manufacturername":"MLI","modelid":"ZBT-ExtendedColor","name":"Micha Schreibtisch","state":{"alert":"none","bri":254,"colormode":"xy","ct":315,"effect":"none","hue":0,"on":true,"reachable":true,"sat":146,"xy":[0.424872,0.3561]},"swversion":"2.2","type":"Extended color light","uniqueid":"d0:cf:5e:ff:fe:26:c7:f5-01"}
Die Lampe befindet sich nun im colormode:xy
Ich hoffe das ist, was gewünscht war.Danach habe ich im Iobroker Objektbaum versucht, den Wert für hue anzupassen.
Selbes Spiel wie oben beschrieben (grünes aufleuchten der Werte, 1sek warten und der Wert ist wieder 0, optische Veränderungen: NEIN)Also das ganze nochmal per API versucht.
micha@JVACASPERS:~$ curl -X GET http://192.168.178.123/api/F533967F67/lights/1 {"ctmax":555,"ctmin":153,"etag":"a8767303f2c48282aa28c6a52e1db82f","hascolor":true,"manufacturername":"MLI","modelid":"ZBT-ExtendedColor","name":"Micha Schreibtisch","state":{"alert":"none","bri":254,"colormode":"xy","ct":315,"effect":"none","hue":0,"on":true,"reachable":true,"sat":146,"xy":[0.424872,0.3561]},"swversion":"2.2","type":"Extended color light","uniqueid":"d0:cf:5e:ff:fe:26:c7:f5-01"} micha@JVACASPERS:~$ curl -d '{"hue":100}' -X PUT http://192.168.178.123/api/F533967F67/lights/1/state [{"success":{"/lights/1/state/hue":100}}] micha@JVACASPERS:~$ curl -X GET http://192.168.178.123/api/F533967F67/lights/1 {"ctmax":555,"ctmin":153,"etag":"dee056e82ea1d8d916479816d6d56fb1","hascolor":true,"manufacturername":"MLI","modelid":"ZBT-ExtendedColor","name":"Micha Schreibtisch","state":{"alert":"none","bri":254,"colormode":"xy","ct":315,"effect":"none","hue":0,"on":true,"reachable":true,"sat":146,"xy":[0.424872,0.3561]},"swversion":"2.2","type":"Extended color light","uniqueid":"d0:cf:5e:ff:fe:26:c7:f5-01"}
Hierbei war auch keine optische Veränderung wahrzunehmen.
Die hue steht auch direkt wieder bei, trotz colormode -
@curryhoden
Ok. Damit ist meine Vermutung von weiter oben endgültig bestätigt. Es wäre gut wenn du mit den hier geposteten Auszügen aus der Kommunikation mit der rest-API einen Issue am deconz-rest-plugin auf GitHub aufmachen könntest (mit den Auszügen aus beiden Posts).Der ioBroker Adapter kann nur das auswerten was die rest-API liefert, und diese reagiert nicht sauber auf die Anpassung des Hue.
Um jetzt trotzdem vorwärts zu kommen kann ich Dir nur den Umweg über das Script (auch weiter oben hier im Thread) empfehlen. Ich kenne keinen colorpicker, der direkt die XY Werte setzt, die die ich kenne setzen entweder RGB, HSV oder halt XY über Command.
A.
-
Ich danke dir vielmals für deine Hilfe!
Merkwürdig, dass scheinbar niemand vorher auf den Fehler aufmerksam wurde.
BTW:
Mit deinem Script von oben, habe ich es hinbekommen die Lampe zu steuern.
Nachteil: Der Commandwert für Level (also brightness) ist immer 100
Während die API Werte bis 255 benötigt.Lässt man die Zeile weg und sendet nur den xy Wert per setState, dann lüppt es.
Das ist alles ziemlich gefrickelt. Ich bin dir dankbar, hoffe aber ehrlich gesagt, dass sich das ganze nach der Fehlerbehebung etwas einfacher gestaltet.
Für alle anderen, die auf das Problem stoßen:
@Asgothian said in CIE Colopicker:
Dazu musst du:
den Philips Hue Colorpicker nutzen
einen Datenpunkt für den Colorpicker anlegen (Ich nutz dazu einen den ich javascript0.color.picker1 genannt habe)
den Datenpunkt als "Command ID" eintragen
als "XY ID" und "Level ID" die entsprechenden Datenpunkte der Lampe eintragen
das Folgende Script wertet den dann aus und setzt die Werte auf der Lampe:on ({id: "javascript0.color.picker1", change:"ne"}, function(obj) { json_msg = JSON.parse(obj.state.val) setState("lampObject.xy", json_msg.xy) setState("LampObject.bri", son_msg.level) });
Lasst die Zeile:
setState("LampObject.bri", son_msg.level)
weg. (es fehlt ein "j" bei json) Aber es würde auch so nicht mit dem level klappen, da dieses immer 100 ist. (255 benötigt für maximale Helligkeit).
Hier noch das erstellte Github Issue:
ISSUE#1402 -
Nur mal so zur Info, ich habe das gleiche Problem mit meinen Müllers GU10. Scheint noch nicht gefixt zu sein
-
Gibt es für das Problem mittlerweile eine Lösung? Habe eine Hue Iris, bekomme die aber nicht vernünftig angesteuert mit dem ColorPicker (Command ID nicht vorhanden)