(wie) kann ich denn den folgenden Ausdruck ohne ein elsif erweitern, falls das reading sowohl "temperature" als auch "temp_cal" sein kann:
{ if ($READING eq "temperature" && $VALUE > 24) { 'style="color:red"'} }
Wenn es ein notify ist, dann entweder schon dort, also nur temperature ODER temp_cal triggern lassen:
Device:(temperature|temp_cal).*
EDIT: notify ist ja Quatsch ist wohl ein styleFormat... ;)
Oder mit "match" also RegEx statt eq...
EDIT: z.B. $READING =~ m/temp/) oder halt (noch) "ausgefeilterem" RegEx...
EDIT: Threadtitel ist aktuell auch "falsch", weil (noch) nirgens ein RegEx zu sehen ist... ;)
Gruß, Joachim
sorry, es handelt sich um ein valueStyle Attribut in einer readingsGroup :-[
Zitat von: MadMax-FHEM am 28 Juni 2020, 10:08:31
Oder mit "match" also RegEx statt eq...
z.B. $READING =~ m/temp/) oder halt (noch) "ausgefeilterem" RegEx...
super, danke!
{ if (($READING eq 'temperature' || $READING eq 'temp_cal') && $VALUE > 24) { 'style="color:red"'} }
Stimmt, das ist ja auch ohne elsif... ;)
Gruß, Joachim
Ich find ja die Lösung von betateilchen für Einsteiger "lesbarer" ;). War auch mein erster Gedanke, nur das mit der Klammer um den "oder-Teil" ist mir nicht eingefallen ;D.
Die Lösung von MadMax-FHEM ist andererseits eleganter und wohl am Ende flexibler.
Aber sehr schön, wieder mal die Programmierkenntnisse auf Vordermann gebracht; wobei ich mit Perl und Regulären Ausdrücken nie so richtig warm werde ...
Aber sagt mal, gibts denn für mein valueFormat auch eine schönere Lösung?
{ temperature => " %.1f°C", temp_cal => " %.1f°C" }
Nein, weil das eine komplett andere Baustelle (und interne Umsetzung) ist.