DOIF mit Zeit und Wochentag triggert nicht

Begonnen von Loki, 25 Januar 2018, 22:47:55

Vorheriges Thema - Nächstes Thema

Loki

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

KernSani

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)


RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Loki

Ok, danke für deine Einschätzung. Leider bringt es mich nicht weiter.

Worin liegt denn nun der Fehler?

nils_

am fehlenden do always (alternativ DOELSE)
viele Wege in FHEM es gibt!

KernSani

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.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...