Farben - Ersetzung wie zB. %c für Hex-RGB Farbwerte einführen
Momentan werden Farben in den Einstellungen als Farbname/Farbwert(RGB Hex)-Paare gespeichert. Diese können dann in den Panels/Vorlagen als Farbwert verwendet werden.
Es gibt bestimmt ein paar Usecases, wo die Farben (in RGB Hex) bereits als Reading vorliegen und daher in einem Panel oder einer Vorlage benutzt werden könnten.
Mein konkreter Usecase ist die Anzeige der Farbtemperatur in einer Bar:
bar zeigt momentan entweder warmweiß oder kaltweiß als Farbe an:
"bar": [ "dev-ct:4500:100:cold_white:0:100:false", "dev-ct:2200:100:warm_white:0:100:false" ],
Wünschenwert wäre sowas wie:
"bar": [ "dev-ct_rgb::100:#%c:0:100:false" ],
PS: Beim Versuch mehrere Farben als "colder_white" oder "warmer_white" zu definieren ist die FHEMapp komplett abgestürzt und musste mit einem Backup der config wiederhergestellt werden. Das Issue bzw. der Feature-Request ist daraus erst entstanden.
Ich hatte mir die Config auch mal zerschossen mit den Farben, versuch es mal ohne Sonderzeichen im Farbnamen Gruß Gerhard
Hallo,
vielen Dank für deine Rückmeldung. Ich habe mal verschiedene Farbvariablen (auch mal mit Sonderzeichen) definiert. Eine Absturz habe ich leider nicht reproduzieren können. Kannst du dich evtl. noch erinnern, welche Namen du für die Farbvariablen verwendet hattest?
Ansonsten habe ich mal folgendes getestet:
Farbevariablen erstellt -> col_1 #6A1B9A, col_10 #1E88E5, col_20 #D4E157 (Hex-Wert jeweils für Dark und Light)
Definition für eine Statusbar: dev-state::100:col_%s
Wenn ich das Reading "state" vom Device "dev" auf den Wert 1 oder 10 oder 20 setze, dann nimmt die Statusbar jeweils den definierten Wert an.
Das wäre ja faktisch eine Ersetzung - oder hast du noch etwas anderes gemeint?
Beste Grüße Jens
Hallo Jens Die genaue Art, warum das System gecrasht ist, weiß ich nicht mehr, danach habe mich seinerzeit zu einem Workaround entschieden:
In einem notify zu den Zigbee Lechten definiere ich mir das Reading Bulb_Color, dieses nutze ich dann für die Farbe bar
my $colmode = ReadingsVal($NAME,"ColorMode",0); my $col = ReadingsVal($NAME,"RGB",0); my $ct = ReadingsVal($NAME,"CT",0); if ($EVENT =~ "RGB:") { fhem ("defmod col_".$NAME." at +00:00:01 setreading $NAME Bulb_Color $col"); } if ($colmode eq "2") { my $wcol = "BBBBFF"; if ($ct gt "250") {$wcol = "FFFFFF";} if ($ct gt "400") {$wcol = "FFFFBB";} fhem ("defmod col_".$NAME." at +00:00:01 setreading $NAME Bulb_Color $wcol"); }
Hallo, vielen Dank für deine Rückmeldung. Ich habe mal verschiedene Farbvariablen (auch mal mit Sonderzeichen) definiert. Eine Absturz habe ich leider nicht reproduzieren können. Kannst du dich evtl. noch erinnern, welche Namen du für die Farbvariablen verwendet hattest?
Gerne: Ich hatte bei dem Test warm_white, warmer_white, cold_white und colder_white verwendet. Sollte eigentlich(tm) also analog zu deinem Test damit funktionieren.
Es könnte aber auch sein, dass der Absturz von den Rückständen eines misslungenen Panel->Template Tests stammte. Dieser tauchte nur dann auf, wenn ein neuen Panel angelegt wurde.
Ansonsten habe ich mal folgendes getestet: Farbevariablen erstellt -> col_1 #6A1B9A, col_10 #1E88E5, col_20 #D4E157 (Hex-Wert jeweils für Dark und Light) Definition für eine Statusbar: dev-state::100:col_%s
Ja das würde auch funktionieren. Aber bei meinem konkreten Usecase würde das bedeuten, dass ich Fabtempertaur/RGB Werte loggen müsste um diese dann als Farben zu registrieren. Das wäre mir zu viel Aufwand... Hätte ja sein können dass Du perspektivisch am starren Farbsystem was ändern wolltest... ;-)
Wenn das Reading in FHEM einen Farbwert (hex) liefert, dann kann man den direkt in das Element color (in Form von %s oder #%s) übernehmen. Farbdefinitionen sind dann in FHEMApp nicht nötig. Die Frage wäre also, welche Definitionen für Farben noch in FHEM Readings vorkommen, mit denen FHEMApp nicht direkt umgehen kann.