Hauptmenü

wait in DOIF

Begonnen von chq, 12 Januar 2026, 10:20:34

Vorheriges Thema - Nächstes Thema

chq

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
So einfach wie möglich, so kompliziert wie nötig

Damian

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.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

chq

#2
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)
So einfach wie möglich, so kompliziert wie nötig

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

chq

#4
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
So einfach wie möglich, so kompliziert wie nötig

satprofi

#5
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
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

Damian

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
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF