NEWS
HUE Lampen über "command" steuern
-
@mariotti sagte in HUE Lampen über "command" steuern:
Hallo,
ich bin ganz neu bei ioBroker und wahrscheinlich stelle ich mir auch alles zu einfach vor.
Ich möchte z.B. eine Hue Lampe mit den Werten einschalten, die mir für diese Lampe angezeigt werden ("b", "bri", "ct", etc.).
Wenn ich nun die "command" Zeile genau mit diesen Werten beschreibe, werden aber Werte angezeigt, die von den von mir "gewünschten" meilenweit entfernt sind.
Ändere ich z.B. den Werte für die Helligkeit, ändern sich auch die Werte der Farben.
Ist es mit ioBroker überhaupt möglich, eine Lampe (ohne eine Szene in der Bridge anlegen zu müssen) sicher auf eine von mit gewünschte Farbe zu steuern, oder ist das Ergebnis eher nur Zufall?`
Ich experimentiere schon über einen Tag rum, ohne auch nur annähern verstanden zu haben, welche Werte ich steuern muss, um eine bestimmte Farbe und eine bestimmte Helligkeit zu erreichen.
Habt ihr Tipps oder Erfahrungen?
Vielen Dank
Mario
verrat uns doch mal welchen Adapter du für die Lampe nutzt ?
Hue ?
Deconz ?
Zigbee ?
Zigbee2mqtt ?
mqtt ?A.
-
Hallo,
also ich nutze eine HUE Bridge Version 2 in Verbindung mit dem HUE Adapter Version 3.16.2. Bei der Lampe handelt es sich um einen Hue Color Spot.
Ich habe nun versucht, den Level der Lampe mit "50" zu beschreiben. Da kommt eine Warnmeldung, mit der ich nichts anfangen kann. Und der Level bleibt bei 100, obwohl ich ihn mit dem command Befehl vorher auf 30 gesetzt habe.
-
@marc-berg said in HUE Lampen über "command" steuern:
{ "bri": 50, "transitiontime": 30 }
Ich gabe folgendes im Command ein:
{"b":79,"bri":79,"ct":2732,"g":140,"hue":50,"r":173,"sat":73,"xy":[0.3911,0.5438],"colormode":"ct","transitiontime":30}
Als Ergebnis bekomme ich das:
Komplett anderes, als über Command vorgegeben. Das einzige, was stimmt, ist die Farbtemperatur und der Wert "hue".
-
@mariotti sagte in HUE Lampen über "command" steuern:
@marc-berg said in HUE Lampen über "command" steuern:
{ "bri": 50, "transitiontime": 30 }
Ich gabe folgendes im Command ein:
{"b":79,"bri":79,"ct":2732,"g":140,"hue":50,"r":173,"sat":73,"xy":[0.3911,0.5438],"colormode":"ct","transitiontime":30}
Als Ergebnis bekomme ich das:
Komplett anderes, als über Command vorgegeben. Das einzige, was stimmt, ist die Farbtemperatur und der Wert "hue".
Dir ist schon klar das du. mit
Hue 50
,sat 73
bri 79
undxy 0.3911, 0.5438
Werte vorgibst die im Konflikt zueinander stehen können ?Beides gibt die Farbe vor. Ob die Werte zueinander passen kann ich so erst einmal nicht sagen, dazu fehlen Informationen.
A.
-
Naja, das sind die Werte, die mir im ioBroker angezeigt werden. Mit diesen Werten leuchtet quasi die Lampe.
Aber wie, wenn nicht so, kann ich denn dann Farbwerte vorgeben?
-
@mariotti warum genau möchtest du denn all diese Werte ansteuern? Teilweise spiegeln die doch die gleichen Infos wieder, oder nicht?
Beispielsweise der Datenpunkt "hue" enthält doch schon alle Infos über die Farbe? Warum willst du dann die Datenpunkte "b", "g" und "r" gleichzeitig setzen? Das ist doch doppelt gemoppeltIch denke Asgothian hat da schon recht. Irgendwo werden Werte in Konflikt stehen.
Was genau macht Transitiontime? Ein Zeitfenster übergeben? Ich würde mal weniger Punkte in den Command schreiben und dann testweise erweitern. -
Zum einen möchte ich es verstehen. Und zum Andern halt die Lampe mit einer gewünschten Farbe ansteuern.
Selbst wenn ich nur Farben vorgebe, ist das Ergebnis immer anders (bis auf die Temperatur) (erste Spalte=Datenpunkt, zweite Spalte=Vorgabe, dritte Spalte=abgelesener Wert):
b 30 65
ct 2732 2732
g 70 128
r 150 254Der Hue Wert steht bei 21° und ändert sich überhaupt nicht.
-
Darüber hinaus übergibst du in deinem Blockly den Level 50 als Text. Das sollte eine Zahl sein.
-
@mariotti sagte in HUE Lampen über "command" steuern:
Zum einen möchte ich es verstehen. Und zum Andern halt die Lampe mit einer gewünschten Farbe ansteuern.
[snip...]Und schon wieder gibst du Werte die nicht unbedingt zusammen passen (müssen)
Du kannst Farbe bei den Leuchten auf 4 verschiedene Arten angeben:
- HSV (
Hue
,Saturation
,Value
) - wobei statt Value zumeistBrightness
genommen wird. - RGB (
Red
,Green
,Blue
) - Farbtemperatur (
Colortemp
,Brightness
) - CIExyz (
x
,y
) - der Z Wert ist nicht notwendig, da bei CIExyz die Summe der 3 Werte 1 sein muss,z
ist also 1-(x
+y
)
Die Umrechnung zwischen diesen Modellen ist fest vorgegeben - sofern man das eigentliche Leuchtmittel nie direkt damit ansteuert.
Das eigentliche Leuchtmittel ist immer entweder RGB oder RGBW, sprich nutzt rote, grüne und blaue LED's (und ggf. zusätzlich weisse) Allerdings ist es nicht korrekt, anzunehmen das die rote LED bei voller Leistung wirklich RGB
255,0,0
liefert. Das ist eher selten. Dito bei den grünen und blauen LED. Bei den Weissen LED's ist das noch extremer - sie alle haben eine 'Farbtemperatur', sprich bei voller Leistung liefern sie irgendwas zwischen255, 211, 168
und197, 211, 255
(Deswegen liest man auch oft RGBWW (für warmweiss)Um es noch komplexer zu machen stellt sich die Frage in welchen Abstufungen die LED wirklich angesteuert werden kann. numerisch ansteuern kann man eigentlich immer 256 Stufen. Ob diese auch wirklich als 256 Stromwerte an den LED ankommen hängt davon ab wieviel Strom die LED wirklich brauchen, und wie fein der DAC Wandler steuern kann. Da sind oft nur 100-150 Stufen wirklich zu unterscheiden (abhängig von der LED, und so weiter)
Die Frage in welcher Farbe eine Lampe also wirklich leuchtet ist hinreichend komplex bei der Ansteuerung. Bei Lampen gleicher Hardware kann man annehmen das die gleichen Vorgabewerte zum gleichen Farbeindruck im Auge führen. Lampen mit gleicher Hardware hat man aber ausschliesslich wenn man Lampen aus einer Herstell-Charge bekommt. Schon bei Lampen unterschiedlichen Alters und unterschiedlicher Nutzungsdauer kann es vorkommen das man den Unterschied in der Farbe sehen kann.
Kommen wir zum sehen - sieht der Mensch wirklich den Unterschied zwischen RGB
20, 200, 100
und10,210, 100
? Wenn die Lampen direkt nebeneinander liegen vielleicht. Sind sie an 2 unterschiedlichen Enden eines Raumes eher nicht.So, genug Exkurs in die Farblehre, zurück zum Ansteuern / verstehen.
Du kannst die Farbe bei den Hue leuchten in den 4 oben angegebenen Modellen ansteuern.
Wenn die Lampe Farbe meldet, weiss sie allerdings nicht welches Modell für Dich interessant ist. Daher liefert sie zumeist die Daten für mehrere Modelle zurück.
Zusätzlich kennt viele Lampen 2 unterschiedliche Betriebsmodi: XY und CT. Im XY Modus erwartet die Lampe eine Ansteuerung mit entweder RGB, HSV oder XY, und liefert entsprechend die Ergebnisse dieser 3 Modelle zurück. Dabei gibt es manchmal rundungseffekte. Intern nutzt die Lampe genau 1 Modell zur Verwaltung der Farbe. Daher muss umgerechnet werden, und da entstehen ggf. Rundungsfehler. Daher kann es passieren das man zuerst via RGB einen Wert einstellt, danach einen Wert mit den dabei zurück gemeldeten XY werten einstellt, und dabei einen anderen RGB Wert zurück gemeldet bekommt.
TLDR:
Du musst dich entscheiden, du nutzt entweder
r
g
b
oderhue
sat
bri
, oderxy
oderct
bri
A.
- HSV (
-
@linedancer Okay. Das teste ich morgen noch mal.
-
@asgothian Vielen Dank. Das muss ich morgen testen
-
Okay, also wenn ich nur Werte aus einer Farbtabelle vorgebe, leuchtet die Lampe in der Farbe, aber die zurückgegebenen Werte stimmen nicht mit den vorgegebenen.
Nun habe ich aber noch ein anderes Problem.
Wenn ich in Blockly eine UND Verknüpfung programmiere, verhält sie sich wie eine ODER Verknüpfung. Wenn ich eine ODER Verknüpfung programmiere, verhält sie sich wie eine UND Verknüpfung.
Anbei ein Beispiel.
Ausgangssituation:
Das Licht im Büro ist eingeschaltet und beide Schalter sind TRUE.Nun schalte ich einen Schalter auf FALSE und das Licht geht aus. Für mein Verständnis müssten beide Schalter FALSE sein, um das Licht abzuschalten.
Ist das in Blockly so gewollt?
-
@mariotti sagte in HUE Lampen über "command" steuern:
Okay, also wenn ich nur Werte aus einer Farbtabelle vorgebe, leuchtet die Lampe in der Farbe, aber die zurückgegebenen Werte stimmen nicht mit den vorgegebenen.
Nun habe ich aber noch ein anderes Problem.
Wenn ich in Blockly eine UND Verknüpfung programmiere, verhält sie sich wie eine ODER Verknüpfung. Wenn ich eine ODER Verknüpfung programmiere, verhält sie sich wie eine UND Verknüpfung.
Anbei ein Beispiel.
Ausgangssituation:
Das Licht im Büro ist eingeschaltet und beide Schalter sind TRUE.Nun schalte ich einen Schalter auf FALSE und das Licht geht aus. Für mein Verständnis müssten beide Schalter FALSE sein, um das Licht abzuschalten.
Ist das in Blockly so gewollt?
Da ist deine Logik falsch.
1 und 1 = 1
1 und 0 = 0
0 und 1 = 0
0 und 0 = 01 oder 1 = 1
1 oder 0 = 1
0 oder 1 = 1
0 oder 0 = 0=>(a und b) = falsch negiert die erste Tabelle.
Was du brauchst ist
nicht
wert von a
undnicht
wert von b
A.
-