DOIF: Kein Trigger durch Eintreten von sunrise/sunset

Begonnen von heikoh81, 30 November 2015, 17:16:14

Vorheriges Thema - Nächstes Thema

heikoh81

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

Ellert

state ist seit 2015-11-27 21:46:03  auf  cmd_nr  1 .  Versuch mal das Attribut do always,

heikoh81

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.

heikoh81

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

Ellert

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.

heikoh81

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.