devStateIcon bei MQTT Shelly 1 ändern

Begonnen von Jogi, 16 Oktober 2021, 15:56:44

Vorheriges Thema - Nächstes Thema

Jogi

Hallo,
ich habe einen Shelly 1, der den Status eines Tasters an FHEM übermittelt. Klappt wunderbar.
In FHEM wird der Status aber als Lampe dargestellt:
{my $onl = ReadingsVal($name,"online","false") eq "false" ? "rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "gelb" : "gruen"; my $light = ReadingsVal($name,"state","off"); my $show = '<a href="';$show .= $onl eq "gelb" ? "/fhem?cmd.dummy=set $name x_update&XHR=1\">" : "http://".ReadingsVal($name,"ip","none").' "target="_blank">'; $show .= FW_makeImage("10px-kreis-".$onl)."</a>"; "<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a></div>" }
Ich hätte statt der Lampe aber lieber ein Tastersymbol:
on:rc_STOP@red off:rc_STOP@grey
Gebe ich das bei DevStateIcon ein bekomme ich zwar die gewünschte Anzeige, habe aber das MQTT Verbindunsgsymbol nicht.
Da ich den obigen Code nicht verstehe, weiß ich nicht, was und wo ich etwas ändern muss.

Ein Tipp wird dankend angenommen.

TomLee

So:

{my $onl = ReadingsVal($name,"online","false") eq "false" ? "rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "gelb" : "gruen"; my $light = ReadingsVal($name,"state","off") eq "on" ? 'rc_STOP@red' : 'rc_STOP@grey'; my $show = '<a href="';$show .= $onl eq "gelb" ? "/fhem?cmd.dummy=set $name x_update&XHR=1\">" : "http://".ReadingsVal($name,"ip","none").' "target="_blank">'; $show .= FW_makeImage("10px-kreis-".$onl)."</a>"; "<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a></div>" }

Jogi

Zitat von: TomLee am 16 Oktober 2021, 16:31:18
So:

{my $onl = ReadingsVal($name,"online","false") eq "false" ? "rot" : ReadingsVal($name,"new_fw","false") eq "true" ? "gelb" : "gruen"; my $light = ReadingsVal($name,"state","off") eq "on" ? 'rc_STOP@red' : 'rc_STOP@grey'; my $show = '<a href="';$show .= $onl eq "gelb" ? "/fhem?cmd.dummy=set $name x_update&XHR=1\">" : "http://".ReadingsVal($name,"ip","none").' "target="_blank">'; $show .= FW_makeImage("10px-kreis-".$onl)."</a>"; "<div> $show <a href=\"/fhem?cmd.dummy=set $name toggle&XHR=1\">".FW_makeImage($light)."</a></div>" }

Super, das funktioniert.
Vielen Dank,
Jogi