NEWS
MagicHome RGBW + Tasmota + Frage wie Farbtemperatur geht
-
Moinsens,
hab da male ine Frage …
Hab nen MagicHome RGBW Controller mit Tasmota am Laufen und in den Sonoff-Adapter eingebunden.
Funktioniert soweit auch alles .. RGB und Warmweiß´kann ich einstellen.
Nun eine Frage: Weiß jemand wie man die Farbtemperaturen zusammenstellen kann;
z.B. von 2000K nach 6000K, die dann mit Einstellung von Weiß und Beimischung von Rot (mehr warmweiß) und blau
(mehr kaltweiß) erzeugen kann. Also so wie es die Controller eigentlich auch tun sollten, wenn Sie Farbtemperaturen
darstellen wollen; jedenfalls wenn Controller und LED Stripe vom gleichen Hersteller sind.
Auch die MagicHome App selber kann ja nur Weiß beisteuern und aktuell auch keine Farbtemperaturen darstellen.
Genauso wenig kann das auch Tasmota ...
Hab schon im Netz und im Forum gesucht, aber zu Weiß+RGB=Farbtemperatur gibt es wenig.
Für FHEM gibt es ein Wifilight-Modul, daß wohl sowas wie Farbtemperatur aus Weiß und RGB herstellen kann,
aber ich habe keine Ahnung von Perl.
Auch in Netz gibt es zwar JS-Modul zur Weißberechnung mittels RGB; aber nirgends etwas bzgl.
Erstellen einer Farbtemperatur dargestellt mittels WW und RGB.
Daher die Frage mal hier ...
MfG Markus
-
Ich habe ein js Script gefunden mit dem ich eine Umrechnung von Colortemp zu RGB gemacht habe. Diese funktioniert allerdings nur gut bei Intensität 100, und ist auch nur eine Approximation, keine exakte Umrechnungsfunktion.
Siehe auch hier:http://www.tannerhelland.com/4435/conve … ithm-code/
! function colorTemperatureToRGB(kelvin){
! var temp = kelvin / 100;
! var red, green, blue;
! if( temp <= 66 ){
! red = 255;
! green = temp;
! green = 99.4708025861 * Math.log(green) - 161.1195681661;
! if( temp <= 19){
! blue = 0;
! } else {
! blue = temp-10;
! blue = 138.5177312231 * Math.log(blue) - 305.0447927307;
! }
! } else {
! red = temp - 60;
! red = 329.698727446 * Math.pow(red, -0.1332047592);
! green = temp - 60;
! green = 288.1221695283 * Math.pow(green, -0.0755148492 );
! blue = 255;
! }
! return {
! r : clamp(red, 0, 255),
! g : clamp(green, 0, 255),
! b : clamp(blue, 0, 255)
! }
! } -
Das Skript kommt mir schon bekannt vor, aber es ist eben nur die Umrechnung in RGB.
Was ich jedoch suche ist die Umrechnung von Farbtemperatur in WW und RGB.
Dabei müßte dann der Weißanteil aus RGB rausgerechnet werden und das auch mit der Helligkeit mitgehen.
Aber wahrscheinlich gibt es dazu nix, da es wohl fest in den Lampencontrollern der Hersteller verbaut ist,
wie und mit welcher Helligkeit sie die 4 LEDs (für RGBW) bei den Farbtemperaturen ansprechen.
Aber Danke für deine Info!
MfG Markus
-
Hallo Markus,
sorry, ich hatte dich missverstanden.
Eine allgemeine Formel kann es leider für diese Berechnung nicht geben. Sie hängt stark von den eingesetzten LED Streifen ab.
Eingangsparameter sind:
Die relativen Helligkeiten der RGB LED bei identischer Stromstärke (Vorgabewert)
Der Weiss-Wert der eingesetzten Warm-Weiss LED's
Prinzipiell muss das so gehen:
-
Relative Helligkeiten Hr, Hg, Hb bei RGB 255 255 255 bestimmen
-
Aus Farbtemperatur der WW Leds Ziel RGB Werte bestimmen
-
Die RGB LEDs auf diese Ziel-Helligkeiten einstellen (Sprich die Vorgabewerte RGB mit den relativen Helligkeiten HrHgHb verrechnen), die Werte als Rr, Rg, Rb aufnehmen
-
Helligkeit der so zusammen gemischten "warmweiss" Beleuchtung bestimmen (Hrgb)
-
Helligkeit der ww Beleuchtung bestimmen (Hw)
-
RGB Anteile der WW led's nach Farbtemperatur berechnen, passend zu den Wr, Wg, Wb werten skalieren (durch Multiplikation mit (Hw/Hrgb)
-
RGB Werte der Ziel Temperatur bestimmen, auf G Normieren, dann durch Multiplikation mit Wg Zielwerte fuer Rot und Blau bestimmen.
-
Schauen ob durch zumischen von R oder B diese Werte erreicht werden können. Wenn ja, gut, wenn nein, G Anteil reduzieren, neu berechnen.
Selber kann ich das nicht machen, ich hab keinen LED Streifen mit RGBW.
A.
-
-
So was da Ute ich mir … daß die Controller passend zum stripe steuern ...
Dachte halt nur, ob es was generisches gibt .. was grob passen würde....