Hallo zusammen,
ich wollte ein Doif als Taster definieren. Für das Beispiel habe ich jetzt 3 Tasten definiert.
Die Readings zeigen den Schaltvorgang an Aber der Event wird nicht ausgeführt. Der STATE ändert aber nict seinen Wert.
ich hatte irgenwo schonso ein ähnliches Doif gefunden, dass sich selbst ausführt.
Es kann doch nur eine kleinigkeit sein oder bin ich auf den ganz falsche Weg.
Hier das List:
Internals:
CFGFN
DEF ## cmd_1: Ausschalten
([$SELF:effect] eq "off") (
set mySwitch1 off;
)
## cmd_2: Animation anhalten
DOELSEIF ([$SELF:effect] eq "stop") (
set mySwitch1 stop;
)
## cmd_3: Einschalten
DOELSEIF ([$SELF:effect] eq "on") (
set mySwitch1 on;
)
FUUID 5e5b9ef1-f33f-effb-3587-472d6411dd6f3e44
MODEL FHEM
NAME di.test1
NOTIFYDEV di.test1,global
NR 300
NTFY_ORDER 50-di.test1
STATE cmd_3
TYPE DOIF
VERSION 21224 2020-02-18 18:45:49
READINGS:
2020-03-01 12:50:08 cmd 3
2020-03-01 12:50:08 cmd_event di.test1
2020-03-01 12:50:08 cmd_nr 3
2020-03-01 12:50:08 e_di.test1_effect on
2020-03-01 12:50:08 effect on
2020-03-01 12:39:29 mode enabled
2020-03-01 12:50:08 state cmd_3
Regex:
accu:
cond:
di.test1:
0:
effect ^di.test1$:^effect:
1:
effect ^di.test1$:^effect:
2:
effect ^di.test1$:^effect:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'di.test1','effect') eq "off"
1 ::ReadingValDoIf($hash,'di.test1','effect') eq "stop"
2 ::ReadingValDoIf($hash,'di.test1','effect') eq "on"
do:
0:
0 set mySwitch1 off;
1:
0 set mySwitch1 stop;
2:
0 set mySwitch1 on;
3:
helper:
DEVFILTER ^global$|^di.test1$
NOTIFYDEV global|di.test1
event effect: on
globalinit 1
last_timer 0
sleeptimer -1
timerdev di.test1
timerevent effect: on
triggerDev di.test1
DOIF_eventa:
cmd_nr: 3
cmd: 3
cmd_event: di.test1
cmd_3
DOIF_eventas:
cmd_nr: 3
cmd: 3
cmd_event: di.test1
state: cmd_3
timerevents:
effect: on
e_di.test1_effect: on
cmd_nr: 3
cmd: 3
cmd_event: di.test1
cmd_3
timereventsState:
effect: on
e_di.test1_effect: on
cmd_nr: 3
cmd: 3
cmd_event: di.test1
cmd_3
triggerEvents:
effect: on
e_di.test1_effect: on
cmd_nr: 3
cmd: 3
cmd_event: di.test1
cmd_3
triggerEventsState:
effect: on
e_di.test1_effect: on
cmd_nr: 3
cmd: 3
cmd_event: di.test1
cmd_3
internals:
readings:
all di.test1:effect
trigger:
uiState:
uiTable:
Attributes:
cmdIcon stop:rc_STOP on:taster_ch_an_gruen off:taster_ch_aus_rot
devStateIcon initialized:general_ok@green cmd_1:general_aus@darkred cmd_2:rc_STOP cmd_3:general_an@green cmd_4:rc_1
do always
eventMap /effect on:on/effect off:off/effect stop:stop/
icon helper_doif@black
readingList effect
room Unsorted
setList effect
stateFormat state
verbose 5
webCmd stop:on:off
Mir ist klar, dass ich das auch über einen Dummy lösen könnte. :)
Gruß Josef
Sitze vielleicht schon zulange vor der Kiste, jetzt funktioniert es eichfach so wie ich es wollte.
Gruß Josef
Hallo @hugo
Würdest Du bitte die Definition als raw zeigen - also so wie das in der fhem.cfg steht?
Danke!
Hallo Curt,
da du es als erledigt markiert hast, gehe ich davon aus, das es klappt.
Wenn dir hier alle helfen sollen, wäre es auch nett, wen Du deine Lösung hier posten würdest.
Grüße
Hallo Curt,
hier meine Definition. War aber nur einmal ein test und habe das nicht wieter verfolgt.
defmod di.test1 DOIF ## cmd_1: Ausschalten\
([$SELF:effect] eq "off" ) (\
set mySwitch1 off;;\
)\
## cmd_2: Animation anhalten\
DOELSEIF ([$SELF:effect] eq "stop") (\
set mySwitch1 stop;;\
)\
## cmd_3: Einschalten\
DOELSEIF ([$SELF:effect] eq "on") (\
set mySwitch1 on;;\
)\
attr di.test1 cmdIcon stop:rc_STOP on:taster_ch_an_gruen off:taster_ch_aus_rot
attr di.test1 devStateIcon initialized:general_ok@green cmd_1:general_aus@darkred cmd_2:rc_STOP cmd_3:general_an@green cmd_4:rc_1
attr di.test1 do always
attr di.test1 eventMap /effect on:on/effect off:off/effect stop:stop/
attr di.test1 icon helper_doif@black
attr di.test1 readingList effect
attr di.test1 room Unsorted
attr di.test1 setList effect
attr di.test1 stateFormat state
attr di.test1 webCmd stop:on:off
setstate di.test1 cmd_1
setstate di.test1 2020-10-08 20:46:10 cmd 1
setstate di.test1 2020-10-08 20:46:10 cmd_event di.test1
setstate di.test1 2020-10-08 20:46:10 cmd_nr 1
setstate di.test1 2020-10-08 20:46:10 e_di.test1_effect off
setstate di.test1 2020-10-08 20:46:10 effect off
setstate di.test1 2020-03-01 13:46:08 mode enabled
setstate di.test1 2020-10-08 20:46:10 state cmd_1
Danke!