Guten Tag liebe Gemeinde
Unterdessen bin ich schon mehrere Tage am basteln und komme nicht weiter. In den Foren habe ich leider nichts gefunden. Vermutlich liegt es an einem einfachen Überlegungsfehler.
Ich möchte gerne die Standard-Symbole durch eigene tauschen. Der on-Status ist mir gelungen, der off-Status leider nicht.
Dies funktioniert jedoch nur mit state=true:
{my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen';; $onl = FW_makeImage($onl);; my $light = ReadingsVal($name,'params_switch_0_output','false') =~ m{false|off}?'off':'on'?'sani_heating_level_100@red':'sani_heating_level_100@blue';; $light = FW_makeImage($light);; my $cons = ReadingsNum($name,'params_switch_0_apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; my $ip = ReadingsVal($name,'ip','none');; qq(<a href="http://$ip"target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Watt: $cons</div>)}
Habe einiges probiert aber leider erfolglos. Hier ein Beispiel:
{my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen';; $onl = FW_makeImage($onl);; my $light = ReadingsVal($name,'params_switch_0_output','false') =~ m{false|off}?'off':'on'?'sani_heating_level_100@red': ReadingsVal($name,'params_switch_0_output','true') =~ m{true|on}?'on':'off'?'sani_heating_level_100@blue';; $light = FW_makeImage($light);; my $cons = ReadingsNum($name,'params_switch_0_apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; my $ip = ReadingsVal($name,'ip','none');; qq(<a href="http://$ip"target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Watt: $cons</div>)}
Vielen Dank für eure Hilfe
@vic
Angenommen, es handelt sich um ein ShellyPlus-Gerät ... dann kennt das Reading params_switch_0_output nur die Werte true bzw. false ... on bzw. off sind eher dem state-Reading bekannt
Die initiale Zuweisung für $light in Deinem Beispiel sollte dann (ungetestet) eher so aussehen:
my $light = ReadingsVal($name,'params_switch_0_output','false') eq 'false'?'sani_heating_level_100@red':'sani_heating_level_100@blue';;
Super ... Vielen Dank OdfFhem. Nun klappt es. Genau... es handelt sich um ein Shelly.
Anbei das funktionierende devStateIcon:
{my $onl = ReadingsVal($name,'online','false') eq 'false'?'10px-kreis-rot': ReadingsVal($name,'new_fw','false') eq 'true' ? '10px-kreis-gelb' : '10px-kreis-gruen';; $onl = FW_makeImage($onl);; my $light = ReadingsVal($name,'params_switch_0_output','false') eq 'false'?'sani_heating_level_100@blue':'sani_heating_level_100@red';; $light = FW_makeImage($light);; my $cons = ReadingsNum($name,'params_switch_0_apower',0);; my $total = round(ReadingsNum($name,'aenergy_total',0)/1000,1);; my $temp = ReadingsVal($name,'temperature','-100');; my $ip = ReadingsVal($name,'ip','none');; qq(<a href="http://$ip"target="_blank">${onl}</a><a href="/fhem?cmd.dummy=set $name toggle&XHR=1">${light}</a><div>Watt: $cons</div>)}
...zwischenzeitlich sollte das attrTemplate aber auch diese Readings per jsonMap in state umbenennen...