... obwohl es eigentlich ein einfaches DOIF ist...
HI!
Irgendwie will mein DOIF den wait Timer nicht. Er wartet nicht 60sek vor dem Ausschalten... Und was viel komischer ist das we seit gestern nicht mehr den Deckenfluter on schaltet wenn "Nacht" wird... Hat jemand eine Idee wo auf einmal der Fehler liegt?
Hier das DOIF:
([Tageslicht_indoor] eq "Nacht") (set Deckenfluter on)
DOELSEIF
([TVTime:state] eq "off" and [PartyTime:state] eq "off" and [22:30-03:30]) (set Deckenfluter off)
HIer der List :
ZitatInternals:
DEF ([Tageslicht_indoor] eq "Nacht") (set Deckenfluter on)
DOELSEIF
([?TVTime:state] eq "off" and [?PartyTime:state] eq "off" and [22:11-03:30]) (set Deckenfluter off)
MODEL FHEM
NAME DOIFDeckenfluter
NR 100
NTFY_ORDER 50-DOIFDeckenfluter
STATE cmd_2
TYPE DOIF
READINGS:
2018-04-18 22:11:00 cmd 2
2018-04-18 22:11:00 cmd_event timer_1
2018-04-18 22:11:00 cmd_nr 2
2018-04-18 22:10:18 mode enabled
2018-04-18 22:11:00 state cmd_2
2018-04-18 22:10:18 timer_01_c02 18.04.2018 22:30:00
2018-04-18 22:10:18 timer_02_c02 19.04.2018 03:30:00
Regex:
condition:
0 InternalDoIf($hash,'Tageslicht_indoor','STATE') eq "Nacht"
1 ReadingValDoIf($hash,'TVTime','state') eq "off" and ReadingValDoIf($hash,'PartyTime','state') eq "off" and DOIF_time($hash,0,1,$wday,$hms)
days:
devices:
0 Tageslicht_indoor
all Tageslicht_indoor
do:
0:
0 set Deckenfluter on
1:
0 set Deckenfluter off
2:
helper:
DOIF_Readings_events
event timer_1
globalinit 1
last_timer 2
sleeptimer -1
timerdev
timerevent timer_1
timereventsState
triggerDev
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: timer_1
state: cmd_2
timerevents:
timer_1
triggerEvents:
timer_1
internals:
0 Tageslicht_indoor:STATE
all Tageslicht_indoor:STATE
interval:
0 -1
1 0
itimer:
localtime:
0 1524082260
1 1524101400
readings:
realtime:
0 22:30:00
1 03:30:00
time:
0 22:30:00
1 03:30:00
timeCond:
0 1
1 1
timer:
0 0
1 0
timers:
1 0 1
triggertime:
1524101400:
localtime 1524101400
hash:
uiState:
uiTable:
Attributes:
room 2 DOIF
wait 0:60
Das sind zwei Dinge.
1. cmd_2 wurde durch das Triggern des Zeitintervall-Timers ausgeführt. Wait verlängert keine Timer, wenn nicht das Attribut https://fhem.de/commandref_DE.html#DOIF_timerWithWait gesetzt ist.
2. Wenn das Modul sich im Zustand cmd_1 befindet, wird dieser ohne gesetztes do always-Attribut nicht noch mal ausgeführt
okay, dann habe ich das mit dem wait etwas falsch verstanden...
Aber das do always hatte ich bis jetzt nie drin... und bis vor 2 tagen hat es eigentlich immer funktioniert..
Ich habe die befürchtung das wenn vielleicht einer der 3 [TVTime:state] eq "off" and [PartyTime:state] eq "off"
auf on steht und es dann "nacht" wird, kann es sein das er dann den Deckenfluter nicht einschaltet?
Zitat von: misux am 18 April 2018, 22:38:56
okay, dann habe ich das mit dem wait etwas falsch verstanden...
Aber das do always hatte ich bis jetzt nie drin... und bis vor 2 tagen hat es eigentlich immer funktioniert..
Ich habe die befürchtung das wenn vielleicht einer der 3 [TVTime:state] eq "off" and [PartyTime:state] eq "off"
auf on steht und es dann "nacht" wird, kann es sein das er dann den Deckenfluter nicht einschaltet?
Nein, cmd_1 wird immer dann geschaltet, wenn ein Trigger von Tageslicht_indoor kommt und dessen Status "Nacht" ist und das DOIF-Modul sich nicht im Zustand cmd_1 befindet.
Hmm... komisch... ich weiß zwar nicht im welchen zustand sich das DOIF befunden hat aber ich schwöre das es jetzt ca 4 Wochen so funktioniert hat... :o
Naja, okay, egal, hauptsache es geht jetzt wieder!
Vielen Dank für deine Hilfe! ;D