FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: chq am 12 Januar 2026, 10:20:34

Titel: wait in DOIF
Beitrag von: chq am 12 Januar 2026, 10:20:34
Hallo,

ich habe schon ewig nichts mehr in FHEM gebastelt, musste nun jedoch ein weiteres DOIF erstellen.

Bei den Attributen fehlen mir als Auswahl nun so Dinge wie wait, repeatcmd und repeatsame, was ich in der Vergangenheit jedoch oft verwendet habe. Kann mir evtl. jmd. auf die Sprünge helfen, warum mir diese Attribute nicht zur Auswahl gestellt werden?

Gruß Chris
Titel: Aw: wait in DOIF
Beitrag von: Damian am 12 Januar 2026, 11:49:28
Das liegt daran, dass du dein DOIF nicht im FHEM-Modus, sondern im Perl-Modus definiert hast, dort gibt es die Attribute nicht. DOIF im FHEM-Modus muss mit einer runden Klammer für die erste Bedingung beginnen, dass wird bei dir nicht der Fall sein.
Titel: Aw: wait in DOIF
Beitrag von: chq am 12 Januar 2026, 14:52:44
Super, genau das war das Problem.
Vielen Dank!

Kopiere ich im Anschluss diesen Text in das DOIF, wechselt es dummerweise aber wieder in den Perl-Modus:

DOIF ([{sunset("HORIZON=-2.2",0,"16:00","23:59")}-24:00]
and [Wetterstation:luminosity] == 0
and [Wetterstation:UVR:d1] <= 2.1
and [Bewohner:state] ne "home")
(set Wohnzimmerlicht on)

DOELSEIF ([23:00]
and [Bewohner:state] ne "home")
(set Wohnzimmerlicht off)
Titel: Aw: wait in DOIF
Beitrag von: Damian am 12 Januar 2026, 16:11:32
Bei mir funktioniert es ohne Probleme:

defmod forum_test DOIF ([{sunset("HORIZON=-2.2",0,"16:00","23:59")}-24:00]\
and [Wetterstation:luminosity] == 0\
and [Wetterstation:UVR:d1] <= 2.1\
and [Bewohner:state] ne "home")\
(set Wohnzimmerlicht on)\
\
DOELSEIF ([23:00]\
and [Bewohner:state] ne "home")\
(set Wohnzimmerlicht off)

list forum_test liefert:

ZitatInternals:
   CFGFN     
   DEF        ([{sunset("HORIZON=-2.2",0,"16:00","23:59")}-24:00]
and [Wetterstation:luminosity] == 0
and [Wetterstation:UVR:d1] <= 2.1
and [Bewohner:state] ne "home")
(set Wohnzimmerlicht on)

DOELSEIF ([23:00]
and [Bewohner:state] ne "home")
(set Wohnzimmerlicht off)
   FUUID      69650da1-f33f-30f6-fa9d-615d9beb30b85f33
   MODEL      FHEM
   NAME       forum_test
   NOTIFYDEV  Wetterstation,global,Bewohner
   NR         343818
   NTFY_ORDER 50-forum_test
   STATE      initialized
   TYPE       DOIF
   VERSION    30659 2025-12-25 12:37:16
   eventCount 1
   READINGS:
     2026-01-12 16:05:05   cmd             0
     2026-01-12 16:05:05   mode            enabled
     2026-01-12 16:05:05   state           initialized
     2026-01-12 16:05:05   timer_01_c01    12.01.2026 17:02:36
     2026-01-12 16:05:05   timer_02_c01    13.01.2026 00:00:00
     2026-01-12 16:05:05   timer_03_c02    12.01.2026 23:00:00
Titel: Aw: wait in DOIF
Beitrag von: chq am 12 Januar 2026, 16:57:58
Vielen Dank dafür, dass du das getestet hast.

Mein Problem war, dass ich innerhalb der DEF bei der ersten Bedingung ein DOIF vorangestellt habe.

Gruß Chris
Titel: Aw: wait in DOIF
Beitrag von: satprofi am 27 Mai 2026, 09:42:09
hallo.
ich häng mich da drann. seit einigen tagen funktioniert das wait attr nicht mehr.neu angelegte DOIF übergehen das attr,alte hingegen haben in readings den wait_timer. hat sich da etwas geändert ? mehrere devices getestet, das wait wird unterschlagen
NAME       Licht_test
   NOTIFYDEV  global
   NR         1012
   NTFY_ORDER 50-Licht_test
   STATE      cmd_1
   TYPE       DOIF
   VERSION    27740 2023-07-10 09:31:11
   eventCount 25
   READINGS:
     2026-05-27 09:33:30   cmd             1
     2026-05-27 09:33:30   cmd_event       set_cmd_1
     2026-05-27 09:33:30   cmd_nr          1
     2026-05-27 09:32:25   mode            enabled
     2026-05-27 09:33:30   state           cmd_1
     2026-05-27 09:32:25   timer_01_c01    28.05.2026 08:00:00
     2026-05-27 09:33:00   timer_02_c02    28.05.2026 09:33:00
   Regex:
     accu:
     bar:
     barAvg:
     collect:
   attr:
     cmdState:
     wait:
       0:
         10
       1:
         60
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday)
     1          ::DOIF_time_once($hash,1,$wday)
   days:
   do:
     0:
       0          set MQTT2_DVES_8AF3E9 on
     1:
       0          set MQTT2_DVES_8AF3E9 off
     2:
   helper:
     NOTIFYDEV  global
     event      timer_2
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent timer_2
     triggerDev
     DOIF_eventa:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_cmd_1
       cmd_1
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: set_cmd_1
       state: cmd_1
     timerevents:
       timer_2
     timereventsState:
       timer_2
     triggerEvents:
       timer_2
     triggerEventsState:
       timer_2
   interval:
   intervalfunc:
   localtime:
     0          1779948000
     1          1779953580
   realtime:
     0          08:00:00
     1          09:33:00
   time:
     0          08:00:00
     1          09:33:00
   timeCond:
     0          0
     1          1
   timer:
     0          0
     1          0
   timers:
     0           0
     1           1
   triggertime:
     1779948000:
       localtime  1779948000
       hash:
     1779953580:
       localtime  1779953580
       hash:
   uiState:
   uiTable:
Attributes:
   room       test
   wait       10:60
Titel: Aw: wait in DOIF
Beitrag von: Damian am 27 Mai 2026, 09:43:54
Zitat von: satprofi am 27 Mai 2026, 09:42:09hallo.
ich häng mich da drann. seit einigen tagen funktioniert das wait attr nicht mehr.neu angelegte DOIF übergehen das attr,alte hingegen haben in readings den wait_timer. hat sich da etwas geändert ? mehrere devices getestet, das wait wird unterschlagen

siehe: https://forum.fhem.de/index.php?topic=144049.msg1364254#msg1364254