FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MarkusAutomaticus am 07 September 2016, 23:29:14

Titel: Farbe eines Icons in Abhängigkeit von einem Zahlenwert
Beitrag von: MarkusAutomaticus am 07 September 2016, 23:29:14
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
Titel: Antw:Farbe eines Icons in Abhängigkeit von einem Zahlenwert
Beitrag von: Hans Franz am 08 September 2016, 01:37:00
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 (http://www.fhemwiki.de/wiki/Color).
{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
Titel: Antw:Farbe eines Icons in Abhängigkeit von einem Zahlenwert
Beitrag von: MarkusAutomaticus am 08 September 2016, 09:21:15
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
Titel: Antw:Farbe eines Icons in Abhängigkeit von einem Zahlenwert
Beitrag von: justme1968 am 08 September 2016, 10:18:57
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