DOIF: 2 Zeitintervalle in einer Abfrage funktionieren nicht wie sie sollen

Begonnen von Michi240281, 29 Januar 2020, 19:11:03

Vorheriges Thema - Nächstes Thema

Michi240281

Hallo zusammen,

folgendes DI tut nicht das was es soll:

(([{sunset_abs("HORIZON=-2",0,"16:00","19:30")}] -[23:30]) or ([05:00]-[{sunrise_abs("HORIZON=-2",0,"7:00","9:30")}])) (set Licht_Hecke an) DOELSE (set Licht_Hecke aus)


Das Heckenlicht soll halt abends in dem Zeitraum und morgens in dem Zeitraum an sein, allerdings ist es seltsamerweise dauerhaft an soweit ich das beobachtet habe.

Ein list zeigt aber an sich die 4 Zeitangaben für cmd1 richtig an...vielleicht habe ich auch einen Denkfehler.

Internals:
   DEF        (([{sunset_abs("HORIZON=-2",0,"16:00","19:30")}] -[23:30]) or ([05:00]-[{sunrise_abs("HORIZON=-2",0,"7:00","9:30")}])) (set Licht_Hecke an) DOELSE (set Licht_Hecke aus)
   FUUID      5c461a77-f33f-5e60-283d-dab7d7ec6ee17343
   MODEL      FHEM
   NAME       Licht_Hecke_DI
   NR         1009
   NTFY_ORDER 50-Licht_Hecke_DI
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2020-01-29 17:28:20   cmd             1
     2020-01-29 17:28:20   cmd_event       timer_1
     2020-01-29 17:28:20   cmd_nr          1
     2020-01-27 23:56:56   mode            enabled
     2020-01-29 17:28:20   state           cmd_1
     2020-01-29 17:28:20   timer_01_c01    30.01.2020 17:30:03
     2020-01-28 23:30:00   timer_02_c01    29.01.2020 23:30:00
     2020-01-29 05:00:00   timer_03_c01    30.01.2020 05:00:00
     2020-01-29 08:10:08   timer_04_c01    30.01.2020 08:08:48
   Regex:
   attr:
     cmdState:
     waitdel:
   condition:
     0          (::DOIF_time_once($hash,0,$wday) -::DOIF_time_once($hash,1,$wday)) or (::DOIF_time_once($hash,2,$wday)-::DOIF_time_once($hash,3,$wday))
   days:
   devices:
   do:
     0:
       0          set Licht_Hecke an
     1:
       0          set Licht_Hecke aus
   helper:
     event      timer_1
     globalinit 1
     last_timer 4
     sleeptimer -1
     timerdev   
     timerevent timer_1
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: timer_1
       state: cmd_1
     timerevents:
       timer_1
     triggerEvents:
       timer_1
   internals:
   interval:
   intervalfunc:
   itimer:
   localtime:
     0          1580401803
     1          1580337000
     2          1580356800
     3          1580368128
   readings:
   realtime:
     0          17:30:03
     1          23:30:00
     2          05:00:00
     3          08:08:48
   time:
     0          {sunset_abs("HORIZON=-2",0,"16:00","19:30")}
     1          23:30:00
     2          05:00:00
     3          {sunrise_abs("HORIZON=-2",0,"7:00","9:30")}
   timeCond:
     0          0
     1          0
     2          0
     3          0
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1  2  3
   triggertime:
     1580337000:
       localtime  1580337000
       hash:
     1580356800:
       localtime  1580356800
       hash:
     1580368128:
       localtime  1580368128
       hash:
     1580401803:
       localtime  1580401803
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Aussen


Jemand ne Idee?
FHEM auf QNAP per VM / HM LAN Adapter / diverse HM-Devices
QNAP TVS 463
VU+ Duo4kSE
Sony 75ZD9

amenomade

Man sieht deinen Fehler hier:
   condition:
     0          (::DOIF_time_once($hash,0,$wday) -::DOIF_time_once($hash,1,$wday)) or (::DOIF_time_once($hash,2,$wday)-::DOIF_time_once($hash,3,$wday))


Ein Zeitraum sieht so aus:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) or ...


Korrektur: ein Zeitraum schreibt man [zeit-zeit] und nicht ([zeit]-[zeit])
([{sunset_abs("HORIZON=-2",0,"16:00","19:30")}-23:30] or [05:00-{sunrise_abs("HORIZON=-2",0,"7:00","9:30")}]) (set Licht_Hecke an) DOELSE (set Licht_Hecke aus)

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus