fhemApp icon indicating copy to clipboard operation
fhemApp copied to clipboard

Farben - Ersetzung wie zB. %c für Hex-RGB Farbwerte einführen

Open binford6000 opened this issue 8 months ago • 5 comments

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:

Image

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.

binford6000 avatar Apr 13 '25 06:04 binford6000

Ich hatte mir die Config auch mal zerschossen mit den Farben, versuch es mal ohne Sonderzeichen im Farbnamen Gruß Gerhard

Himbi777 avatar Apr 16 '25 16:04 Himbi777

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

jemu75 avatar Apr 17 '25 18:04 jemu75

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"); }

Himbi777 avatar Apr 17 '25 19:04 Himbi777

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... ;-)

binford6000 avatar Apr 18 '25 13:04 binford6000

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.

jemu75 avatar Apr 19 '25 11:04 jemu75