Grundidee:
Komfortable Manipulation des UserReading im Timer via DOIF // ...das TimerModul aktualisiert sich anschließend eigenständig.
Die sonstige Definition des Timers sollte beibehalten werden.
An der letzten Stelle steht das aktiv/inaktiv - Flag mit
1/0:
Ein Beispiel-TimerAktiv-Reading:
Timer_01 alle,alle,alle,07,15,30,Keller,on,0,0,1,0,0,0,0,
1
defmod Ellen_Timer_IO DOIF ([$SELF:"T11"])\
\
( setreading $SELF T1 {( substr( ReadingsVal("Ellen_Timer","Timer_01",""),0,-1) )}1 )\
( setreading {( substr( "$SELF",0,-3)) } Timer_01 [$SELF:T1] ) \
\
\
\
DOELSEIF\
([$SELF:"T10"])\
( setreading $SELF T1 {( substr( ReadingsVal("Ellen_Timer","Timer_01",""),0,-1) )}0 )\
( setreading {( substr( "$SELF",0,-3)) } Timer_01 [$SELF:T1] ) \
attr Ellen_Timer_IO DbLogExclude .*
attr Ellen_Timer_IO setList T11 T21 T31 T10 T20 T30
setstate Ellen_Timer_IO cmd_1
setstate Ellen_Timer_IO 2022-09-08 13:19:07 T1 alle,alle,alle,07,15,30,Timer_01,DEF,0,0,1,0,0,0,0,1
setstate Ellen_Timer_IO 2022-09-08 13:19:07 cmd 1.2
setstate Ellen_Timer_IO 2022-09-08 13:19:07 cmd_event Ellen_Timer_IO
setstate Ellen_Timer_IO 2022-09-08 13:19:07 cmd_nr 1
setstate Ellen_Timer_IO 2022-09-08 13:19:07 cmd_seqnr 2
setstate Ellen_Timer_IO 2022-09-08 13:19:07 e_Ellen_Timer_IO_events T11
setstate Ellen_Timer_IO 2022-09-08 13:18:58 mode enabled
setstate Ellen_Timer_IO 2022-09-08 13:19:07 state cmd_1
Timer_01 des Timer-Moduls mit dem Namen: Ellen_Timer
aktivieren durch...:
Timer_01 des Timer-Moduls mit dem Namen: Ellen_Timer
deaktivieren durch...:
...sicherlich ausbaufähig, aber ein Anfang ist gemacht ;D
P.S:
substr( ReadingsVal("Ellen_Timer","Timer_01",""),0,
-1) ist das gesammte Reading OHNE LETZTES Zeichen