Farbe eines Icons in Abhängigkeit von einem Zahlenwert

Begonnen von MarkusAutomaticus, 07 September 2016, 23:29:14

Vorheriges Thema - Nächstes Thema

MarkusAutomaticus

Hallo zusammen,

ich würde gerne per devStateIcon die Farbe eines Thermometer-Icons in Abhängigkeit der gemessenen Temperatur darstellen,
bekomme aber die regular expression nicht hin. Ich habe schon ein paar Dinge ausprobiert, leider ohne Erfolg.

Folgendes ist mein letzter Wurf:
state<20.0*:temp_frost@blue state>=20.0*:temp_temperature@red

Was ist daran falsch?

Internals:
   CFGFN
   DEF        CarportTuer:temperature
   DEVICE     CarportTuer
   NAME       CarportTemp
   NR         25915
   NTFY_ORDER 50-CarportTemp
   READING    temperature
   STATE      19.5 C
   TYPE       readingsProxy
   Content:
     CarportTuer 1
   Readings:
     2016-09-07 23:23:11   state           19.5 C
Attributes:
   devStateIcon state<20.0*:temp_frost@blue state>=20.0*:temp_temperature@red
   room       Carport,Temperaturen


Das Device ist ein Proxy. Liegt es daran, dass es nicht funktioniert?

Gruß
Markus
FHEM 5.8 |intel NUC Core i3: Ubuntu 22.04 | z-Wave: Aeon Labs USB Stick | Jeelink (v3c): LaCrosse-Sensoren | DuoFern Stick: Rademacher Gurtwickler | Philips Hue Bridge | CUNX: HomeMatic, EnOcean-Pigator

Hans Franz

ZitatWas ist daran falsch?
Mit einfach state geht's nicht. Ausserdem ist ein Vergleich kein regex.
{return '.*:temp_frost@blue' if (Value("CarportTemp")<20); return '.*:temp_temperature@red'}

Viel charmanter ist aber eine Einfärbung wie in diesem Artikel.
{my $color = substr(Color::pahColor(20,30,40,Value("CarportTemp"),2),0,6);return '.*:temp_frost@'.$color if (Value("CarportTemp")<20); return '.*:temp_temperature@'.$color }

Gruß
Hans
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

MarkusAutomaticus

Hallo Hans,

vielen Dank für deine Antwort!

Funktioniert einwandfrei!
Du hast recht, die Color-Funktion hat Charme, da sie universeller ist.

Leider ist mir, jetzt wo es funktioniert, mein Irrtum aufgefallen:

Das devStateIcon ersetzt ja das Reading und damit habe ich jetzt statt der numerischen Temperaturausgabe ein buntes Icon. Schön wäre es das DevStateIcon wie ein normales Icon vor dem Device-Namen zu haben und dahinter nachwievor die Zahlenwerte.

Gruß
Markus
FHEM 5.8 |intel NUC Core i3: Ubuntu 22.04 | z-Wave: Aeon Labs USB Stick | Jeelink (v3c): LaCrosse-Sensoren | DuoFern Stick: Rademacher Gurtwickler | Philips Hue Bridge | CUNX: HomeMatic, EnOcean-Pigator

justme1968

auch das geht. entweder nimmst du devStateStyle oder du gibst statt dem icon namen direkt einen string mit etwas html code zurück der ein den wert in ein div mit
passender farbe steckt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968