Hallo, ist vielleicht eine ganz blöde Frage aber wie kriege ich das Symbol eines Device für den Aus/An-Zustand weg?
Selbst wenn keine Einstellungen gemacht sind wird automatisch diese Glühbirne angezeigt wenn einer der beiden Zustände auftritt.
Bei Lampen ist das ja sinnvoll, aber bei allem anderen finde ich das eher irretierend.
Da wäre mir ein Text "Aus" wesentlich lieber.
Zitat von: Marko1976 am 15 Juni 2025, 11:42:30Hallo, ist vielleicht eine ganz blöde Frage aber wie kriege ich das Symbol eines Device für den Aus/An-Zustand weg?
...
Da wäre mir ein Text "Aus" wesentlich lieber.
Hallo,
gib in devStateIcon einen Iconnamen an, welcher nicht existiert. Damit erreichst Du das der Text aus STATE angezeigt wird.
attr <devicename> devStateIcon .*:bla
Gruß Thomas
Alternativ über stateFormat einen Text definieren
attr DEVICE stateFormat {my $val;;\
if (ReadingsVal($name, "disabled","") eq "1") {$val = "AUS"}\
else {$val = ReadingsVal("DEVICE", "state","")};;\
$val}
Danke erstmal.
Wo ist denn das Lampensymbol festgelegt, das würde mich auch mal interessieren?
Zitat von: Marko1976 am 15 Juni 2025, 14:56:22Wo ist denn das Lampensymbol festgelegt,
nirgends.
Vereinfacht gesagt: wenn es ein icon gibt, das genau so heißt wie der aktuelle state, wird das icon angezeigt.
Das ist ein Standardverhalten von FHEMWEB.
Kannst Du ganz einfach testen:
define testDummy dummy
set testDummy on
Ergebnis: Lampe wird "leuchtend" angezeigt
set testDummy off
Ergebnis: Lampe wird "ausgeschaltet" angezeigt
set testDummy bla
Ergebnis: Text "bla" wird angezeigt (weil es kein icon gibt, das bla heißt)
Ähnliches gilt übrigens für deviceName:
Leg mal spaßeshalber ein device mit dem Namen "on" an
define on dummy
8)
Was auch geht und ggf. besser verständlich ist, ist es das Icon mit Perl zu setzen. Es durchläuft dann nicht mehr den Codezweig zum Ersetzen mit einem Icon, sondern bleibt einfach so.
defmod testDummy dummy
attr testDummy devStateIcon { ReadingsVal($name, 'state', '???');; }
Es wird also Perl ausgeführt um das Icon zu ermitteln, der PerlCode in den geschweiften Klammern liest das eigene Reading 'state' und gibt den Wert unverändert zurück.