Hallo,
Ich möchte mein Icon in dev stateicon von remotecontrol/black_btn_RED auf remotecontrol/black_btn_STOP ändern.
Gibt es einen Befehl der das Icon überall wo es vorkommt ändert ?
Mit freundlichen Grüßen
devspec ist dein Stichwort.
Und wie müsste ich es eingeben ?
Ein Beispiel wäre nett .
Beispiele gibt es in der Doku zu devspec (Device specification).
Einen Listbefehl bekomme ich hin, aber mehr auch nicht ! :-(
list devStateIcon=.*remotecontrol/black_btn_RED
danach erhalte ich die Liste mit allen Geräten wo dieses enthalten ist.
Was muss ich nun eingeben um remotecontrol/black_btn_RED in remotecontrol/black_btn_STOP zu ändern ?
Bitte um Hilfe !
Das ganze von list auf attr übertragen. Das ist nicht schwer. Bitte die doku zu attr in Verbindung mit devspec lesen.
Und bitte die Grundlagen lernen.
Wenn es so einfach ist , warum dann nicht hier ?
Komme nicht weiter !
Dann hast du ein echtes Problem. Ein Attribut setzt man so
attr <devspec> <attribute> <value>
Siehe commandref zu attr. Devspec hast du im list oben verwendet. Schaffst du den Rest allein?
Leider nicht
Oha. Mach's die einfach. Baue dir ein cmdalias, das folgendermaßen aussieht:
define newDevStateIcon cmdalias newDevStateIcon .* AS {for my $name (devspec2array("devStateIcon=.*$EVTPART0.*")){ map {s/$EVTPART0/$EVTPART1/; fhem("attr $name devStateIcon $_")} AttrVal($name, 'devStateIcon','') } }
Dann kannst du ein devStateIcon folgendermaßen ändern:
newDevStateIcon stop:remotecontrol/black_btn_RED stop:remotecontrol/black_btn_STOP
Aber Vorsicht. Es muss immer der komplette Teilausdruck aus devStateIcon verwendet werden.
Wenn du also sowas hast
attr DEVICE devStateIcon on:ICON1@green:off off:ICON2@red:off
lautet der Befehl
newDevStateIcon on:ICON1@green:off on:ICON3@green:off
um ICON1 auf ICON 3 zu ändern.
Ungetestet und ohne Gewähr.
Vielen Dank !!!