FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: fichtennadel am 26 Mai 2026, 18:24:50

Titel: [gelöst] Berechnung Timer Startzeitpunkt bei Zeitspanne aus Reading vs statisch
Beitrag von: fichtennadel am 26 Mai 2026, 18:24:50
Hallo,

die Berechnung des Tages des Timer Startzeitpunkts unterscheidet sich, je nachdem ob das Intervall statisch im define oder über ein [$SELF:...] Reading dynamisch definiert ist.

Beispiel:
Bei ([[$SELF:time_start]]-[[$SELF:time_stop]]) wird nach Erreichen von time_start der Timer auf den Folgetag gesetzt, zB heute timer_01_c01 = 27.05.2026 18:09:00
Bei ([18:09-20:00]) bleibt der auf demselben Tag, zB timer_01_c01 = 26.05.2026 18:09:00.

Gibt es dafür ein Grund? Wie kann ich das Verhalten mit [$SELF:...] herstellen, dass der Tag bleibt? Hintergrund: schalten (über eine weitere Bedingung) ist nur von..bis erlaubt.

Beispiel:
define DI.Test DOIF ([[$SELF:time_start]]-[[$SELF:time_stop]]) \
##([18:09-20:00])\
  (setreading $SELF Log Ein)\

attr DI.Test readingList time_start time_stop
attr DI.Test setList time_start:textFieldNL,,4 time_stop:textFieldNL,,4
attr DI.Test webCmd time_start:time_stop
#   CFGFN     
#   DEF        ([[$SELF:time_start]]-[[$SELF:time_stop]])
###([18:09-20:00])
#  (setreading $SELF Log Ein)
#
#   FUUID      6a15c771-f33f-9021-30d7-76bdf8bfd0a37561
#   MODEL      FHEM
#   NAME       DI.Test
#   NOTIFYDEV  DI.Test,global
#   NR         5694
#   NTFY_ORDER 50-DI.Test
#   STATE      cmd_1
#   TYPE       DOIF
#   VERSION    31153 2026-04-27 14:40:49
#   eventCount 5
#   READINGS:
#     2026-05-26 18:18:00   Log             Ein
#     2026-05-26 18:18:00   cmd             1
#     2026-05-26 18:18:00   cmd_event       timer_1
#     2026-05-26 18:18:00   cmd_nr          1
#     2026-05-26 18:16:49   mode            enabled
#     2026-05-26 18:18:00   state           cmd_1
#     2026-05-26 18:17:07   time_start      18:18
#     2026-05-26 18:17:10   time_stop       20:00
#     2026-05-26 18:18:00   timer_01_c01    27.05.2026 18:18:00
#     2026-05-26 18:17:10   timer_02_c01    26.05.2026 20:00:00
#   Regex:
#     accu:
#     bar:
#     barAvg:
#     collect:
#     itimer:
#       DI.Test:
#         itimer:
#           time_start ^DI.Test$:^time_start:
#           time_stop  ^DI.Test$:^time_stop:
#   attr:
#     cmdState:
#     waitdel:
#   condition:
#     0          ::DOIF_time_once($hash,0,$wday)-::DOIF_time_once($hash,1,$wday)
#   days:
#   do:
#     0:
#       0          setreading DI.Test Log Ein
#     1:
#   helper:
#     NOTIFYDEV  DI.Test,global
#     event      timer_1
#     globalinit 1
#     last_timer 2
#     sleeptimer -1
#     timerdev  
#     timerevent timer_1
#     triggerDev
#     timerevents:
#       timer_1
#     timereventsState:
#       timer_1
#     triggerEvents:
#       timer_1
#     triggerEventsState:
#       timer_1
#   interval:
#   intervalfunc:
#   intervaltimer:
#   localtime:
#     0          1779898680
#     1          1779818400
#   realtime:
#     0          18:18:00
#     1          20:00:00
#   time:
#     0          [DI.Test:time_start]
#     1          [DI.Test:time_stop]
#   timeCond:
#     0          0
#     1          0
#   timer:
#     0          0
#     1          0
#   timers:
#     0           0  1
#   triggertime:
#     1779818400:
#       localtime  1779818400
#       hash:
#     1779898680:
#       localtime  1779898680
#       hash:
#   uiState:
#   uiTable:
#
setstate DI.Test cmd_1
setstate DI.Test 2026-05-26 18:18:00 Log Ein
setstate DI.Test 2026-05-26 18:18:00 cmd 1
setstate DI.Test 2026-05-26 18:18:00 cmd_event timer_1
setstate DI.Test 2026-05-26 18:18:00 cmd_nr 1
setstate DI.Test 2026-05-26 18:16:49 mode enabled
setstate DI.Test 2026-05-26 18:18:00 state cmd_1
setstate DI.Test 2026-05-26 18:17:07 time_start 18:18
setstate DI.Test 2026-05-26 18:17:10 time_stop 20:00
setstate DI.Test 2026-05-26 18:18:00 timer_01_c01 27.05.2026 18:18:00
setstate DI.Test 2026-05-26 18:17:10 timer_02_c01 26.05.2026 20:00:00




Titel: Aw: Berechnung Timer Startzeitpunkt bei Zeitspanne aus Reading vs statisch
Beitrag von: Per am 26 Mai 2026, 18:31:18
Bei $SELF hast du die äußeren Klammern einzeln
[x]-[y], bei der anderen Variante einfach [x-y]. Ob das den Unterschied ausmacht? 🤷

Titel: Aw: Berechnung Timer Startzeitpunkt bei Zeitspanne aus Reading vs statisch
Beitrag von: fichtennadel am 26 Mai 2026, 18:34:44
Danke, das war's. Manchmal sieht man den Wald vor lauter Klammern nicht :D