Hallo liebe Gemeinde,
in Anlehnung an Beitrag https://forum.fhem.de/index.php/topic,77256.0.html (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
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
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
Eventuell hilft maskieren? Muss man innerhalb von "" eigentlich tun :)
anstatt @ so \@
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