Hallo zusammen,
ich verwende ein DOIF, um zu überwachen, ob mein Garagentor nach Einbruch der Dämmerung noch offen ist.
([{sunset}-({sunrise}-[04:00])] and [Garage_Torzustand] eq "offen" and [?PollinStatuslichtSchlafzimmer_GaragentorOffen_ChkBox] eq "on" and [?PollinStatuslichtSchlafzimmer_GaragentorOffen] eq "off")
(set PollinStatuslichtSchlafzimmer_GaragentorOffen on)
DOELSEIF ([Garage_Torzustand] eq "geschlossen" and [?PollinStatuslichtSchlafzimmer_GaragentorOffen] eq "on")
(set PollinStatuslichtSchlafzimmer_GaragentorOffen off)
- Garage_Torzustand: Text-Dummy "offen"/"geschlossen"
- PollinStatuslichtSchlafzimmer_GaragentorOffen_ChkBox: Checkbox, ob das Benachrichtungslicht geschaltet werden soll
- PollinStatuslichtSchlafzimmer_GaragentorOffen: Funksteckdosen-Schaltaktor für das Benachrichtungslicht
Gestern und heute hatte ich nun wieder den Fall, dass das Garagentor tagsüber offen war, mit Einbruch der Dämmerung jedoch wurde das Benachrichtungslicht nicht eingeschaltet.
Es scheint, als ob sunset/sunrise nicht als trigger für das DOIF fungiert haben.
Öffne ich das Tor nämlich nach Einbruch der Dämmerung, geht das Licht anstandslos an - und nach Schließen des Tors auch wieder aus.
list di_Garagentor_Ueberwachen
Internals:
DEF ([{sunset}-({sunrise}-[04:00])] and [Garage_Torzustand] eq "offen" and [?PollinStatuslichtSchlafzimmer_GaragentorOffen_ChkBox] eq "on" and [?PollinStatuslichtSchlafzimmer_GaragentorOffen] eq "off")
(set PollinStatuslichtSchlafzimmer_GaragentorOffen on)
DOELSEIF ([Garage_Torzustand] eq "geschlossen" and [?PollinStatuslichtSchlafzimmer_GaragentorOffen] eq "on")
(set PollinStatuslichtSchlafzimmer_GaragentorOffen off)
NAME di_Garagentor_Ueberwachen
NR 2524
NTFY_ORDER 50-di_Garagentor_Ueberwachen
STATE cmd_1
TYPE DOIF
Readings:
2015-11-30 13:22:54 Device Garage_Torzustand
2015-11-27 21:46:03 cmd_event Garage_Torzustand
2015-11-27 21:46:03 cmd_nr 1
2015-11-30 13:22:54 e_Garage_Torzustand_STATE offen
2015-11-27 21:46:03 state cmd_1
2015-11-30 17:06:37 timer_1_c1 01.12.2015 17:06:08
2015-11-30 03:16:30 timer_2_c1 01.12.2015 03:16:30
Condition:
0 DOIF_time($hash,$hash->{realtime}{0},$hash->{realtime}{1},$wday,$hms,"") and InternalDoIf('Garage_Torzustand','STATE','') eq "offen" and InternalDoIf('PollinStatuslichtSchlafzimmer_GaragentorOffen_ChkBox','STATE','') eq "on" and InternalDoIf('PollinStatuslichtSchlafzimmer_GaragentorOffen','STATE','') eq "off"
1 InternalDoIf('Garage_Torzustand','STATE','') eq "geschlossen" and InternalDoIf('PollinStatuslichtSchlafzimmer_GaragentorOffen','STATE','') eq "on"
Days:
Devices:
0 Garage_Torzustand
1 Garage_Torzustand
all Garage_Torzustand
Do:
0:
0 set PollinStatuslichtSchlafzimmer_GaragentorOffen on
1:
0 set PollinStatuslichtSchlafzimmer_GaragentorOffen off
2:
Helper:
globalinit 1
last_timer 2
sleeptimer -1
Internals:
0 Garage_Torzustand:STATE
1 Garage_Torzustand:STATE
all Garage_Torzustand:STATE
Itimer:
Readings:
Realtime:
0 17:06:08
1 03:16:30
State:
Time:
0 {sunset}
1 ({sunrise}-[04:00])
Timecond:
0 0
1 0
Timer:
0 0
1 0
Timerfunc:
Timers:
0 0 1
Trigger:
Attributes:
room Garage
Wer kann mir einen Hinweis geben?
Vielen Dank,
viele Grüße,
Heiko
state ist seit 2015-11-27 21:46:03 auf cmd_nr 1 . Versuch mal das Attribut do always,
Ja, das war am Freitag, da war die Garage um die Uhrzeit offen.
Deshalb wurde cmd_nr 1 ausgeführt: sunset war schon eingetreten, und das Tor wurde geöffnet, Zustand ging somit auf offen
Seither wurde die Garage nur tagsüber aufgemacht und blieb dann bis zum Eintritt von sunset offen.
Ich werde do-always state probieren und berichte dann morgen.
Also mit do-always funktioniert es wie gewünscht.
Tor ist 30min vor sunset offen, sunset tritt ein, Licht geht an. Perfekt.
Aber warum brauche ich in diesem Fall do-always?
sunrise/sunset sind doch als Trigger in [] definiert so wie auch der Dummy.
Und sunset ist eingetreten, also müsste es doch getriggert haben?
Viele Grüße,
Heiko
Zitat von: Ellert am 30 November 2015, 19:15:40
state ist seit 2015-11-27 21:46:03 auf cmd_nr 1 . Versuch mal das Attribut do always,
Weil der Zustand "geschlossen" hier 3 Tage lang nicht eingetreten war.
Ok, aber der Dummy ist ja vor Eintreten von sunset auf "offen" gegangen, somit gab es an dem eine Änderung.
Ich verstehe nicht, wieso der Dummy erst wieder zurück auf "geschlossen" gegangen sein muss ohne do always.
http://fhem.de/commandref_DE.html#DOIF_do_always (http://fhem.de/commandref_DE.html#DOIF_do_always)