FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hugo am 01 März 2020, 12:56:46

Titel: [erledigt]Doif als Taster
Beitrag von: hugo am 01 März 2020, 12:56:46
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
Titel: Antw:[erledigt]Doif als Taster
Beitrag von: hugo am 01 März 2020, 13:49:07
Sitze vielleicht schon zulange vor der Kiste, jetzt funktioniert es eichfach so wie ich es wollte.
Gruß Josef
Titel: Antw:[erledigt]Doif als Taster
Beitrag von: curt am 08 Oktober 2020, 03:22:34
Hallo @hugo

Würdest Du bitte die Definition als raw zeigen - also so wie das in der fhem.cfg steht?

Danke!
Titel: Antw:[erledigt]Doif als Taster
Beitrag von: FHEM-User22 am 08 Oktober 2020, 11:02:24
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
Titel: Antw:[erledigt]Doif als Taster
Beitrag von: hugo am 08 Oktober 2020, 20:50:06
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

Titel: Antw:[erledigt]Doif als Taster
Beitrag von: curt am 08 Oktober 2020, 22:19:44
Danke!