[gelöst] Probleme mit WeekdayTimer

Begonnen von JWRu, 01 Oktober 2019, 23:16:25

Vorheriges Thema - Nächstes Thema

Beta-User

Hallo zusammen,

seit eben ist eine neue Version im svn (die hier gepostete mit aktualisierter Formatierung, entfernten Kommentaren usw.).

Bitte um Rückmeldung, wenn es damit Probleme geben sollte bzw. das Problem weiter besteht.

Gruß, Beta-User
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

JWRu

ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Beta-User

Ja.

Ablauf ist immer: Maintainer checkt was ins svn ein, jeden Morgen kurz vor 8:00 Uhr läuft ein Automatismus, der den Stand zu diesem Zeitpunkt dann für "update"-Anfragen aus FHEM bereitstellt.

Der Hinweis auf svn war bzw. ist jeweils nur für die gedacht, die gleich testen wollen; von da kann man es gleich nach dem Einchecken holen (bzw. in der Regel wenige Sekunden später).
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

JWRu

Ok, ich fange morgen mal mit dem Test an.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

butsify

Hi,

bei mir hat das Update definitiv eine Besserung gebracht. Von 5 Timern klappt es nun bei 4. Der 5. hatt noch keinen Log Eintrag (also vermutlich keinen Timer). Ich hab den nun einfach einmal gelöscht und nochmal angelegt - vielleicht bringt das ja was.

BG Tobias

JWRu

Ich habe gestern ein Update gemacht (Version zeigt 20533).
Leider hat heute Abend die letzte Schaltung wieder nicht geklappt.

Hier ein List (um 23:02 Uhr gezogen):
Internals:
   COMMAND    { if (Value("Status_Fussbodenheizung") eq "on") { my $Value = substr($EVENT,0,2); fhem("set $NAME setpointHeating $Value") } }
   CONDITION 
   DEF        ZWave_THERMOSTAT_2 06:15|28 08:45|20 21:45|28 22:55|20 { if (Value("Status_Fussbodenheizung") eq "on") { my $Value = substr($EVENT,0,2); fhem("set $NAME setpointHeating $Value") } }
   DEVICE     ZWave_THERMOSTAT_2
   FUUID      5c447ba1-f33f-c1fa-ad2b-49e10c535265c659
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       Timer_Fussbodenheizung
   NR         213
   Profil 0: Sonntag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   Profil 1: Montag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   Profil 2: Dienstag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   Profil 3: Mittwoch 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   Profil 4: Donnerstag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   Profil 5: Freitag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   Profil 6: Samstag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20
   STATE      28
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     DBLOG:
       currValue:
         myDbLog:
           TIME       1574369100.0426
           VALUE      28
       nextUpdate:
         myDbLog:
           TIME       1574369100.0426
           VALUE      2019-11-21 22:55:00
       nextValue:
         myDbLog:
           TIME       1574369100.0426
           VALUE      20
       state:
         myDbLog:
           TIME       1574369100.0426
           VALUE      28
   READINGS:
     2019-11-21 21:45:00   currValue       28
     2019-11-20 23:05:06   disabled        0
     2019-11-21 21:45:00   nextUpdate      2019-11-21 22:55:00
     2019-11-21 21:45:00   nextValue       20
     2019-11-21 21:45:00   state           28
   SWITCHINGTIMES:
     06:15|28
     08:45|20
     21:45|28
     22:55|20
   TIMER:
     Timer_Fussbodenheizung_1:
       HASH       Timer_Fussbodenheizung
       MODIFIER   1
       NAME       Timer_Fussbodenheizung_1
     Timer_Fussbodenheizung_2:
       HASH       Timer_Fussbodenheizung
       MODIFIER   2
       NAME       Timer_Fussbodenheizung_2
     Timer_Fussbodenheizung_3:
       HASH       Timer_Fussbodenheizung
       MODIFIER   3
       NAME       Timer_Fussbodenheizung_3
     Timer_Fussbodenheizung_4:
       HASH       Timer_Fussbodenheizung
       MODIFIER   4
       NAME       Timer_Fussbodenheizung_4
       immerSchalten 1
     Timer_Fussbodenheizung_SetTimerOfDay:
       HASH       Timer_Fussbodenheizung
       MODIFIER   SetTimerOfDay
       NAME       Timer_Fussbodenheizung_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     Timer_Fussbodenheizung_delayed:
       HASH       Timer_Fussbodenheizung
       MODIFIER   delayed
       NAME       Timer_Fussbodenheizung_delayed
   dayNumber:
     !$we       8
     $we        7
     di         2
     do         4
     fr         5
     mi         3
     mo         1
     sa         6
     so         0
   helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
       1:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
       2:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
       3:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
       4:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
       5:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
       6:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
     WEDAYS:
       2          1
       3          1
   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
   profil:
     1:
       EPOCH      1574313300
       PARA       28
       TIME       06:15
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     2:
       EPOCH      1574322300
       PARA       20
       TIME       08:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     3:
       EPOCH      1574369100
       PARA       28
       TIME       21:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     4:
       EPOCH      1574373300
       PARA       20
       TIME       22:55
       TAGE:
         0
         1
         2
         3
         4
         5
         6
   profile_IDX:
     0:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
     1:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
     2:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
     3:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
     4:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
     5:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
     6:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
   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
Attributes:
   commandTemplate set $NAME desired-temp $EVENT
   disable    0
   room       Badezimmer
   verbose    5


Man sieht, dass nextUpdate immer noch auf 22:55:00 steht.
Auch im Log ist nichts zu finden.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Beta-User

Nicht gut...

Habe mal versucht, das nachzustellen, allerdings mit der "weekprofile"-Version (die aber dieselben Probleme aufweisen müßte). Jedenfalls für Tag 1 konnte ich keine Probleme mit identischen Schaltzeitpunkten mehrerer WDT feststellen, die auf switchInThePast eingestellt waren.

Ist das bei euch auch so und das Problem tritt wieder nur ab Tag 2 auf?

Trotzdem mal noch ein paar weitere Fragen an euch, die ich vor dem Test mal gesammelt hatte:
- gibt es weitere WDT, die genau zur gleichen Zeit schalten sollen (und Heizungs-Devices bzw. timerInThePast aktiviert haben)? (also bei @butsify 1-3 unterschiedlich/kein TiP, 4+5 identische letzte Zeit und TiP); (@JWRu: hast du da evtl. einen anderen/weitere WDT definiert bzw. so geändert?) @Lelle: Schalten die 22:30-Uhr WDT's bei dir jetzt mit der aktuellen Version alle oder auch (nur einer?) nicht?
- Was die laufenden Timer angeht: lt. dem list von @JWRu sollten eigentlich delayed-Timer aktiv sein. Die Frage wäre, auf welcher Zeit der steht (er sollte eigentlich auf die kommende ganze Minute nach Aufruf der Funktion zur Timer-Abfrage gestellt sein). Meine Vermutung: der wird immer wieder aktualisiert, aber er führt die Schaltung nicht aus (die mit dem "immerSchalten"-Kenner). Wäre gut zu wissen, ob das so ist.
Außerdem wäre es hilfreich, wenn ihr die Timer mal zu Tagesbeginn bzw. jedenfalls vor der letzten Schaltung ansehen könntet. Das list deutet darauf hin, dass die timer alle gesetzt werden und bis zum letzten Schaltzeitpunkt auch alles ok ist.

Gruß, Beta-User
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

JWRu

Ich habe nur einen einzigen WDT.
Ich poste hier nochmal alle Log-Einträge des WDT von gestern (verbose 5).

Die Mitternachtsroutine:
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_4
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 07:08:37 17:13:07 Donnerstag
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 0: Sonntag)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 1: Montag)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 2: Dienstag)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 3: Mittwoch)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 4: Donnerstag)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 5: Freitag)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 6: Samstag)
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] Heating recognized - switch in the past activated
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|06:15|28
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_1 2019-11-21 06:15:00
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|08:45|20
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_2 2019-11-21 08:45:00
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|21:45|28
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_3 2019-11-21 21:45:00
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|22:55|20
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_4 2019-11-21 22:55:00
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_SetTimerOfDay
2019.11.21 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_SetTimerOfDay 2019-11-22 00:00:05


um 6:00 Uhr wird über ein at der WDT auf enable gesetzt:
2019.11.21 06:00:00 3: [Timer_Fussbodenheizung] set Timer_Fussbodenheizung enable
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_3
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_2
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_4
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_1
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 07:08:37 17:13:07 Donnerstag
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 0: Sonntag)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 1: Montag)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 2: Dienstag)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 3: Mittwoch)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 4: Donnerstag)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 5: Freitag)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20 (Profil 6: Samstag)
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] Heating recognized - switch in the past activated
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|06:15|28
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_1 2019-11-21 06:15:00
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|08:45|20
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_2 2019-11-21 08:45:00
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|21:45|28
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_3 2019-11-21 21:45:00
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|22:55|20
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_4 2019-11-21 22:55:00
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] time=22:55/1574373300 delay=-60900, nextDelay=-60780, nextRetry=1574312520
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] past timer on ZWave_THERMOSTAT_2 at 2019-11-20 22:55:00 with  20 activated
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_delayed
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_delayed 2019-11-21 06:00:05
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_SetTimerOfDay
2019.11.21 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_SetTimerOfDay 2019-11-22 00:00:05
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] ZWave_THERMOSTAT_2 2019-11-20 22:55:00 25505.0851130486s
2019.11.21 06:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_4
2019.11.21 06:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_4 2019-11-20 22:55:00
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] time=22:55/1574373300 delay=-60895, nextDelay=-60780, nextRetry=1574312520
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:8
2019.11.21 06:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} || !$we))}
2019.11.21 06:00:05 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 06:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 06:00:05 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] Update   - past timer activated
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] aktParam: newParam:20.0 - is not disabled
2019.11.21 06:00:05 4: [Timer_Fussbodenheizung] command: '{ if (Value("Status_Fussbodenheizung") eq "on") { my $Value = substr($EVENT,0,2);; fhem("set $NAME setpointHeating $Value") } }' executed with %NAME=>ZWave_THERMOSTAT_2,%EVENT=>20.0
2019.11.21 06:00:05 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 20


um 6:15 Uhr ist der erste Schaltzeitpunkt:
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] time=06:15/1574313300 delay=0, nextDelay=60, nextRetry=1574313360
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 06:15:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 06:15:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] Update   - timer seems to be active today: 0123456|06:15|28
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] aktParam: newParam:28.0 - is not disabled
2019.11.21 06:15:00 4: [Timer_Fussbodenheizung] command: '{ if (Value("Status_Fussbodenheizung") eq "on") { my $Value = substr($EVENT,0,2);; fhem("set $NAME setpointHeating $Value") } }' executed with %EVENT=>28.0,%NAME=>ZWave_THERMOSTAT_2
2019.11.21 06:15:00 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 28


um 8:45 Uhr der zweite:
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] time=08:45/1574322300 delay=0, nextDelay=60, nextRetry=1574322360
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 08:45:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 08:45:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] Update   - timer seems to be active today: 0123456|08:45|20
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] aktParam: newParam:20.0 - is not disabled
2019.11.21 08:45:00 4: [Timer_Fussbodenheizung] command: '{ if (Value("Status_Fussbodenheizung") eq "on") { my $Value = substr($EVENT,0,2);; fhem("set $NAME setpointHeating $Value") } }' executed with %EVENT=>20.0,%NAME=>ZWave_THERMOSTAT_2
2019.11.21 08:45:00 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 20


um 21:45 Uhr der dritte:
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] time=21:45/1574369100 delay=0, nextDelay=60, nextRetry=1574369160
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.11.21 21:45:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.11.21 21:45:00 5: [Timer_Fussbodenheizung] result of condition: 1
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] Update   - timer seems to be active today: 0123456|21:45|28
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] aktParam: newParam:28.0 - is not disabled
2019.11.21 21:45:00 4: [Timer_Fussbodenheizung] command: '{ if (Value("Status_Fussbodenheizung") eq "on") { my $Value = substr($EVENT,0,2);; fhem("set $NAME setpointHeating $Value") } }' executed with %NAME=>ZWave_THERMOSTAT_2,%EVENT=>28.0
2019.11.21 21:45:00 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 28


Wie schon erwähnt taucht für den vierten Schaltzeitpunkt um 22:55 Uhr nichts im Log auf.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

Beta-User

#53
Hmmm,
das sieht danach aus, als würde der Timer sauber gesetzt, das ganze kommt sich aber ins Gehege mit einem nicht abgearbeiteten (?) Timer vom Vortag (?):
Zitat2019.11.21 06:00:00 4: [Timer_Fussbodenheizung] time=22:55/1574373300 delay=-60900, nextDelay=-60780, nextRetry=1574312520
{localtime(1574373300)} ist korrekt 21.11., 22:55 Uhr, aber nextRetry liegt auf 06:02 Uhr...?!?

Es liegt also möglicherweise an der Verzögerung; dann sollte man den Timer auch am ersten Tag nach Ablauf der eigentlichen Schaltzeit noch sehen (das war jedenfalls bei meinen im Testsystem wie gesagt nicht der Fall), oder eben in dem "enable"-Befehl. Im letzteren Fall hatten wir es ursprünglich mit zwei Problemen zu tun, von denen das eine - zu viele Timer - gelöst sein müßte.

Da ich das in meinem Testsystem nicht nachvollziehen konnte und auch Probleme, hatte, Dinge zu loggen, folgende Bitten (verbose auf 5 lassen):

- Schau erst mal nach, ob alle theoretisch noch anstehenden Timer vorhanden sind (vermutlich fehlt der letzte?).
- Gibt es einen verzögerten ("delay" im Namem)?
- Dann mal ein "set ... enable" ausführen
-> ist was bzgl. des letzten Timers im log, das aussieht wie die Zeile oben?

Evtl. muß ich bei "enable" noch was einbauen, das eventuelle verzögerte Timer auch noch löscht. "Präventiv" will ich das aber nicht machen, das könnte nämlich auch ungewollte Nebenwirkungen haben, wenn tatsächlich noch was "übrig" ist vom Vortag; weiß nicht sicher, ob der WDT für den letzten Befehl in den Vortag geht, wenn swip aktiviert/das eine Heizung ist.

EDIT:
Um die "präventive Lösung" zu testen, kannst du mal eine Zeile für "delayed" in die sub WeekdayTimer_SetTimerOfDay($) einfügen:
    $hash->{SETTIMERATMIDNIGHT} = $myHash->{SETTIMERATMIDNIGHT};
    WeekdayTimer_DeleteTimer($hash);
    WeekdayTimer_RemoveInternalTimer("delayed", $hash);
    WeekdayTimer_Profile    ($hash);
    WeekdayTimer_SetTimer   ($hash);
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

Beta-User

Edit: Ich bin einen logischen Schritt weiter. Ursache ist tatsächlich, dass das Ding in der Vergangenheit schaltet, und zwar auch auf den Wert, der sich aus dem Vortag ergibt ;D .
Das ist an sich clever, nur geht dann der zukünftige Timer auch kaputt, weil er als abgearbeitet gilt. Das wiederum ist für Timer am denselben Tag clever, für Timer aus dem Vortag dagegen nicht sooo clever...

Muß das irgendwie abfangen, weiß aber noch nicht so recht wie.

Einstweilen der Hinweis: Diese Bedingung sollte sich auch anders lösen lassen wie über enable/disable (soll aber mittelfristig wieder funktionieren, das ist schon klar...).
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

butsify

Zitat von: JWRu am 21 November 2019, 23:05:24
Ich habe gestern ein Update gemacht (Version zeigt 20533).
Leider hat heute Abend die letzte Schaltung wieder nicht geklappt.

Kann ich nach dem 2. Tag auch bestätigen.

Zitat von: Beta-User am 22 November 2019, 16:20:14
Edit: Ich bin einen logischen Schritt weiter. Ursache ist tatsächlich, dass das Ding in der Vergangenheit schaltet, und zwar auch auf den Wert, der sich aus dem Vortag ergibt ;D .

Bin schon gespannt, ob es da eine Lösung geben wird  :)

Wenn ich irgendwelche Infos liefern kann, die hier vielleicht weiterhelfen, dann gib mir einfach Bescheid!

LG

Beta-User

So, immerhin eine Verbesserung, ob es "die" Lösung ist, wird sich zeigen.

Würde mich freuen, wenn ihr so mutig wärt, die Testversion von hier zu verwenden, die kann auch mit weekprofile-Temperaturlisten umgehen, es erfordert aber einen FHEM-Restart nach der Ersetzung der pm, also nicht wundern, wenn ein reload nicht klappen sollte...

Ansonsten müßte ich ein diff aus den zwei dort geposteten Versionen machen und damit die aktuelle Version patchen, aber das lohnt m.E. fast nicht, die "weekprofile"-Sache ergänzt den bisherigen Code nur und sollte für "klassische" Definitionen keine großen Risiken bergen (und wenn, wäre es gut, das rechtzeitig zu wissen...).

Gruß, Beta-User
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

butsify

Hab's gerade installiert - ich geb dir dann Rückmeldung, sobald ich ein aussagekräftiges Ergebnis habe.

Danke und BG,
Tobias

butsify

Tag 4 nach dem letzten Update und alles schaltet korrekt!  :)

Danke!

JWRu

Auch bei mir hat am zweiten Tag nach der Installation der Testversion alles geklappt.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter