Wecker aktiviert nicht bei NoWeekend

Begonnen von Nighthawk, 28 September 2019, 01:19:59

Vorheriges Thema - Nächstes Thema

Nighthawk

Hallo,
da ich sporadisch auch Wochenenddienst habe, habe ich das neue Feature NoWeekend von Rudi in meiner Installation verwendet um den Wecker auch am Wochenende auslösen zu können.
Leider greift das DOIF nicht, obwohl {iswe()} als auch {$we} heute 0 liefern.
Wo könnte das Problem begraben liegen?


Hier das NoWeekend Device:

Internals:
   FUUID      5d1b4e6f-f33f-69d4-de29-fa916742814858c8
   HOLIDAYFILE ./FHEM/holiday/noWeekEnd.holiday
   NAME       noWeekEnd
   NR         172
   READONLY   1
   STATE      Einarbeiten
   TRIGGERTIME 1569686402.98404
   TYPE       holiday
   Helper:
     DBLOG:
       state:
         logdb:
           TIME       1569600002.98845
           VALUE      Einarbeiten
       tomorrow:
         logdb:
           TIME       1569600002.98845
           VALUE      none
       yesterday:
         logdb:
           TIME       1569600002.98845
           VALUE      none
   READINGS:
     2019-09-28 00:00:02   state           Einarbeiten
     2019-09-28 00:00:02   tomorrow        none
     2019-09-28 00:00:02   yesterday       none
Attributes:
   group      Termine


und hier ist das DOIF:

Internals:
   DEF        ([$SELF:P_einaus,"off"] eq "on" and [[$SELF:P_weckzeit,"12:00"]] and !$we) (set Radio on;set Radio volume 10)
   FUUID      5d4c1957-f33f-69d4-3147-3a6d70f2371f85d0
   MODEL      FHEM
   NAME       di.Wecker
   NOTIFYDEV  global,di.Wecker
   NR         174
   NTFY_ORDER 50-di.Wecker
   STATE      cmd_1
   TYPE       DOIF
   VERSION    20191 2019-09-18 19:19:29
   READINGS:
     2019-09-03 05:49:44   P_einaus        on
     2019-09-03 16:55:32   P_weckzeit      05:30
     2019-09-27 05:30:00   cmd             1
     2019-09-27 05:30:00   cmd_event       timer_1
     2019-09-27 05:30:00   cmd_nr          1
     2019-09-03 05:49:44   e_di.Wecker_P_einaus on
     2019-08-08 20:50:50   mode            enabled
     2019-09-27 05:30:00   state           cmd_1
     2019-09-28 05:30:00   timer_01_c01    29.09.2019 05:30:00
   Regex:
     accu:
     cond:
       di.Wecker:
         0:
           P_einaus   ^di.Wecker$:^P_einaus:
     itimer:
       di.Wecker:
         itimer:
           P_weckzeit ^di.Wecker$:^P_weckzeit:
   condition:
     0          ::ReadingValDoIf($hash,'di.Wecker','P_einaus','"off"') eq "on" and ::DOIF_time_once($hash,0,$wday) and !$we
   days:
   do:
     0:
       0          set Radio on;set Radio volume 10
     1:
   helper:
     event      timer_1
     globalinit 1
     last_timer 1
     sleeptimer -1
     triggerDev
     triggerEvents:
       timer_1
     triggerEventsState:
       timer_1
   interval:
   intervalfunc:
   localtime:
     0          1569706200
   perlblock:
   readings:
     all         di.Wecker:P_einaus
   realtime:
     0          05:30:00
   time:
     0          [di.Wecker:P_weckzeit,"12:00"]
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1569706200:
       localtime  1569706200
       hash:
   uiState:
   uiTable:
Attributes:
   alias      Wecker
   do         always
   group      Wecker
   readingList P_einaus P_weckzeit
   room       SZ
   setList    P_einaus:uzsuSelectRadio,on,off P_weckzeit:time
   webCmd     P_einaus:P_weckzeit



Gruß
Alex

amenomade

Wie spät ist es bei dir? Da wurde ein Reading in die Zukunft gesetzt??
Zitat2019-09-28 05:30:00   timer_01_c01    29.09.2019 05:30:00

Ich würde statt
and [[$SELF:P_weckzeit,"12:00"]] and !$we
eher
and [[$SELF:P_weckzeit,"12:00"]|8] schreiben.

Somit wird weckzeit nur bei !$we triggern.
Deine Variante triggert jeden Tag, und erst dann !$we bewertet.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Nighthawk

Hallo amenomade, danke für die Rückmeldung.

Die Zeit ist ok, ich befinde mich in einer anderen Zeitzone ;-)
Ist denn |8 analog zu !$we (auch in Bezug auf NoWeekend)?


Gruß
Alex

Beta-User

Afaik verwendet DOIF eine eigene Auswertung für $we und kennt daher eventuell noWeekend nicht (bzw. wertet das "falsch herum" aus).
Dass jedes Modul eine eigene Logik für $we benötigt hatte, war grade Anlaß für die Einführung von IsWe().
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

amenomade

#4
Ja, laut Doku sollte |8 gleich wie !$we sein. In Bezug auf noWeekend, weiss ich nicht.

@Beta-User: Du meinst !IsWe() könnte besser funktionieren als !$we ?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Damian

#5
DOIF kennt z. Zt. NoWeekend nicht. Ich werde die Auswertung des Wochentags im DOIF auf IsWe umstellen, damit es einheitlich funktioniert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Damian am 28 September 2019, 14:47:52
DOIF kennt z. Zt. NoWeekend nicht. Ich werde die Auswertung des Wochentags im DOIF auf IsWe umstellen, damit es einheitlich funktioniert.

Neue DOIF-Version eingecheckt.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Nighthawk

Hallo zusammen,

danke, werde ich ausprobieren wenn ich wieder daheim bin.

Gruß
Alex