Du kannst es auch über stateDevIcon realisieren. Dabei brauchst du nur eine Transformation von deinem %-Wert auf einen diskreten Wert.
Das geht mit devStateIcon der zweiten Art also in etwa so:
attr RolloBuro devStateIcon { my $wert = 10* int(0.1*ReadingsNum($name,'wert-get',0)+0.5);; ".*:fts_shutter_1w_$wert:noFhemwebLink" }
Ich hoffe, der Code ist so korrekt. Musste "trockenschwimmen", da ich gerade nicht vor dem FHEM sitze.
Die erste Codezeile my $wert = ... sorgt dafür, dass der Readingswert von 0..100 auf die Werte 0, 10, 20, ..., 90, 100 transformiert wird.
Die Variable $name enthält standardmäßig den Namen des aktuellen Devices. Besser als ein hardcodierter Name, falls du dein Device mal umbenennst, kopierst usw. Dann musst du hier nichts ändern.
Die zweite Codezeile baut einen String der Form (Beispiel für $wert=40): ".*:fts_shutter_1w_40:noFhemwebLink"
Für alle Werte (.*) von STATE wird das Logo fts_shutter_1w_40 angezeigt.
Das Pseudokommando noFhemwebLink sorgt dafür, dass das Icon nicht klickbar ist.
-> CommandRef
Dann brauchst du das stateCmd natürlich nicht mehr, denn es wird ja jetzt das Icon gezeigt und nicht der Prozentwert.
Wenn du %Wert und Icon beides angezeigt haben willst, kenne ich einen Weg, dass du den Text über stateCmd machst und dir für das Icon ein userreading definierst, darauf dann ein widgetoverride mit Widget iconLabel anwendest und es mit webCmd anzeigst.
-> CommandRef für userreading und für widgetoverride
Viele Grüße
Andreas