trilu2000 / HB-CDL-6

Asksin++ based codelock
6 stars 0 forks source link

LED Farbe Weiß #2

Open Alexxx2005 opened 2 years ago

Alexxx2005 commented 2 years ago

@trilu2000

Servus,

was müsste ich am Code ändern damit ich in der CCU weiß einstellen kann ?

Grüße Alex

trilu2000 commented 2 years ago

Hi Alex, um ehrlich zu sein, weiß war nie vorgesehen. Wenn Du es implementieren willst musst Du hier ran hsv2rgb_rainbow(CHSV(color[color_mode], 255, bright[bright_mode]), rgb);

Mit CHSV generiert man ein Pixel (hue, saturation, value (aka brightness)) hue bekomme ich als 0-200 Wert von Homematic. saturation setze ich auf 255, also maximale Sättigung. Wenn Du Weiß willst, muss die Sättigung aber 0 sein.

Grundsätzlich sollte es also funktionieren wenn man saturation auf 0 setzt wenn hue 200 ist Kannst ja mal testen :-)

Alexxx2005 commented 2 years ago

Hallo Horst,

also wenn ich hin geh und :

hsv2rgb_rainbow(CHSV(color[color_mode], 0, bright[bright_mode]), rgb);

eingebe habe ich tatsächlich weiß allerdings hat der Farben Mischer in der CCU dann keine Funktion mehr , stelle ich orange oder Blau ein ändert sich die Farbe nicht.

Bekommen wir das noch hin das Farbe und Weiß geht oder ist das nicht möglich ?

Danke für deine Hilfe

trilu2000 commented 2 years ago

Eine statische 0 reicht natürlich nicht, die Null musst du setzen wenn color_mode 200 ist, wenn color_mode <>200 dann sat auf 255 Probiers mal damit: hsv2rgb_rainbow(CHSV(color[color_mode], color_mode==200?0:255, bright[bright_mode]), rgb);

Alexxx2005 commented 2 years ago

der Code funktioniert leider nicht, passt das mit zwei = und ? entferne ich ein = dann ist es wieder weiß und nicht einstellbar auf eine andere Farbe.

ich habe das

hsv2rgb_rainbow(CHSV(color[color_mode], 255, bright[bright_mode]), rgb);

gelöscht und durch deines ersetzt

trilu2000 commented 2 years ago

schade, ich dachte Du würdest selbst etwas probieren nachdem Du immer von wir gesprochen hast... Ich hab es eben umgesetzt und oberflächlich getestet. uint8_t sat_mode = color[color_mode] == 255 ? 0 : 255; hsv2rgb_rainbow(CHSV(color[color_mode], sat_mode, bright[bright_mode]), rgb); //DPRINT(F("hue: ")); DPRINT(color[color_mode]); DPRINT(F(", sat: ")); DPRINTLN(sat_mode);

Alexxx2005 commented 2 years ago

Wow das funktioniert nun , sorry ich habe leider kein Plan von dem programmieren, wollte auch in den Einstellungen : Klingel über Kanal auf Beleuchtung über Kanal umbenennen da ich eins für Beleuchtung nutzen möchte aber da hört es bei mir auch auf.

Danke Horst