Das ist so allgemein nicht richtig, wie man das mit folgender Definition nachstellen kann:
Ups, der Meister persönlich!

Jein

So wie ich es verstanden habe ist es egal, ob das "
regexp:icon-name:cmd - Dreierpärchen" direkt eingetippt ist oder von einem Perl-Statement zurückgeliefert wird. Es wird dabei immer gleich behandelt.
Anders, wenn Perl ein
undef oder ein in
<> eingeschlossenen Text liefert. Dann wird entweder das Standardicon oder der Text (anscheinend inklusive der
<>) als HTML gezeigt/interpretiert/eingebaut.
Ich habe also beim Attribut
devStateIcon drei Möglichkeiten:
- regexp:icon-name:cmd - Dreierpärchen (egal ob handgetippt oder durch Perl generiert
- undef, durch Perl generiert
- HTML, durch Perl generiert
Da ich Icon und Text mischen möchte
1), habe ich mich für 3. "HTML durch Perl" entschieden
2). Und in dem HTML kann ich nicht explizit angeben, dass ich kein
3 cmd haben möchte...
Das
cmd wird ja auch nicht von mir in irgendeiner Form einprogrammiert, sondern scheint
automatisch zu existieren, weil der (Sub-)Typ des Devices ein
switch ist.
Hier noch einmal das Device, soweit abgestrippt, dass man bitte nicht mehr nach dem Sinn des Gerätes fragen darf:
defmod switch CUL_HM 1BEB45
attr switch devStateIcon {
my $state = ReadingsVal($name, 'state', undef);
my $icon = 'Next';
if ($state eq 'on') {$icon = 'Prev'}
my $icon_html = FW_makeImage($icon, '');
'<div>'.$icon_html.' '.$state.'</div>'
}
attr switch eventMap /on:an/ /off:aus/
attr switch model HM-LC-SW1-PL2
attr switch subType switch
attr switch webCmd an:aus
Im Screenshot sieht man, dass "mein" Icon-Text-Gemisch weiterhin mit einem
cmd belegt ist.
1 = vielleicht geht das gar nicht
2 = vielleicht war das falsch
3 = Achtung: doppelte Verneinung!