Ankündigung+Testversion: Überarbeitung WeekdayTimer

Begonnen von Beta-User, 21 Mai 2020, 18:28:26

Vorheriges Thema - Nächstes Thema

Beta-User

#90
Zitat von: Beta-User am 30 April 2021, 12:19:09
Rückmeldung von Usern, die mehrere potentiell betroffene Geräte haben wäre super, in meiner Echtinstallation ist das Thema nicht wirklich von Bedeutung und daher schlecht zu testen.
Nanu?
Eine Woche um, und kein Download...?

Na ja, hier dann eine etwas im Hinblick auf "weaken" aktualisierte Version (https://forum.fhem.de/index.php/topic,120813.msg1154322.html#msg1154322).

Wäre nett, wenn jemand testen würde, ansonsten checke ich das irgendwann ein, wenn ich selbst keine Probleme feststelle...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

ToKa

Hallo Beta-User,

ich habe Deinen Post bzw. die neue Version gesehen, komme aber im Moment nicht dazu das Neustart-Verhalten zu testen.

VG
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Beta-User

OK, Danke für die Rückmeldung; dann warte ich mal ab, ggf. findet sich ja auch sonst jemand, den das Thema (bzw. die Themen) interessiert :) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

juemuc

3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Beta-User

Fyi: habe das (etwas überarbeitet) jetzt ins svn geschubst. Wäre nett, wenn ihr auch nochmal gegenchecken könntet (fhemdebug timerList), v.a., ob in etwas komplexeren (wechselseitig abhängigen) Situationen alle Timer sauber gesetzt werden, also insbesondere auch der jeweils letzte/späteste Timer des Tages auch vorhanden ist.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

helmut

Ich habe das Problem, dass bei "delete <device>" die Timer nicht geloescht werden und weiterhin aktiv bleiben.

98_WeekdayTimer.pm 24466 2021-05-18 05:26:03Z Beta-User

Das laesst sich einfach nachstellen:define wdt_dummy dummy
define wdt WeekdayTimer wdt_dummy de 01:00:00|on 02:00:00|off
delete wdt
define wdt WeekdayTimer wdt_dummy de 03:00:00|on 04:00:00|off
delete wdt
define wdt WeekdayTimer wdt_dummy de 05:00:00|on 06:00:00|off

list wdt:
Internals:
   CFGFN     
   COMMAND   
   CONDITION 
   DEF        wdt_dummy de 05:00:00|on 06:00:00|off
   DEVICE     wdt_dummy
   FUUID      60a3fca8-f33f-053c-230a-55260b408fe078ea
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wdt
   NR         3274
   Profil 0: Sonntag 05:00:00 on, 06:00:00 off,
   Profil 1: Montag 05:00:00 on, 06:00:00 off,
   Profil 2: Dienstag 05:00:00 on, 06:00:00 off,
   Profil 3: Mittwoch 05:00:00 on, 06:00:00 off,
   Profil 4: Donnerstag 05:00:00 on, 06:00:00 off,
   Profil 5: Freitag 05:00:00 on, 06:00:00 off,
   Profil 6: Samstag 05:00:00 on, 06:00:00 off,
   SETTIMERATMIDNIGHT 1
   STATE      off
   STILLDONETIME 0
   TYPE       WeekdayTimer
   .attraggr:
   .attrminint:
   .dayNumber:
     !$we       8
     $we        7
     di         2
     do         4
     fr         5
     mi         3
     mo         1
     sa         6
     so         0
   .longDays:
     de:
       Sonntag
       Montag
       Dienstag
       Mittwoch
       Donnerstag
       Freitag
       Samstag
       Wochenende
       Werktags
     en:
       Sunday
       Monday
       Tuesday
       Wednesday
       Thursday
       Friday
       Saturday
       weekend
       weekdays
     fr:
       Dimanche
       Lundi
       Mardi
       Mercredi
       Jeudi
       Vendredi
       Samedi
       weekend
       jours de la semaine
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   .shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   READINGS:
     2021-05-19 06:00:00   currValue       off
     2021-05-19 06:00:00   nextUpdate      2021-05-20 05:00:00
     2021-05-19 06:00:00   nextValue       on
     2021-05-19 06:00:00   state           off
   SWITCHINGTIMES:
     05:00:00|on
     06:00:00|off
   TIMER:
     wdt_1:
       HASH       wdt
       MODIFIER   1
       NAME       wdt_1
     wdt_2:
       HASH       wdt
       MODIFIER   2
       NAME       wdt_2
   helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         05:00:00   on
         06:00:00   off
       1:
         05:00:00   on
         06:00:00   off
       2:
         05:00:00   on
         06:00:00   off
       3:
         05:00:00   on
         06:00:00   off
       4:
         05:00:00   on
         06:00:00   off
       5:
         05:00:00   on
         06:00:00   off
       6:
         05:00:00   on
         06:00:00   off
     WEDAYS:
       3          1
       4          1
   profil:
     1:
       EPOCH      1621393200
       PARA       on
       TIME       05:00:00
       WE_Override 0
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     2:
       EPOCH      1621396800
       PARA       off
       TIME       06:00:00
       WE_Override 0
       TAGE:
         0
         1
         2
         3
         4
         5
         6
   profile_IDX:
     0:
       05:00:00   1
       06:00:00   2
     1:
       05:00:00   1
       06:00:00   2
     2:
       05:00:00   1
       06:00:00   2
     3:
       05:00:00   1
       06:00:00   2
     4:
       05:00:00   1
       06:00:00   2
     5:
       05:00:00   1
       06:00:00   2
     6:
       05:00:00   1
       06:00:00   2
Attributes:
   commandTemplate set $NAME  $EVENT
   verbose    5


Mit "fhemdebug timerList" sehe ich - in Erwartung eines - anschliessend drei Timer ...2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt

... die bis zum naechsten Restart auch aktiv sind. Hier ein halbstuendliches "fhemdebug timerList":
Date: Wed, 19 May 2021 00:00:02
2021-05-19 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-19 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-19 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 00:30:01
2021-05-19 01:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 02:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 01:00:02
2021-05-19 02:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 01:30:01
2021-05-19 02:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 02:00:02
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 02:30:01
2021-05-19 03:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 03:00:02
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 03:30:01
2021-05-19 04:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 04:00:02
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 04:30:02
2021-05-19 05:00:00.00000 WeekdayTimer_Update wdt_1
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 05:00:01
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 05:30:02
2021-05-19 06:00:00.00000 WeekdayTimer_Update wdt_2
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
Date: Wed, 19 May 2021 06:00:02
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt
2021-05-20 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt

Auszug aus dem Log:
2021.05.19 01:00:00.026 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>on
2021.05.19 02:00:00.008 4: [wdt] command: 'set $NAME  $EVENT' executed with %EVENT=>off,%NAME=>wdt_dummy
2021.05.19 03:00:00.013 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>on
2021.05.19 04:00:00.014 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>off
2021.05.19 05:00:00.013 4: [wdt] command: 'set $NAME  $EVENT' executed with %NAME=>wdt_dummy,%EVENT=>on
2021.05.19 06:00:00.011 4: [wdt] command: 'set $NAME  $EVENT' executed with %EVENT=>off,%NAME=>wdt_dummy

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Beta-User

Ups... Danke für den Hinweis!

Update kommt, wenn auch der andere Test heute nacht stressfrei durchläuft.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

helmut

Danke fuer die schnelle Reaktion.

Gruss Helmut

Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Beta-User

So, update ist im svn; bitte auch nochmal kritisch die Timer checken (fhemdebug timerList), v.a. dann auch wieder ab morgen/dem nächsten Tageswechsel (siehe https://forum.fhem.de/index.php/topic,114168.msg1157525.html#msg1157525).

Bei Gelegenheit muss ich dann den Code wieder aufräumen und denke, dann auch den lib-Ansatz aus https://forum.fhem.de/index.php/topic,120813.0.html auszubauen; mAn. ist die interne Timerverwaltung in WDT aus gutem Grund etwas "speziell", und das läßt sich kaum ohne "Ergänzung" der Bordmittel von InternalTimer bewerkstelligen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

helmut

Mein Problem ist gelöst und bei der Gelegenheit sogar ein sprechenderer Name herausgekommen.2021-05-21 00:00:05.00000 WeekdayTimer_SetTimerOfDay wdt_midnight
Danke.
Gruss Helmut

Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Beta-User

Danke für die Rückmeldung - auch zu dem Namensthema!

(Das andere "schöne" an der "lib-Lösung" ist übrigens , dass man die Parametrierung ohne Neusetzen des Timers noch ändern kann, also insbesondere weitere Elemente neben dem Label und dem Gerätehash im Hash ergänzen (oder wieder löschen)...)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files