Icons in readingsGroup mit valueIcon - if-Bedingung wird ignoriert

Begonnen von mtb, 19 März 2019, 11:24:11

Vorheriges Thema - Nächstes Thema

mtb

Hallo liebe Gemeinde,

in Anlehnung an Beitrag https://forum.fhem.de/index.php/topic,77256.0.html habe ich in einer ansonsten einwandfrei funktionierenden readingsGroup versucht, im Attribut valueIcon ein Icon mittels perl-IF zu beeinflussen. Leider aber scheint das IF im Augenblick nichts zurückzugeben und ich kann nicht erkennen, warum?


Für valueIcon steht aktuell ...

{
'wohnzimmer_schalter_04.state.off' => 'general_aus@red',
...
'onkyo.mute.on' => '{if(ReadingsVal("onkyo","state",0) eq "disconnected") {"rc_MUTE@red"} else {"rc_MUTE@yellow"}}',
'onkyo.mute.off' => '{if(ReadingsVal("onkyo","state",0) eq "disconnected") {"rc_MUTE@red"} else {"rc_MUTE@green"}}',
...
'kodi_wz.state.opened' => 'general_an@green'
}


Kurz zum verfolgten Ziel:
Ist das AV-Receiver Device "onkyo" im "state" "disconnected", soll für das "onkyo"-reading "mute" das Icon "rc_MUTE" rot eingefärbt werden.

Für Ideen und Vorschläge bzw. Code-Korrekturen wäre ich sehr dankbar!

VG
Tim

Otto123

Hallo Tim,

Hilfe zur Selbsthilfe, was geben denn (nacheinander) diese Ausdrücke in die FHEM Komamndozeile "geworfen" zurück?
{if(ReadingsVal("onkyo","state",0) eq "disconnected") {"rc_MUTE@red"} else {"rc_MUTE@green"}}
{ReadingsVal("onkyo","state",0) eq "disconnected"}
{ReadingsVal("onkyo","state",0)}
{{"rc_MUTE@red"}}


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mtb

Hallo Otto,

vorab schon einmal herzlichen Dank für Deine Zeit. Wie folgt nun die Ergebnisse:



{if(ReadingsVal("onkyo","state",0) eq "disconnected") {"rc_MUTE@red"} else {"rc_MUTE@green"}}
--->
Global symbol "@red" requires explicit package name (did you forget to declare "my @red"?) at (eval 32809) line 1.
Global symbol "@green" requires explicit package name (did you forget to declare "my @green"?) at (eval 32809) line 1.

{ReadingsVal("onkyo","state",0) eq "disconnected"}
--->
1

{ReadingsVal("onkyo","state",0)}
--->
disconnected

{{"rc_MUTE@red"}}
--->
Global symbol "@red" requires explicit package name (did you forget to declare "my @red"?) at (eval 32824) line 1.


Soweit ich sehe, liegt der Fehler nicht im IF-Ausdruck sondern in den "ungültigen" Werten, die zurückgegeben werden. Nun natürlich die Frage, wie ich es schaffe, dass z.B. "rc_MUTE@red" als Icon aus der Anweisung resultiert!?

Eventuell noch ein Zaunspfahl bei der Hand?


VG
Tim

Otto123

Eventuell hilft maskieren? Muss man innerhalb von "" eigentlich tun :)
anstatt @ so \@
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

mtb

Hallo Otto,

was soll ich sagen, das Maskieren hatte ich hier gar nicht in Erwägung gezogen. Es funzt einwandfrei (z.B.) mit ...


{"rc_MUTE\@red"}


Vielen Dank für Deine Hilfe!

VG
Tim