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
Bei $SELF hast du die äußeren Klammern einzeln
[x]-[y], bei der anderen Variante einfach [x-y]. Ob das den Unterschied ausmacht? 🤷
Danke, das war's. Manchmal sieht man den Wald vor lauter Klammern nicht :D