[gelöst] Probleme mit WeekdayTimer

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

Vorheriges Thema - Nächstes Thema

JWRu

Mein WeekdayTimer, der monatelang einwandfrei funktioniert hat, macht plötzlich (nach einem Update vor einigen Tagen ??) Probleme.

Hier ein List (um 22:10 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         215
   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       1569959100.03821
           VALUE      28
       disabled:
         myDbLog:
           TIME       1569574064.55683
           VALUE      0
       nextUpdate:
         myDbLog:
           TIME       1569959100.03821
           VALUE      2019-10-01 22:55:00
       nextValue:
         myDbLog:
           TIME       1569959100.03821
           VALUE      20
       state:
         myDbLog:
           TIME       1569959100.03821
           VALUE      28
   READINGS:
     2019-10-01 21:45:00   currValue       28
     2019-09-27 10:47:44   disabled        0
     2019-10-01 21:45:00   nextUpdate      2019-10-01 22:55:00
     2019-10-01 21:45:00   nextValue       20
     2019-10-01 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
   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      1569903300
       PARA       28
       TIME       06:15
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     2:
       EPOCH      1569912300
       PARA       20
       TIME       08:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     3:
       EPOCH      1569959100
       PARA       28
       TIME       21:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     4:
       EPOCH      1569963300
       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


Die ersten drei Schaltungen um 6:15, 8:45 und 21:45 Uhr werden einwandfrei ausgeführt, die von 22:55 Uhr aber nicht. Trotz verbose 5 taucht im Log zu dieser Zeit nichts auf.
Im Reading nextUpdate steht danach immer noch 2019-10-01 22:55:00.

Hier ist ein List, das um 23:10 Uhr gezogen wurde:
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         215
   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       1569959100.03821
           VALUE      28
       disabled:
         myDbLog:
           TIME       1569574064.55683
           VALUE      0
       nextUpdate:
         myDbLog:
           TIME       1569959100.03821
           VALUE      2019-10-01 22:55:00
       nextValue:
         myDbLog:
           TIME       1569959100.03821
           VALUE      20
       state:
         myDbLog:
           TIME       1569959100.03821
           VALUE      28
   READINGS:
     2019-10-01 21:45:00   currValue       28
     2019-09-27 10:47:44   disabled        0
     2019-10-01 21:45:00   nextUpdate      2019-10-01 22:55:00
     2019-10-01 21:45:00   nextValue       20
     2019-10-01 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
   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      1569903300
       PARA       28
       TIME       06:15
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     2:
       EPOCH      1569912300
       PARA       20
       TIME       08:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     3:
       EPOCH      1569959100
       PARA       28
       TIME       21:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     4:
       EPOCH      1569963300
       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


Die Systemzeit stimmt übrigens genau.
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

Welche Version ist das?

Ich habe eben (@StrawberryPerl) einen Test mit folgenden Parametern gemacht, wie du an den Zeitstempeln sehen kannst, lief der auch am Ende sauber durch:

defmod testWDT WeekdayTimer sz_deckenlicht 10:05|on 10:06|off 10:07|on 10:08|off  10:09|on 10:10|off
attr testWDT commandTemplate set $NAME  $EVENT

setstate testWDT off
setstate testWDT 2019-10-02 10:10:00 currValue off
setstate testWDT 2019-10-02 10:10:00 nextUpdate 2019-10-03 10:05:00
setstate testWDT 2019-10-02 10:10:00 nextValue on
setstate testWDT 2019-10-02 10:10:00 state off


So einen richtigen Anpack sehe ich nicht, version lieferte Rev. 19806. Auch sonst gab es bisher keine Beschwerden in diese Richtung (und ich bin mir auch recht sicher, nichts geändert zu haben, was solche Auswirkungen haben könnte).
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

98_WeekdayTimer.pm     19806 2019-07-09 16:52:45Z Beta-User
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

Hmm, dann sollte das passen. Was ist denn der Status von Value("Status_Fussbodenheizung")?
Bei mir kommt in dem list nichts, was nach "delayed" klingt, vielleicht macht das den Unterschied. Das müßte dann aber aus dem Perl-Code kommen, was dann aber im Log stehten müßte. (Du sprichst doch vom FHEM-Log oder ist das Logfile des Devices gemeint?)

Sonst bin ich im Moment ratlos und würde das mal bei Gelegenheit auf einer Linux-Kiste nachstellen wollen (auch mit "if")...
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

#4
Es handelt sich um den FHEM-Log.
Status_Fussbodenheizung ist ein Dummy, der um 6:00 Uhr über ein at abhängig von Außentemperatur gesetzt wird. Der Status war am entsprechenden Tag "on".
Selbst wenn er "off" gewesen wäre, hätte doch irgendetwas im Log auftauchen müssen.
So sieht ein erfolgreicher Schaltvorgang im Log aus (verbose 5):
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] time=08:45/1569998700 delay=0, nextDelay=60, nextRetry=1569998760
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.02 08:45:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.02 08:45:00 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] Update   - timer seems to be active today: 0123456|08:45|20
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.10.02 08:45:00 4: [Timer_Fussbodenheizung] aktParam: newParam:20.0 - is  not disabled
2019.10.02 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.10.02 08:45:00 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 20

Ich habe jetzt mal die Vorversion von 98_WeekdayTimer.pm eingespielt (19567) und schaue mal, was heute Abend passiert.
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

#5
Puh, das ist vermutlich nicht weit genug zurück. Wann war denn davor das letzte update?

Würde sagen, du müßtest vor/wenigstens auf 19043 (eher noch weiter) zurück - das war im März nach der Änderung rund um $we... Dazwischen gab es nichts, was irgendwie mit der Timererstellung/Verarbeitung zu tun gehabt hätte.
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. Die Fußbodenheizung lief den Sommer über nicht, deshalb habe ich wohl nichts bemerkt.
Ich habe mal in ../restoreDir/update.. nachgeschaut: Ich habe 19567, 19043, 18591, 16005 ...
Mit 18591 ist es sicher noch gelaufen - das war im Februar.
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

JWRu

Mit 19567 hat's geklappt:

2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] time=22:55/1570049700 delay=0, nextDelay=60, nextRetry=1570049760
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond:0
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.02 22:55:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.02 22:55:00 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] Update   - timer seems to be active today: 0123456|22:55|20
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.10.02 22:55:00 4: [Timer_Fussbodenheizung] aktParam: newParam:20.0 - is  not disabled
2019.10.02 22:55: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=>20.0
2019.10.02 22:55:00 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 20
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

JWRu

#8
Seit dem Rückgang auf Version 19567 läuft bei mir wieder alles ohne Probleme. Das Problem hängt anscheinend an Version 19806.
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

Hmm,

sieht mir nach einem Problem mit dem letzten Wert aus, da scheint die Auswertung aus irgendeinem Grund nicht zu klappen, hier wurde was ähnliches berichtet: https://forum.fhem.de/index.php/topic,104272.0.html.
Kannst du die aktuelle Version nochmal nehmen  und als workaround mal einen "gedoppelten" Schaltzeitpunkt einfügen, nämlich 23:59 Uhr - 20°C?

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

Läuft - weitere Infos morgen.
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

JWRu

Mit 19806 hat jetzt alles geklappt, auch die letzte Schaltung um 23:59 Uhr. Ich versteh's auch nicht mehr.
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

Hmm, kannst du dann einfach nochmal den letzten Schaltzeitpunkt löschen?

(Wie geschrieben: mit meinem "normalen" Testdevice ging das auch reibungslos durch, dieses Problem konnte ich nicht so einfach nachstellen).
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

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

Danke für die Rückmeldung.

Kannst du das noch einige Zeit im Auge behalten? Wäre schon interessant, wie das list neulich zustande gekommen ist. Wie in dem anderen Thread berichtet, konnte ich auch bei intensiverer Analyse im Code bzw. beim Vergleich der Versionen nichts feststellen, das "sowas" verursacht haben könnte; allerdings ist der Code für mich auch etwas "undurchsichtig". Gerade deswegen beschränken sich die zwischenzeitlichen Änderungen auch auf das notwendigste (v.a. im Zusammenhang mit holiday2we).

(Wenn erst mal kein Handlungsbedarf mehr bestehen sollte, darfst du den Thread auch gerne als "vorläufig gelöst" kennzeichnen).

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

Heute hat die letzte Schaltung nicht geklappt. im Reading nextUpdate steht jetzt (um 23:00 Uhr) immer noch 22:55:00.
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

 :(

Wenn ich deine Symptome richtig deute, scheint das Problem erst am 2. Tag aufzutreten, richtig?

Ich werde mir mal den Code dahingehend nochmal ansehen, aber so einen richtigen Anpack habe ich nach wie vor nicht. Zwei Testszenarien sind denkbar:
1. zurück auf 19567 und da auch mal den 2. Tag abwarten (müßte eigentlich genauso _nicht_ funktionieren);
2. mit der aktuellen den weiteren Schaltzeitpunkt einbauen und dann mal schauen, ob das eine Änderung (ab dem 2. Tag) bewirkt...
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

#18
Das vermute ich auch.
Anscheinend muss WeekdayTimer einmal über die Aktion laufen, die um 00:00:05 Uhr passiert.
Im Log ist allerdings nichts Auffälliges zu sehen:
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_2
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_4
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_3
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_1
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] 07:03:54 19:21:06 Mittwoch
2019.10.09 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.10.09 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.10.09 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.10.09 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.10.09 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.10.09 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.10.09 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.10.09 00:00:05 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] Heating recognized - switch in the past activated
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|06:15|28
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_1 2019-10-09 06:15:00
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|08:45|20
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_2 2019-10-09 08:45:00
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|21:45|28
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_3 2019-10-09 21:45:00
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.09 00:00:05 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|22:55|20
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_4 2019-10-09 22:55:00
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_SetTimerOfDay
2019.10.09 00:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_SetTimerOfDay 2019-10-10 00:00:05


Ich teste jetzt mal Option 2 und melde mich am Freitag.
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

In dem Parallelthread habe ich eine Testversion gepostet. Bitte die mal austesten, und den Timer gleich auch mit "enable" zur Neuberechnung der Timer "ermuntern", dann brauchen wir nicht immer einen Tag zuzuwarten.

Allerdings habe ich da vorrangig das andere Thema im Auge gehabt, "dein" Problem könnte aber ein Seiteneffekt gewesen sein, wir werden sehen...
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

Test mit 19806 und zusätzlichem Schaltzeitpunkt um 23:59 Uhr ist jetzt gelaufen:
Am Tag der Änderung der Definition wird die letzte Schaltung um 23:59 Uhr ausgeführt, am darauffolgenden Tag nicht.
Ich teste jetzt mal die Testversion - Ergebnis am Sonntag.
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

Thx.

Eine Anmerkung evtl. noch: zur Doku sind bei einem WDT lists wirklich hilfreich. Wir werden allerdings mit der neuen Fassung gleich "am 2. Tag" starten, da dort das "enable" direkt ausgeführt wird. Eventuell wäre es eine Idee, die beiden Zeilen am Ende von "Start" noch auszukommentieren, ich bin da noch etwas unsicher, was die richtige Vorgehensweise an der Stelle 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

JWRu

Das ist das aktuelle List mit 19806:
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 23:59|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         215
   Profil 0: Sonntag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   Profil 1: Montag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   Profil 2: Dienstag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   Profil 3: Mittwoch 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   Profil 4: Donnerstag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   Profil 5: Freitag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   Profil 6: Samstag 06:15:00 28, 08:45:00 20, 21:45:00 28, 22:55:00 20, 23:59:00 20
   STATE      28
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     DBLOG:
       currValue:
         myDbLog:
           TIME       1570767300.03917
           VALUE      28
       nextUpdate:
         myDbLog:
           TIME       1570767300.03917
           VALUE      2019-10-11 08:45:00
       nextValue:
         myDbLog:
           TIME       1570767300.03917
           VALUE      20
       state:
         myDbLog:
           TIME       1570767300.03917
           VALUE      28
   READINGS:
     2019-10-11 06:15:00   currValue       28
     2019-10-06 09:34:11   disabled        0
     2019-10-11 06:15:00   nextUpdate      2019-10-11 08:45:00
     2019-10-11 06:15:00   nextValue       20
     2019-10-11 06:15:00   state           28
   SWITCHINGTIMES:
     06:15|28
     08:45|20
     21:45|28
     22:55|20
     23:59|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
     Timer_Fussbodenheizung_5:
       HASH       Timer_Fussbodenheizung
       MODIFIER   5
       NAME       Timer_Fussbodenheizung_5
       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
         23:59:00   20
       1:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
         23:59:00   20
       2:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
         23:59:00   20
       3:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
         23:59:00   20
       4:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
         23:59:00   20
       5:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
         23:59:00   20
       6:
         06:15:00   28
         08:45:00   20
         21:45:00   28
         22:55:00   20
         23:59:00   20
   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      1570767300
       PARA       28
       TIME       06:15
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     2:
       EPOCH      1570776300
       PARA       20
       TIME       08:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     3:
       EPOCH      1570823100
       PARA       28
       TIME       21:45
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     4:
       EPOCH      1570827300
       PARA       20
       TIME       22:55
       TAGE:
         0
         1
         2
         3
         4
         5
         6
     5:
       EPOCH      1570831140
       PARA       20
       TIME       23:59
       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
       23:59:00   5
     1:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
       23:59:00   5
     2:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
       23:59:00   5
     3:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
       23:59:00   5
     4:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
       23:59:00   5
     5:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
       23:59:00   5
     6:
       06:15:00   1
       08:45:00   2
       21:45:00   3
       22:55:00   4
       23:59:00   5
   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
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

Wirklich mysteriös. Unterstellt, das ist das list ohne Neustart am 3. Tag, steht der Schaltzeitpunkt ordnungsgemäß da... Und es ist kein Grund ersichtlich, warum der nicht ausgeführt werden sollte.
Dann glaube ich auch nicht recht daran, dass die neue Fassung an dem Befund was ändert. (*Kopfkratz*)
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

Dann gehe ich mal sukzessive auf die älteren Versionen zurück und teste die mal.
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

JWRu

#25
Ich war schon erfolgreich: Mit 19567 hat es auch am zweiten Tag geklappt.
Ich habe den Log mal durchgeschaut, wo es Unterschiede zwischen 19567 und 19806 gibt, und bin fündig geworden.

Dazu muss ich etwas ausholen:
Bei mir wird morgens um 6:00 Uhr über ein at abhängig von der aktuellen Außentemperatur und der Wettervorhersage der Dummy Status_Fussbodenheizung gesetzt:
Internals:
   COMMAND    { if ((Value("Urlaub") eq "off") && (ReadingsNum("Wettervorhersage","fc0_tempMax",0) < 25) && (ReadingsNum("Klima_aussen","temperature",0) < 17))
{ fhem("set Status_Fussbodenheizung on") } else { fhem("set Status_Fussbodenheizung off") } }
   DEF        *06:00 { if ((Value("Urlaub") eq "off") && (ReadingsNum("Wettervorhersage","fc0_tempMax",0) < 25) && (ReadingsNum("Klima_aussen","temperature",0) < 17))
{ fhem("set Status_Fussbodenheizung on") } else { fhem("set Status_Fussbodenheizung off") } }
   FUUID      5c447ba1-f33f-c1fa-cd2c-c8e90c3ff5ed3047
   NAME       Fussbodenheizung_set_status
   NR         153
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 06:00:00
   TIMESPEC   06:00
   TRIGGERTIME 1571025600
   TRIGGERTIME_FMT 2019-10-14 06:00:00
   TYPE       at
   READINGS:
     2019-10-13 06:00:00   state           Next: 06:00:00
Attributes:
   room       Badezimmer


Das löst ein notify aus, das Timer_Fussbodenheizung auf "enable" oder "disable" setzt:
Internals:
   DEF        Status_Fussbodenheizung.* { if ($EVENT eq "off")   {
fhem("set ZWave_THERMOSTAT_2 tmOff; set Timer_Fussbodenheizung disable");  }
  if (($EVENT eq "on") && (Value("Urlaub") eq "off")) {
    fhem("set ZWave_THERMOSTAT_2 tmHeating; set Timer_Fussbodenheizung enable") }
}
   FUUID      5c447ba1-f33f-c1fa-369b-36d2dbfff7346bf9
   NAME       notify_Fussbodenheizung
   NOTIFYDEV  Status_Fussbodenheizung.*
   NR         202
   NTFY_ORDER 50-notify_Fussbodenheizung
   REGEXP     Status_Fussbodenheizung.*
   STATE      2019-10-13 06:00:00
   TRIGGERTIME 1570939200.01378
   TYPE       notify
   READINGS:
     2019-10-11 09:25:15   state           active
Attributes:
   room       Badezimmer


Während der ganzen Tests waren übrigens die Bedingungen so, dass Timer_Fussbodenheizung immer auf "enable" gesetzt wurde:

In der Version 19806 sieht dieser Vorgang im Log so aus:
2019.10.08 06:00:00 3: [Timer_Fussbodenheizung] set Timer_Fussbodenheizung enable
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_2
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_4
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_1
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_3
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] 07:02:24 19:23:09 Dienstag
2019.10.08 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.10.08 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.10.08 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.10.08 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.10.08 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.10.08 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.10.08 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.10.08 06:00:00 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] Heating recognized - switch in the past activated
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|06:15|28
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_1 2019-10-08 06:15:00
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|08:45|20
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_2 2019-10-08 08:45:00
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|21:45|28
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_3 2019-10-08 21:45:00
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] setTimer - timer seems to be active today: 0123456|22:55|20
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_4 2019-10-08 22:55:00
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] time=22:55/1570568100 delay=-60900, nextDelay=-60780, nextRetry=1570507320
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.10.08 06:00:00 4: [Timer_Fussbodenheizung] past timer on ZWave_THERMOSTAT_2 at 2019-10-07 22:55:00 with  20 activated
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_delayed
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_delayed 2019-10-08 06:00:05
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_SetTimerOfDay
2019.10.08 06:00:00 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_SetTimerOfDay 2019-10-09 00:00:05
2019.10.08 06:00:05 4: ZWave_THERMOSTAT_2 2019-10-07 22:55:00 25505.1071169376s
2019.10.08 06:00:05 5: [Timer_Fussbodenheizung] removing Timer: Timer_Fussbodenheizung_4
2019.10.08 06:00:05 5: [Timer_Fussbodenheizung] setting  Timer: Timer_Fussbodenheizung_4 2019-10-07 22:55:00
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] time=22:55/1570568100 delay=-60895, nextDelay=-60780, nextRetry=1570507320
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] delayedExecutionCond:0
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] result of delayedExecutionCond: 0
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] list of window sensors found: 'Timer_Fussbodenheizung'
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:7,8
2019.10.08 06:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}();;;;( 1 && (defined $days->{$wday} ||  $we || !$we))}
2019.10.08 06:00:05 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] condition: - Tage:0,1,2,3,4,5,6
2019.10.08 06:00:05 5: [Timer_Fussbodenheizung] condition: {my $days={};;map{$days->{$_}=1}(0,1,2,3,4,5,6);;;;( 1 && (defined $days->{$wday}))}
2019.10.08 06:00:05 5: [Timer_Fussbodenheizung] result of condition:1
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] Update   - past timer activated
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] device type heating recognized, setModifier:desired-temp
2019.10.08 06:00:05 4: [Timer_Fussbodenheizung] aktParam: newParam:20.0 - is  not disabled
2019.10.08 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.10.08 06:00:05 3: ZWave set ZWave_THERMOSTAT_2 setpointHeating 20


in der Version 19567 so:
2019.10.12 06:00:00 3: [Timer_Fussbodenheizung] set Timer_Fussbodenheizung enable
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

Danke für die umfangreiche Fehleranalyse.

Ich versuche grade, den Code wieder in diese Richtung zu ändern, dabei aber die deutlich komplexere Auswertung, ob bzw. wann denn jetzt $we ist, (die mit 19806 kam) auf eine andere, zentrale Stelle zu verlagern (die dann auch nur einmal am Tag/auf Anforderung erneuert wird). Mal sehen, ob wir das damit dann in den Griff bekommen. Bis dahin habe ich weiter keine wirkliche Idee, warum diese Änderung diese Auswirkung hat ??? . Aber vielleicht komme ich noch drauf, es hilft mir jedenfalls schon mal deutlich weiter.
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

Lass dir Zeit - ich komme bis Ende nächster Woche eh nicht zum Testen.
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

JWRu

Gibt's schon eine neue Version? Ich bin jetzt wieder da und könnte was testen.
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

Es gibt zwar eine Testversion im Parallelthread, aber die dürfte dein Problem auch nicht beseitigen, die ist nur insofern besser, als die Auswertung, welche "relativen" Tage Wochenende sind, nur noch einmal am Tag bzw. bei "enable" gemacht werden und der Code auch gleich für den Tag initialisiert wird.

Tendenziell muß ich da nochmal grundlegender an den Code ran, hatte aber bisher nicht die mentale Ruhe für so eine "große Aktion". Ich melde mich, wenn es was wirklich neues gibt...
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

Thx. Auch hier die Info:

Durch den update, den ich eben ins svn geschubst habe, ist das ausdrücklich nicht behoben; der bringt nur etwas mehr Transparenz dahingehend, was das IsWe()-Umfeld so an Ergebnis liefert, verstetigt das intern für den einzelnen Tag und initialisiert die Timer etwas anders als bisher (das waren die Änderungen im Parallelthread) und ergänzt HMCCUDEV als FK-Typ (das war der eigentliche Anlaß).
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

Lelle

Hallo,

zur Info: Bei mir habe ich das gleiche Problem. Die WeekdayTimer Devices initialisieren nach einem Restart korrekt und setzen die Timer. (Den Restart habe ich jeden Nacht geplant.) Die ersten Timer funktionieren auch problemlos. Mir scheint, dass dann der aber der letzte Timer am Tag nicht mehr funktioniert. Keine Einträge im FHEM Log - als ob der Timer gelöscht wurde. Allerdings ist dies auch nicht immer durchgängig so. Ich habe trotz intensiver Beobachtung noch nicht herausgefunden, wann es für welches Device funktioniert und wann nicht. Mehrheitlich geht es aber nicht.


Beta-User

Hmm, irgendwie habe ich weiter keinen richtigen Anpack zu dem ganzen...

Lelle:
Irgendein Anhaltspunkt wäre hilfreich (ich nehme auch wilde Spekulationen entgegen...).
Leider scheint es auch nicht mit Zeilenumbrüchen in der DEF zu tun zu haben (siehe https://forum.fhem.de/index.php/topic,105272.msg992401.html#msg992401). Dafür kommt vermutlich demnächst auch wieder ein update (das euer Problem hier aber leider wieder nicht lösen wird).

Grundsätzlich aber die Frage: Muß ein Restart jede Nacht sein? Mein Server läuft in der Regel durch, wenn ich nicht grade irgendwas teste, und das mit dem Memory leak (da gab es einen Mega-Thread zu) scheint auch einigermaßen gelöst zu sein...
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

Mein Server läuft durch. Ich habe den Eindruck, dass wenn man einen Timer definiert oder die Definition ändert (z.B. die Zeiten) dieser an diesem Tag einwandfrei funktioniert. Erst an den darauffolgenden Tagen wird die letzte Schaltung nicht mehr ausgeführt.
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

Das ist echt irritierend, denn eigentlich sehe ich keinen wirklichen Unterschied, auf welchem Weg man die Timer generiert (ob durch die Mitternachtsroutine oder durch das Laden oder durch "set enable". Aber ich schau's mir nochmal an, irgendwo muß das ja herkommen.

Völlig doof ist, dass u.a. Lelle sporadische Ausfälle von einzelnen Timern zu haben scheint. Da ist es noch schwerer, das zu lokalisieren (jedenfalls für mich, aber evtl. hat ja jemand anders eine Idee?).
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

Lelle

Es ist etwa 19:30 Uhr und ich habe mir einen der WeekdayTimer angeschaut. Dieser hätte eigentlich um 17:00 Uhr den Thermostat auf 12 Grad runtersetzen sollen. Aktueller Status des Devices ist Folgender. Bitte die Readings in rot beachten:

defmod Heizung.AZ.Profil.Arbeiten WeekdayTimer AZ.Thermostat 12345|06:45|21 12345|17:00|12
attr Heizung.AZ.Profil.Arbeiten WDT_Group former_HC
attr Heizung.AZ.Profil.Arbeiten WDT_delayedExecutionDevices 1
attr Heizung.AZ.Profil.Arbeiten commandTemplate set $NAME thermostatSetpointSet $EVENT
attr Heizung.AZ.Profil.Arbeiten devStateIcon aktiv:10px-kreis-gruen undef:10px-kreis-gelb inaktiv:10px-kreis-grau
attr Heizung.AZ.Profil.Arbeiten disable 0
attr Heizung.AZ.Profil.Arbeiten group Heizung
attr Heizung.AZ.Profil.Arbeiten icon sani_heating_timer
attr Heizung.AZ.Profil.Arbeiten room Arbeitszimmer,Heizung,ZWave
attr Heizung.AZ.Profil.Arbeiten stateFormat { my $curVal = ReadingsVal("Heizung.AZ.Profil.Arbeiten", "disabled", "undef");;;;;;;; $curVal =~ s/.*0.*/aktiv/;;;;;;;; $curVal =~ s/.*1.*/inaktiv/;;;;;;;; return $curVal }
attr Heizung.AZ.Profil.Arbeiten verbose 1

setstate Heizung.AZ.Profil.Arbeiten aktiv
setstate Heizung.AZ.Profil.Arbeiten 2019-11-13 06:45:00 currValue 21
setstate Heizung.AZ.Profil.Arbeiten 2019-11-13 00:01:30 disabled 0
setstate Heizung.AZ.Profil.Arbeiten 2019-11-13 06:45:00 nextUpdate 2019-11-13 17:00:00
setstate Heizung.AZ.Profil.Arbeiten 2019-11-13 06:45:00 nextValue 12

setstate Heizung.AZ.Profil.Arbeiten 2019-11-13 06:45:00 state 21


Für mich sieht das genau danach aus, was auch passiert ist - nämlich nichts. Der Timer hat schlicht seinen Einsatz um 17:00 verpennt. Auch im Log ist für den Zeitpunkt nichts zu sehen (wobei aktuell keinen debug mode fahre).

Beta-User

#37
Hmm, hast du auch noch ein list? (Da stehen auch die Profile usw. drin).

FHEM-uptime ist > 20h? (Also "Mitternachts-Aktualisierung" ist durch?)

Hast du noch (je) einen Timer, der entweder
- noch eine Schaltung hat oder
- einen ausdrücklichen Schaltbefehl hinten angefügt hat?

Ich habe die Murmel "leider" heute morgen neu gestartet, das könnte das Ergebnis verfälschen. Jetzt habe ich mir mal alle Timer anzeigen lassen und zu meiner Überraschung festgestellt, dass nur einer der WDT einen laufenden "midnight-update-timer" hat (es sollten nach meinem Verständnis eigentlich alle sein, mindestens aber die, deren letzte Schaltzeit durch ist). Könnte darauf deuten, dass es evtl. Wechselwirkungen gibt, die mir bisher verborgen waren. Eventuell könnt ihr aber auch mal versuchen, etwas tiefer mit zu graben:

Befehl für die Kommandozeile - gibt alle laufenden InternalTimer aus, geordnet nach Schaltzeitpunkt:
{listInternalTimer("t")}
{listInternalTimer("f")}
Dazu braucht man eine passende myUtils-Routine aus dem Anhang (am einfachsten den Anhang nehmen und ins Modul-Verzeichnis mit den richtigen Rechten legen, da ist auch eine cref drin, Anzeige ohne commandref-Aktualisierung mit help.).
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

Lelle

Muss ich auf morgen verschieben. Sorry.

Beta-User

#39
Zitat von: Lelle am 13 November 2019, 20:22:00
Muss ich auf morgen verschieben. Sorry.
Kein Ding...

Habe übrigens festgestellt, dass der "listInternalTimer"-Code schuld war, dass nicht alles zu sehen war  >:( : Mit dem "t"-Argument wird nur der letzte Timer gelistet, der zu einem bestimmten Zeitpunkt ausgeführt werden soll... Besser "f" verwenden (oder gar nichts), da (mit "f" kommen dann auch alle zu einem Gerät gehörenden Timer nacheinander).
(Sorry, habe den Code auch nur woanders geklaut, Quelle ist angegeben...)

(Damit bin ich jetzt leider wieder kein Schrittchen weiter).

Frage: Kann es sein, dass die nicht funktionierenden WDT alle solche sind, die in der Vergangenheit schalten sollten (also entweder als Heizung erkannt werden oder das entsprechende Attribut aktiviert? (Dann müßte der Fehler tendenziell in Zeilen 702ff entstehen?)
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

#40
So, anbei eine aktualisierte Version mit der Bitte um Test...

Kann aber sein, dass da gewaltig was schiefgeht und/oder das nur das Problem der "doppelten timer" aus dem anderen Thread löst, bitte zur Sicherheit Kopie der aktuellen update-Version bereithalten.

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

Lelle

Erstmal anbei nochmals - aktuell - die Device Definition und das List. Ist die selbe Situation wie gestern: Die Schaltung wurde nicht vollzogen. Bei diesem Profile ist das fast immer der Fall ...

Zweitens habe ich das 99_myAdvancedUtils.pm in das FHEM Verzeichis kopiert und die Permissions/Owner entsprechend gesetzt. Leider bekomme ich die Routine listInternalTimer nicht zum Laufen. Fehler: Undefined subroutine &main::listInternalTimer called at (eval 10590) line 1.
Vermutlich habe ich etwas nicht beachtet ...  :-[ Bin leider nicht so tief drin ...

Drittens habe ich das neue WeekdayTimer Modul mal noch nicht eingespielt, weil ich erstmal die listInternalTimer Routine laufen lassen wollte.

Und zuletzt versuche ich noch ein Teil deiner Fragen zu beantworten :-) Meine WeekdayTimer Devices sind alle auf Thermostate bezogen. Sie sind alle wie Heizung.AZ.Profil.Arbeiten zusammengebaut, also [Wochentage]|[Uhrzeit]|[Temperatur] und ggf. weitere solche Einträge. Es gibt Profile, die mehrfach am Tag schalten. Z.B. Heizung.Kueche.Profil.Schule (siehe Anhang). Aber auch für dieses Profil gilt, dass der letzte Eintrag ***oft*** nicht schaltet. (Aktuell ist dieses Profil disabled, kann ich aber wieder einschalten.)

Weiß nicht, ob das nun weiterhilft ....

Beta-User

Dass das mit dem InternaltTimer-list-Code nicht wollte, hat vermutlich damit zu tun, dass FHEM die erst laden muss. Dazu am einfachsten entweder via FHEMWEB editieren (oder FHEM neu starten was wir aber grade nicht wollten...).

Habe grade die Testversion auch im Produktivsystem eingespielt, das sieht erst mal plausibel aus, was man da an timern sieht (nach "... WDT_parms all"). Offen ist aber noch, ob das auch am WE paßt. Wenn ja, kommt bald ein update :) .

Kann es sein, dass die die schalten alle "einfache" WDT sind, die kein WE kennen (oder zumindest an allen Wochentagen (mit !$we usw.)  durchlaufen)?
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

Lelle

anbei erstmal der ListInternalTimer Output

Lelle

So, habe nun das aktualisierte WDT Modul aktiviert und den dazu noch den nächtlichen Restart mal deaktiviert. Nun mal warten und hoffen :-)

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

Beta-User

Danke für eure Rückmeldungen. (Erleichterung...!)

Es wäre super, wenn ihr die letzte Testversion (mit der speziellen $we-Behandlung, von gestern nachmittag) auch nochmal mit testen könntet, dann würde ich die nämlich asap einchecken, wenn auch sonst keine negativen Rückmeldungen dazu kommen.

(Da sollte es von der anderen Testversion her kommend reichen, die Datei zu tauschen und einen Reload auszuführen).

Danke vorab auch dafür!
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

Wo finde ich die neueste Version?
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

Derzeit immer in dem "Konzept"-Thread https://forum.fhem.de/index.php/topic,105521.0.html.

Wenn ihr da Rückmeldung gebt, bekommt ihr es auch mit, wenn sich was neues ergibt ;) .
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, ist installiert. Test läuft.
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

Kann ich leider erst am we - bin unterwegs.

JWRu

Test war erfolgreich - die letzte Schaltung wurde auch am zweiten Tag ausgeführt!
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

Danke für eure Rückmeldungen bis dahin.

Dann warte ich mal, was Risiko in dem anderen Thread meint bzgl. des check-in-Termins.

Bitte melden, wenn noch was "seltsam" sein sollte, und wenn jemand das neue "|w"-Feature testen will/kann: Rückmeldung wäre super, wie ihr das findet?

Vielleicht zum Hintergrund: ich hatte bisher tendenziell nur $we/!$we-WDT im Einsatz und erst beim Testen mit weekprofile und der vorrangigen $we-Behandlung gemerkt, dass das uU. ein Thema sein könnte. Da die $we-Behandlung mit weekEnd und noWeekEnd zischenzeitlich sehr viel flexibler ist als früher, hatte ich den Verdacht, dass da irgendwann Ungereimtheiten und Probleme entstehen können. Kann aber auch sein, dass ich da was falsch interpretiert habe oder übersehe?

(Rückmeldungen dazu aber bitte im "Konzept"-Thread...)
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

Lelle

Hi Beta-User,
mit den Updates scheinen bei mir die Probleme allesamt verflogen zu sein. Die WDTs schalten, wie definiert. War schon am Zweifeln, wie lange ich die Installation überhaupt noch behalten sollte. Nun läuft es um Einiges zuverlässiger und ich bleib dabei.
Viele Grüße

JWRu

Mit Version 20634 läuft jetzt alles ohne Probleme. Ich setze den Thread auf "gelöst".
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