Ich habe ein Problem mit einem DOIF.
Ich erwarte, dass es Sonntag bis Donnerstag um 22:30 cmd_1 und Freitag bis Samstag um 23:30 cmd_2 ausführt.
Starte ich es manuell (cmd_1 oder 2), werden die Befehle korrekt ausgeführt. Daran liegt es also nicht.
Aber zur angegebenen Zeit triggert es einfach nicht. Im Eventlog taucht kein Eintrag auf. Im Logfile auch nicht.
Internals:
DEF ([22:30|So Mo Di Mi Do]) (
set pflanzenlampe off,
set WOHN.tv_licht off,
set WOHN.ledkette off
)
DOELSEIF
([23:30|Fr Sa]) (
set pflanzenlampe off,
set WOHN.tv_licht off,
set WOHN.ledkette off
)
NAME WOHN_Stimmungslichter_aus
NR 618
NTFY_ORDER 50-WOHN_Stimmungslichter_aus
STATE cmd_1
TYPE DOIF
READINGS:
2018-01-25 22:31:47 cmd 1
2018-01-25 22:31:47 cmd_event set_cmd_1
2018-01-25 22:31:47 cmd_nr 1
2018-01-22 22:41:20 mode enabled
2018-01-25 22:31:47 state cmd_1
2018-01-25 22:30:00 timer_01_c01 26.01.2018 22:30:00|SoMoDiMiDo
2018-01-25 20:51:00 timer_02_c02 25.01.2018 23:30:00|FrSa
Regex:
condition:
0 DOIF_time_once($hash,0,$wday,"SoMoDiMiDo")
1 DOIF_time_once($hash,1,$wday,"FrSa")
days:
0 SoMoDiMiDo
1 FrSa
devices:
do:
0:
0 set pflanzenlampe off, set WOHN.tv_licht off, set WOHN.ledkette off
1:
0 set pflanzenlampe off, set WOHN.tv_licht off, set WOHN.ledkette off
2:
helper:
DOIF_Readings_events
DOIF_eventas
event timer_1
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
timerevents:
timer_1
triggerEvents:
timer_1
internals:
interval:
itimer:
localtime:
0 1517002200
1 1516919400
readings:
realtime:
0 22:30:00
1 23:30:00
time:
0 22:30:00
1 23:30:00
timeCond:
0 0
1 1
timer:
0 0
1 0
timers:
0 0
1 1
triggertime:
1516919400:
localtime 1516919400
hash:
1517002200:
localtime 1517002200
hash:
uiState:
uiTable:
Attributes:
room 01_Wohnzimmer,10_Schalter
weekdays So,Mo,Di,Mi,Do,Fr,Sa,WE,AT
Ich behaupte jetzt mal: Morgen wird es schalten, am Samstag nicht und am Sonntag funktioniert es wieder... ;D (Den Rest der Woche dann wieder nicht, bis Freitag)
Ok, danke für deine Einschätzung. Leider bringt es mich nicht weiter.
Worin liegt denn nun der Fehler?
am fehlenden do always (alternativ DOELSE)
Zitat von: Loki am 26 Januar 2018, 09:47:40
Ok, danke für deine Einschätzung. Leider bringt es mich nicht weiter.
Worin liegt denn nun der Fehler?
Heute hat's funktioniert, oder? ;-) Mein Denkanstoss war wohl nicht ausreichend: DOIF triggert grundsätzlich nur bei Zustandswechsel, d.h. wenn Freitags die Lichter ausgehen, befindet sich das DOIF in CMD_1, dort bleibt es, egal wie oft die Bedingung für CMD_1 erfüllt wird, erst wenn die Bedingung 2 (das DOELSEIF) erfüllt ist, wird CMD_2 ausgelöst, usw... Ändern kann man das, wie nils_ schon sagt, indem man das Attribut "do" auf "always" setzt.