FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: JamBay am 11 März 2020, 19:57:38

Titel: [gefixt] Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 11 März 2020, 19:57:38
Hallo,
hin und wieder, natürlich sehr unregelmäßig, stürzt mein FHEM komplett ab, wenn über 98_WeekdayTimer und weekprofile ein Thermostat umgestellt werden soll.
Im Log stehen dann jedesmal folgende Einträge:
2020.03.11 12:00:00 1: PERL WARNING: Use of uninitialized value $epoch in subtraction (-) at ./FHEM/98_WeekdayTimer.pm line 981.
2020.03.11 12:00:00 1: PERL WARNING: Use of uninitialized value $epoch in addition (+) at ./FHEM/98_WeekdayTimer.pm line 983.
2020.03.11 12:00:00 1: PERL WARNING: Use of uninitialized value $epoch in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 984.
2020.03.11 12:00:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 984.
Can't use an undefined value as an ARRAY reference at ./FHEM/98_WeekdayTimer.pm line 1146.
2020.03.11 12:01:32 1: Including fhem.cfg
2020.03.11 12:01:33 3: WEB: port 8083 opened
2020.03.11 12:01:33 2: eventTypes: loaded 3926 events from ./log/eventTypes.txt

2020.03.11 12:30:00 1: PERL WARNING: Use of uninitialized value $epoch in subtraction (-) at ./FHEM/98_WeekdayTimer.pm line 981.
2020.03.11 12:30:00 1: PERL WARNING: Use of uninitialized value $epoch in addition (+) at ./FHEM/98_WeekdayTimer.pm line 983.
2020.03.11 12:30:00 1: PERL WARNING: Use of uninitialized value $epoch in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 984.
2020.03.11 12:30:00 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 984.
Can't use an undefined value as an ARRAY reference at ./FHEM/98_WeekdayTimer.pm line 1146.
2020.03.11 12:31:32 1: Including fhem.cfg
2020.03.11 12:31:32 3: WEB: port 8083 opened
2020.03.11 12:31:32 2: eventTypes: loaded 3926 events from ./log/eventTypes.txt

Wie man sieht, ist es heute gleich zweimal passiert und darum schreibe ich jetzt hier.

'Normalerweise' passiert das alle paar Tage mal, damit könnte ich sogar leben, aber mehrmals pro Tag wäre zuviel für mich.
Es ist nicht immer derselbe WeekDayTimer, die Beispiel oben stammen von zwei verschiedenen Timern/Profilen/Thermostaten.
Es gibt insgesamt sechs Thermostate mit jeweils einem Weekdaytimer und einem weekprofile.

Nachfolgend jeweils die Definitionen für einen zusammenhängenden Satz WeekdayTimer, weekprofile und Thermostat:

defmod wt_TT_KUF WeekdayTimer TMT_KUF weekprofile:wp_TT_KUF
attr wt_TT_KUF alias Zeitschaltuhr Thermostat Küche
attr wt_TT_KUF commandTemplate set $NAME control $EVENT
attr wt_TT_KUF room RZ->Heizung,Räume->Küche
attr wt_TT_KUF switchInThePast 1

setstate wt_TT_KUF 16.0
setstate wt_TT_KUF 2020-03-11 18:45:02 currValue 16.0
setstate wt_TT_KUF 2020-03-11 18:45:02 nextUpdate 2020-03-12 00:10:00
setstate wt_TT_KUF 2020-03-11 18:45:02 nextValue 16.0
setstate wt_TT_KUF 2020-03-11 18:45:02 state 16.0
setstate wt_TT_KUF 2020-03-11 14:44:56 weekprofiles wp_TT_KUF:default:winter


defmod wp_TT_KUF weekprofile wt_TT_KUF
attr wp_TT_KUF group WeekProfile
attr wp_TT_KUF room RZ->Heizung
attr wp_TT_KUF tempOFF 4.0

setstate wp_TT_KUF created
setstate wp_TT_KUF 2020-03-11 18:45:02 profile_count 5
setstate wp_TT_KUF 2020-03-11 12:31:45 state created


defmod TMT_KUF HMCCUDEV HmIP-eTRV-2_KUF
attr TMT_KUF IODev myCCU3
attr TMT_KUF addLog voltage valve_position temperature_soll temperature_ist
attr TMT_KUF ccureadingfilter ^ACTUAL_TEMPERATURE|^BOOST_MODE|^SET_POINT_MODE|^SET_POINT_TEMPERATURE|^LEVEL|^WINDOW_STATE|^(LOW_?BAT|UNREACH)$|RSSI_DEVICE$|OPERATING_VOLTAGE$
attr TMT_KUF ccureadingname 1.LEVEL$:valve_position;;^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?UNREACH$:activity;;^(.+\.)?OPERATING_VOLTAGE$:voltage;;^(.+\.)?ACTUAL_TEMPERATURE$:temperature_ist;;^(.+\.)?SET_POINT_TEMPERATURE:temperature_soll
attr TMT_KUF ccuscaleval LEVEL:0:1:0:100
attr TMT_KUF controldatapoint 1.SET_POINT_TEMPERATURE
attr TMT_KUF eventMap /datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.CONTROL_MODE 2:Holiday/datapoint 1.CONTROL_MODE 1 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.CONTROL_MODE 0 1.SET_POINT_TEMPERATURE 30.5:on/
attr TMT_KUF genericDeviceType thermostat
attr TMT_KUF group Thermostat
attr TMT_KUF room RZ->Heizung,Räume->Küche
attr TMT_KUF statedatapoint 1.SET_POINT_TEMPERATURE
attr TMT_KUF stripnumber 1
attr TMT_KUF substexcl control
attr TMT_KUF substitute WINDOW_STATE!(0|false):closed,(1|true):open
attr TMT_KUF webCmd control:Boost:Auto:Manual:Holiday:on:off
attr TMT_KUF widgetOverride control:slider,4.5,0.5,30.5,1

setstate TMT_KUF 16.0
setstate TMT_KUF 2020-03-11 19:34:22 0.RSSI_DEVICE -57
setstate TMT_KUF 2020-03-11 19:34:23 1.ACTUAL_TEMPERATURE_STATUS 0
setstate TMT_KUF 2020-03-11 19:34:23 1.BOOST_MODE 0
setstate TMT_KUF 2020-03-11 19:34:23 1.LEVEL_STATUS 0
setstate TMT_KUF 2020-03-11 19:34:23 1.SET_POINT_MODE 1
setstate TMT_KUF 2020-03-11 19:34:23 1.WINDOW_STATE closed
setstate TMT_KUF 2020-03-11 19:34:22 activity 0
setstate TMT_KUF 2020-03-11 19:34:22 battery 0
setstate TMT_KUF 2020-03-11 19:34:23 control 16.0
setstate TMT_KUF 2020-03-11 19:34:23 hmstate 16.0
setstate TMT_KUF 2020-03-11 19:34:23 state 16.0
setstate TMT_KUF 2020-03-11 19:34:23 temperature_ist 21.8
setstate TMT_KUF 2020-03-11 19:34:23 temperature_soll 16.0
setstate TMT_KUF 2020-03-11 19:34:23 valve_position 0
setstate TMT_KUF 2020-03-11 19:34:22 voltage 2.9


Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: CoolTux am 11 März 2020, 20:11:48
Besser wäre immer ein list der Devices statt der def
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 11 März 2020, 20:44:09
Hmm, in dem Fall wäre noch interessant, was das Profil ist. Das stünde zwar auch in dem list, aber evtl. nicht vollständig, falls weekprofile irgendwas unerwartetes liefert...

Was also liefert bitte
get wp_TT_KUF  profile_data default:winter


Kannst du einen Zusammenhang zwischen einem bestimmten Profil und den Abstürzen erkennen?
Ggf: hast du die Profile über das widget erstellt oder manuell editiert?

Als Workaround dürfte es genügen, Zeile 980 so zu ergänzen (könnte aber andere Nebenwirkungen haben!):
my $epoch = $hash->{profil}{$time}{EPOCH}//int(time())-600;
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 12 März 2020, 07:41:40
Kannst du ggf. mal bitte die angehängte pm verwenden?

Da ist eine etwas längere Version des fixes von gestern drin, die ggf. eine Warnung ins log schreibt.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 12 März 2020, 17:38:59
@CoolTux sorry  8)

So dann zunächst mal der WeekdayTimer:
Internals:
   COMMAND   
   CONDITION 
   DEF        TMT_KUF weekprofile:wp_TT_KUF
   DEVICE     TMT_KUF
   FUUID      5dfce051-f33f-19fe-3f95-6574e505c4ecd348
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wt_TT_KUF
   NR         200
   Profil 0: Sonntag 00:10:00 16.0, 08:30:00 20.0, 10:00:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   Profil 1: Montag 00:10:00 16.0, 06:10:00 20.0, 07:30:00 16.0, 12:30:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   Profil 2: Dienstag 00:10:00 16.0, 06:10:00 20.0, 07:30:00 16.0, 12:30:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   Profil 3: Mittwoch 00:10:00 16.0, 06:10:00 20.0, 07:30:00 16.0, 12:30:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   Profil 4: Donnerstag 00:10:00 16.0, 06:10:00 20.0, 07:30:00 16.0, 12:30:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   Profil 5: Freitag 00:10:00 16.0, 06:10:00 20.0, 07:30:00 16.0, 12:30:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   Profil 6: Samstag 00:10:00 16.0, 08:30:00 20.0, 10:00:00 18.0, 17:30:00 20.0, 18:45:00 16.0
   STATE      18.0
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584012603.92073
           VALUE      18.0
   READINGS:
     2020-03-12 12:30:03   currValue       18.0
     2020-03-12 12:30:03   nextUpdate      2020-03-12 17:30:00
     2020-03-12 12:30:03   nextValue       20.0
     2020-03-12 12:30:03   state           18.0
     2020-03-12 12:23:52   weekprofiles    wp_TT_KUF:default:winter
   SWITCHINGTIMES:
     5|00:10|16.0
     5|06:10|20.0
     5|07:30|16.0
     5|12:30|18.0
     5|17:30|20.0
     5|18:45|16.0
     1|00:10|16.0
     1|06:10|20.0
     1|07:30|16.0
     1|12:30|18.0
     1|17:30|20.0
     1|18:45|16.0
     6|00:10|16.0
     6|08:30|20.0
     6|10:00|18.0
     6|17:30|20.0
     6|18:45|16.0
     0|00:10|16.0
     0|08:30|20.0
     0|10:00|18.0
     0|17:30|20.0
     0|18:45|16.0
     4|00:10|16.0
     4|06:10|20.0
     4|07:30|16.0
     4|12:30|18.0
     4|17:30|20.0
     4|18:45|16.0
     2|00:10|16.0
     2|06:10|20.0
     2|07:30|16.0
     2|12:30|18.0
     2|17:30|20.0
     2|18:45|16.0
     3|00:10|16.0
     3|06:10|20.0
     3|07:30|16.0
     3|12:30|18.0
     3|17:30|20.0
     3|18:45|16.0
   TIMER:
     wt_TT_KUF_26:
       HASH       wt_TT_KUF
       MODIFIER   26
       NAME       wt_TT_KUF_26
     wt_TT_KUF_27:
       HASH       wt_TT_KUF
       MODIFIER   27
       NAME       wt_TT_KUF_27
     wt_TT_KUF_28:
       HASH       wt_TT_KUF
       MODIFIER   28
       NAME       wt_TT_KUF_28
     wt_TT_KUF_SetTimerOfDay:
       HASH       wt_TT_KUF
       MODIFIER   SetTimerOfDay
       NAME       wt_TT_KUF_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     wt_TT_KUF_delayed:
       HASH       wt_TT_KUF
       MODIFIER   delayed
       NAME       wt_TT_KUF_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:
         00:10:00   16.0
         08:30:00   20.0
         10:00:00   18.0
         17:30:00   20.0
         18:45:00   16.0
       1:
         00:10:00   16.0
         06:10:00   20.0
         07:30:00   16.0
         12:30:00   18.0
         17:30:00   20.0
         18:45:00   16.0
       2:
         00:10:00   16.0
         06:10:00   20.0
         07:30:00   16.0
         12:30:00   18.0
         17:30:00   20.0
         18:45:00   16.0
       3:
         00:10:00   16.0
         06:10:00   20.0
         07:30:00   16.0
         12:30:00   18.0
         17:30:00   20.0
         18:45:00   16.0
       4:
         00:10:00   16.0
         06:10:00   20.0
         07:30:00   16.0
         12:30:00   18.0
         17:30:00   20.0
         18:45:00   16.0
       5:
         00:10:00   16.0
         06:10:00   20.0
         07:30:00   16.0
         12:30:00   18.0
         17:30:00   20.0
         18:45:00   16.0
       6:
         00:10:00   16.0
         08:30:00   20.0
         10:00:00   18.0
         17:30:00   20.0
         18:45:00   16.0
     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
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   profil:
     1:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         5
     10:
       EPOCH      1584012600
       PARA       18.0
       TIME       12:30
       WE_Override 0
       TAGE:
         1
     11:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         1
     12:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         1
     13:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         6
     14:
       EPOCH      1583998200
       PARA       20.0
       TIME       08:30
       WE_Override 0
       TAGE:
         6
     15:
       EPOCH      1584003600
       PARA       18.0
       TIME       10:00
       WE_Override 0
       TAGE:
         6
     16:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         6
     17:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         6
     18:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         0
     19:
       EPOCH      1583998200
       PARA       20.0
       TIME       08:30
       WE_Override 0
       TAGE:
         0
     2:
       EPOCH      1583989800
       PARA       20.0
       TIME       06:10
       WE_Override 0
       TAGE:
         5
     20:
       EPOCH      1584003600
       PARA       18.0
       TIME       10:00
       WE_Override 0
       TAGE:
         0
     21:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         0
     22:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         0
     23:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         4
     24:
       EPOCH      1583989800
       PARA       20.0
       TIME       06:10
       WE_Override 0
       TAGE:
         4
     25:
       EPOCH      1583994600
       PARA       16.0
       TIME       07:30
       WE_Override 0
       TAGE:
         4
     26:
       EPOCH      1584012600
       PARA       18.0
       TIME       12:30
       WE_Override 0
       TAGE:
         4
     27:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         4
     28:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         4
     29:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         2
     3:
       EPOCH      1583994600
       PARA       16.0
       TIME       07:30
       WE_Override 0
       TAGE:
         5
     30:
       EPOCH      1583989800
       PARA       20.0
       TIME       06:10
       WE_Override 0
       TAGE:
         2
     31:
       EPOCH      1583994600
       PARA       16.0
       TIME       07:30
       WE_Override 0
       TAGE:
         2
     32:
       EPOCH      1584012600
       PARA       18.0
       TIME       12:30
       WE_Override 0
       TAGE:
         2
     33:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         2
     34:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         2
     35:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         3
     36:
       EPOCH      1583989800
       PARA       20.0
       TIME       06:10
       WE_Override 0
       TAGE:
         3
     37:
       EPOCH      1583994600
       PARA       16.0
       TIME       07:30
       WE_Override 0
       TAGE:
         3
     38:
       EPOCH      1584012600
       PARA       18.0
       TIME       12:30
       WE_Override 0
       TAGE:
         3
     39:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         3
     4:
       EPOCH      1584012600
       PARA       18.0
       TIME       12:30
       WE_Override 0
       TAGE:
         5
     40:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         3
     5:
       EPOCH      1584030600
       PARA       20.0
       TIME       17:30
       WE_Override 0
       TAGE:
         5
     6:
       EPOCH      1584035100
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         5
     7:
       EPOCH      1583968200
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         1
     8:
       EPOCH      1583989800
       PARA       20.0
       TIME       06:10
       WE_Override 0
       TAGE:
         1
     9:
       EPOCH      1583994600
       PARA       16.0
       TIME       07:30
       WE_Override 0
       TAGE:
         1
   profile_IDX:
     0:
       00:10:00   18
       08:30:00   19
       10:00:00   20
       17:30:00   21
       18:45:00   22
     1:
       00:10:00   7
       06:10:00   8
       07:30:00   9
       12:30:00   10
       17:30:00   11
       18:45:00   12
     2:
       00:10:00   29
       06:10:00   30
       07:30:00   31
       12:30:00   32
       17:30:00   33
       18:45:00   34
     3:
       00:10:00   35
       06:10:00   36
       07:30:00   37
       12:30:00   38
       17:30:00   39
       18:45:00   40
     4:
       00:10:00   23
       06:10:00   24
       07:30:00   25
       12:30:00   26
       17:30:00   27
       18:45:00   28
     5:
       00:10:00   1
       06:10:00   2
       07:30:00   3
       12:30:00   4
       17:30:00   5
       18:45:00   6
     6:
       00:10:00   13
       08:30:00   14
       10:00:00   15
       17:30:00   16
       18:45:00   17
   shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   weekprofiles:
     wp_TT_KUF:
       PROFILE    default:winter
       PROFILE_JSON {"Wed":{"time":["06:10","07:30","12:30","17:30","18:45","24:00"],"temp":["16.0","20.0","16.0","18.0","20.0","16.0"]},"Sun":{"time":["08:30","10:00","17:30","18:45","24:00"],"temp":["16.0","20.0","18.0","20.0","16.0"]},"Fri":{"time":["06:10","07:30","12:30","17:30","18:45","24:00"],"temp":["16.0","20.0","16.0","18.0","20.0","16.0"]},"Sat":{"temp":["16.0","20.0","18.0","20.0","16.0"],"time":["08:30","10:00","17:30","18:45","24:00"]},"Mon":{"temp":["16.0","20.0","16.0","18.0","20.0","16.0"],"time":["06:10","07:30","12:30","17:30","18:45","24:00"]},"Thu":{"temp":["16.0","20.0","16.0","18.0","20.0","16.0"],"time":["06:10","07:30","12:30","17:30","18:45","24:00"]},"Tue":{"time":["06:10","07:30","12:30","17:30","18:45","24:00"],"temp":["16.0","20.0","16.0","18.0","20.0","16.0"]}}
       SunAsWE    0
       PROFILE_DATA:
         Fri:
           temp:
             16.0
             20.0
             16.0
             18.0
             20.0
             16.0
           time:
             06:10
             07:30
             12:30
             17:30
             18:45
             24:00
         Mon:
           temp:
             16.0
             20.0
             16.0
             18.0
             20.0
             16.0
           time:
             06:10
             07:30
             12:30
             17:30
             18:45
             24:00
         Sat:
           temp:
             16.0
             20.0
             18.0
             20.0
             16.0
           time:
             08:30
             10:00
             17:30
             18:45
             24:00
         Sun:
           temp:
             16.0
             20.0
             18.0
             20.0
             16.0
           time:
             08:30
             10:00
             17:30
             18:45
             24:00
         Thu:
           temp:
             16.0
             20.0
             16.0
             18.0
             20.0
             16.0
           time:
             06:10
             07:30
             12:30
             17:30
             18:45
             24:00
         Tue:
           temp:
             16.0
             20.0
             16.0
             18.0
             20.0
             16.0
           time:
             06:10
             07:30
             12:30
             17:30
             18:45
             24:00
         Wed:
           temp:
             16.0
             20.0
             16.0
             18.0
             20.0
             16.0
           time:
             06:10
             07:30
             12:30
             17:30
             18:45
             24:00
Attributes:
   alias      Zeitschaltuhr Thermostat Küche
   commandTemplate set $NAME control $EVENT
   room       RZ->Heizung,Räume->Küche
   switchInThePast 1


Dann das weekprofile:
Internals:
   CONFIGFILE ./log/weekprofile-wp_TT_KUF.cfg
   DEF        wt_TT_KUF
   FUUID      5dfce0d9-f33f-19fe-cb14-dd42b600791f3687
   NAME       wp_TT_KUF
   NR         201
   NTFY_ORDER 50-wp_TT_KUF
   STATE      created
   TYPE       weekprofile
   MASTERDEV:
     NAME       wt_TT_KUF
   PROFILES:
     HASH(0x62a7e60)
     HASH(0x62a7fb0)
     HASH(0x62aaab8)
     HASH(0x62ab088)
     HASH(0x62b8580)
   READINGS:
     2020-03-12 12:30:03   profile_count   5
     2020-03-11 12:31:45   state           created
   SNDDEVLIST:
     HASH(0x62ab538)
     HASH(0x62ab598)
     HASH(0x62ab5f8)
     HASH(0x62ab658)
     HASH(0x62b7890)
     HASH(0x62b78f0)
     HASH(0x62b7950)
     HASH(0x62b79b0)
     HASH(0x62b7a10)
     HASH(0x62b7a70)
     HASH(0x62b7ad0)
     HASH(0x62b7b30)
     HASH(0x62b7b90)
     HASH(0x62b7bf0)
     HASH(0x62b7c50)
     HASH(0x62b7cb0)
     HASH(0x62b7d10)
     HASH(0x62b7d70)
     HASH(0x62b7dd0)
   TOPICS:
     default
Attributes:
   group      WeekProfile
   room       RZ->Heizung
   tempOFF    4.0


Dann das Thermostat:

Internals:
   DEF        HmIP-eTRV-2_KUF
   FUUID      5e5e62d6-f33f-19fe-e449-fea9e6634d0d9e53
   IODev      myCCU3
   NAME       TMT_KUF
   NR         251
   STATE      20.0
   STILLDONETIME 0
   TYPE       HMCCUDEV
   ccuaddr    000A18A996E1CD
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HmIP-eTRV-2_KUF
   ccutype    HmIP-eTRV-2
   channels   8
   firmware   2.2.8
   statevals  devstate
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584030608.60967
           VALUE      20.0
       temperature_ist:
         LogDB:
           TIME       1584030608.60967
           VALUE      20.7
       temperature_soll:
         LogDB:
           TIME       1584030608.60967
           VALUE      20.0
       valve_position:
         LogDB:
           TIME       1584030608.60967
           VALUE      0
       voltage:
         LogDB:
           TIME       1584030608.60967
           VALUE      2.9
   READINGS:
     2020-03-12 17:30:08   0.RSSI_DEVICE   -64
     2020-03-12 17:30:08   1.ACTUAL_TEMPERATURE_STATUS 0
     2020-03-12 17:30:08   1.BOOST_MODE    0
     2020-03-12 17:30:08   1.LEVEL_STATUS  0
     2020-03-12 17:30:08   1.SET_POINT_MODE 1
     2020-03-12 17:30:08   1.WINDOW_STATE  closed
     2020-03-12 17:30:08   activity        0
     2020-03-12 17:30:08   battery         0
     2020-03-12 17:30:08   control         20.0
     2020-03-12 17:30:08   hmstate         20.0
     2020-03-12 17:30:08   state           20.0
     2020-03-12 17:30:08   temperature_ist 20.7
     2020-03-12 17:30:08   temperature_soll 20.0
     2020-03-12 17:30:08   valve_position  0
     2020-03-12 17:30:08   voltage         2.9
   hmccu:
     devspec    HmIP-eTRV-2_KUF
     dp:
       0.CONFIG_PENDING:
         OVAL       0
         VAL        0
       0.DUTY_CYCLE:
         OVAL       0
         VAL        0
       0.INSTALL_TEST:
         OVAL       true
         VAL        true
       0.LOW_BAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.OPERATING_VOLTAGE:
         OSVAL      2.9
         OVAL       2.9
         SVAL       2.9
         VAL        2.9
       0.OPERATING_VOLTAGE_STATUS:
         OVAL       0
         VAL        0
       0.RSSI_DEVICE:
         OSVAL      -62
         OVAL       -62
         SVAL       -64
         VAL        -64
       0.RSSI_PEER:
         OVAL       -63
         VAL        -72
       0.UNREACH:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.UPDATE_PENDING:
         OVAL       false
         VAL        false
       1.ACTIVE_PROFILE:
         OVAL       1
         VAL        1
       1.ACTUAL_TEMPERATURE:
         OSVAL      20.6
         OVAL       20.6
         SVAL       20.7
         VAL        20.7
       1.ACTUAL_TEMPERATURE_STATUS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.BOOST_MODE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.BOOST_TIME:
         OVAL       0
         VAL        0
       1.FROST_PROTECTION:
         OVAL       0
         VAL        0
       1.LEVEL:
         OSVAL      0
         OVAL       0.0
         SVAL       0
         VAL        0.0
       1.LEVEL_STATUS:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.PARTY_MODE:
         OVAL       0
         VAL        0
       1.PARTY_SET_POINT_TEMPERATURE:
         OVAL       0.000000
         VAL        0.000000
       1.PARTY_TIME_END:
         OVAL       
         VAL       
       1.PARTY_TIME_START:
         OVAL       
         VAL       
       1.QUICK_VETO_TIME:
         OVAL       0
         VAL        0
       1.SET_POINT_MODE:
         OSVAL      1
         OVAL       1
         SVAL       1
         VAL        1
       1.SET_POINT_TEMPERATURE:
         OSVAL      18.0
         OVAL       18.0
         SVAL       20.0
         VAL        20.0
       1.SWITCH_POINT_OCCURED:
         OVAL       0
         VAL        0
       1.VALVE_ADAPTION:
         OVAL       false
         VAL        false
       1.VALVE_STATE:
         OVAL       4
         VAL        4
       1.WINDOW_STATE:
         OSVAL      closed
         OVAL       0
         SVAL       closed
         VAL        0
Attributes:
   IODev      myCCU3
   addLog     voltage valve_position temperature_soll temperature_ist
   ccureadingfilter ^ACTUAL_TEMPERATURE|^BOOST_MODE|^SET_POINT_MODE|^SET_POINT_TEMPERATURE|^LEVEL|^WINDOW_STATE|^(LOW_?BAT|UNREACH)$|RSSI_DEVICE$|OPERATING_VOLTAGE$
   ccureadingname 1.LEVEL$:valve_position;^(.+\.)?LOW_?BAT$:battery;^(.+\.)?UNREACH$:activity;^(.+\.)?OPERATING_VOLTAGE$:voltage;^(.+\.)?ACTUAL_TEMPERATURE$:temperature_ist;^(.+\.)?SET_POINT_TEMPERATURE:temperature_soll
   ccuscaleval LEVEL:0:1:0:100
   controldatapoint 1.SET_POINT_TEMPERATURE
   eventMap   /datapoint 1.BOOST_MODE true:Boost/datapoint 1.CONTROL_MODE 0:Auto/datapoint 1.CONTROL_MODE 1:Manual/datapoint 1.CONTROL_MODE 2:Holiday/datapoint 1.CONTROL_MODE 1 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.CONTROL_MODE 0 1.SET_POINT_TEMPERATURE 30.5:on/
   genericDeviceType thermostat
   group      Thermostat
   room       RZ->Heizung,Räume->Küche
   statedatapoint 1.SET_POINT_TEMPERATURE
   stripnumber 1
   substexcl  control
   substitute WINDOW_STATE!(0|false):closed,(1|true):open
   webCmd     control:Boost:Auto:Manual:Holiday:on:off
   widgetOverride control:slider,4.5,0.5,30.5,1


Und schließlich das Profil:
{"Wed":{"time":["06:10","07:30","12:30","17:30","18:45","24:00"],"temp":["16.0","20.0","16.0","18.0","20.0","16.0"]},"Sun":{"time":["08:30","10:00","17:30","18:45","24:00"],"temp":["16.0","20.0","18.0","20.0","16.0"]},"Fri":{"time":["06:10","07:30","12:30","17:30","18:45","24:00"],"temp":["16.0","20.0","16.0","18.0","20.0","16.0"]},"Sat":{"temp":["16.0","20.0","18.0","20.0","16.0"],"time":["08:30","10:00","17:30","18:45","24:00"]},"Mon":{"temp":["16.0","20.0","16.0","18.0","20.0","16.0"],"time":["06:10","07:30","12:30","17:30","18:45","24:00"]},"Thu":{"temp":["16.0","20.0","16.0","18.0","20.0","16.0"],"time":["06:10","07:30","12:30","17:30","18:45","24:00"]},"Tue":{"time":["06:10","07:30","12:30","17:30","18:45","24:00"],"temp":["16.0","20.0","16.0","18.0","20.0","16.0"]}}

Das Profil wurde mit dem Widget erstellt.
I.d.R ist das Profil winter aktiv, aber die Profile wurde alle mit dem Widget erstellt und dann über die Kopierfunktion zwischen den devices und Tagen und Profilen übertragen und angepasst.
Vielleicht sollte ich noch dazu sagen, dass das Profil default, also get wp_TT_KUF  profile_data default:winter leer ist, das ergibt nur "".
Das Profile default wird von mir aber zu keiner Zeit aufgerufen.

Ich werde mal die angehängte pm versuchen, da der Fehler sich aber nicht provozieren lässt und zu den unterschiedlichsten Zeiten auftreten kann,
bzw. es ist immer eine Umschaltzeit eines beliebigen Thermostates, bliebt nur warten.

Edit:
Ich habe die Log-Meldung etwas vergrößert, jetzt sollte FHEM ja nicht mehr abstürzen und ich bekomme das nicht automatisch mit beim FHEM Neustart :)
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 12 März 2020, 19:52:51
Komme grade auch nicht dahinter, das betreffende Profil sieht ja ok aus.

Was "log-Meldung etwas vergrößert" heißt, wäre eventuell interessant, aber m.E. ist es ein schwerwiegender Fehler, wenn man Abstürze vermeiden muß, weil irgendwas nicht paßt, daher finde ich für's erste "0" eigentlich passend, kann ich ja ggf. immer noch anheben.

Die Erweiterung mit der logmeldung habe ich eben eingecheckt, es hatte vor einigen Tagen noch jemand über sowas ähnliches berichtet, und das ist schließlich nicht Sinn der Sache, dass man FHEM neu starten muß, lieber würde ich den tieferen Grund erfahren...

Nachtrag:
(Hmm, vielleicht dauert es sehr gelegentlich zu lange, bis eine Antwort kommt? Aber das sollte an anderer Stelle abgefangen sein..? Muß mal nachschauen.
Wenn Du andere Indizien haben solltest, dass FHEM gelegentlich hängt: her damit..)
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 13 März 2020, 13:15:27
Das bedeutet vergrößert:
  unless ($epoch) {                             #prevent FHEM crashing when profile is somehow damaged or incomlete, forum #109164
    Log3 $hash, 0, "#########################################################################################";
    Log3 $hash, 0, "#########################################################################################";
    Log3 $hash, 0, "[$name] profile $time seems to be somehow damaged or incomlete!";
    Log3 $hash, 0, "#########################################################################################";
    Log3 $hash, 0, "#########################################################################################";
    $epoch = int(time()) - 10*MINUTESECONDS;
  }

damit ich es sofort im Log erkenne.

Bitte nicht missverstehen, ich muss FHEM nicht neu starten, das hat selbstständig neu gestartet, wobei der pi weiter gelaufen ist.

Bis gerade eben ist noch nichts aufgetreten, aber ich beobachte.

Von gelegentlichen Hängern habe ich noch nichts mit bekommen.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 13 März 2020, 13:44:51
Ah, I see ;D .

Via update gäbe es das nicht ganz so "vergrößert", dafür aber mit der Info, welches Profil grade aktiv war. Kannst diese Datei gerne "vergößern" oder die Meldung etwas erweitern, das wäre dann:
my $actual_wp_reading = ReadingsVal($name,"weekprofiles","none");
Log3 $hash, 0, "[$name] profile $actual_wp_reading, item $time seems to be somehow damaged or incomlete!"

(aber eigentich wäre das Suchen nach dem Fehlertext zum Wiederfinden doch ausreichend, oder?)

Was mich immer noch irritiert, ist dass das "get" einen Leerstring geliefert haben soll; das widerspricht dem list des WDT; und wenn kein entsprechendes Profil vorhanden ist, gibt es eine entsprechende Rückmeldung, die der WDT eigentlich auch passend auswerten sollte. Jedenfalls auf die Schnelle habe ich auch nichts gefunden, was darauf hindeuten könnte, dass weekprofile an der Stelle geändert worden wäre...

Bin etwas ratlos, aber wir werden sehen...
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 13 März 2020, 17:58:22
Zitat von: JamBay am 12 März 2020, 17:38:59
Vielleicht sollte ich noch dazu sagen, dass das Profil default, also get wp_TT_KUF  profile_data default:winter leer ist, das ergibt nur "".
Argh, man liest es fünfmal durch, aber übersieht trotzdem was:

get wp_TT_KUF  profile_data default:default ergibt nur ""

get wp_TT_KUF  profile_data default:winter ergibt das oben im code-Tag.

Kann ich eigentlich auf einen Fehlertext im Log triggern, so, dass ich eine Benachrichtigung auslösen kann? Aber das ist wohl OT.

Ich mache dann mal eben ein UPDATE.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 13 März 2020, 18:09:23
Es ist dein Thread, von daher: ja, man kann auf log-Einträge triggern, ich müßte aber auch suchen, wie es geht...

Vermutlich war das mit der leeren Rückgabe das Problem. Das muß ich mir dann auch nochmal ansehen, inwieweit man das evtl. abfangen muß, denn default:default könnte in der Tat in bestimmten Konstellationen automatisch abgefragt werden... Sollte jetzt jedenfalls im Log stehen, welches Profil ggf. verantwortlich war, damit sind wir dann vermutlich mind. einen Schritt weiter.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Risiko am 13 März 2020, 18:32:47
Zitat von: JamBay am 13 März 2020, 17:58:22
Argh, man liest es fünfmal durch, aber übersieht trotzdem was:

get wp_TT_KUF  profile_data default:default ergibt nur ""
Hmmm. Mich würde mal interessieren, wie du das hinbekommen hast.
Ich bekomme das nicht nachgestellt!
Du kannst ja mal bitte das Loglevel von wp_TT_KUF hoch auf 4 oder 5 setzen.

Nachtrag:
wp_TT_KUF ist ja gar nicht das weekprofile device, sondern wt_TT_KUF.
Da bin ich wohl doch raus  ;)
Gebt Bescheid, wenn ich unterstützen kann\soll.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 13 März 2020, 20:01:03
defmod n_WDT_crash notify n_WDT_crash.*somehow.damaged.or.incomlete.* msgtelegram @@UxBxOxxx WDT Crash [$EVENT].
attr n_WDT_crash readLog 1


Habs gefunden https://forum.fhem.de/index.php?topic=94123.0
So bekomme ich den Fehler per Telegram, wenn er noch auftritt. Ist einfacher als jeden Tag das Log zu durchsuchen.

wp_* (oder wp_.*) sind bei mir die weekprofiles,
wt_* (odet wt_.*) sind bei mir die WeekdayTimer.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 14 März 2020, 14:35:26
Juchu   :o

der Fehler ist aufgetreten und FHEM ist dabei neu gestartet worden, der Trigger hat nicht anschlagen können (hatte wohl keine Chance), aber die Neustart Meldung kam dann.

2020.03.14 14:00:01 0: #####################################################################################################!
2020.03.14 14:00:01 0: #####################################################################################################!
2020.03.14 14:00:01 0: [wt_TT_YZF] profile wp_TT_YZF:default:summer, item 14 seems to be somehow damaged or incomlete!
2020.03.14 14:00:01 0: #####################################################################################################!
2020.03.14 14:00:01 0: #####################################################################################################!
2020.03.14 14:00:01 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_WeekdayTimer.pm line 993.
Can't use an undefined value as an ARRAY reference at ./FHEM/98_WeekdayTimer.pm line 1155.
2020.03.14 14:01:34 1: Including fhem.cfg
2020.03.14 14:01:34 3: WEB: port 8083 opened

Denke mal der Absturz findet in Zeile 1155 statt? Oder Folgefehler, aber kann ja nicht, da dieses EPOCH auch im Fehlerfall definiert wird.

Wie man sieht ist das ein anderes Thermostat/weekprofile/WeekdayTimer und ein anderes Profil (summer kommt im Sommer, oder wenn Fenster auf und ist sehr übersichtlich).
Als der Fehler auftrat, war das Fenster auch auf, braucht ihr die listings dann einmal mit Fenster auf auch noch?

Um 14:00 Uhr hätte das Profil winter eine Temperaturumschaltung durchführen sollen, aber das war ja gar nicht mehr aktiv (vordergründig).

Liegt es vielleicht daran, wie ich die Profile Umschalte? Das passiert über ein DoIf, habe es mal ganz unten gelistet.

Nachfolgend die listings:

{"Sun":{"temp":["4.5"],"time":["24:00"]},"Fri":{"temp":["4.5"],"time":["24:00"]},"Tue":{"temp":["4.5"],"time":["24:00"]},"Wed":{"time":["24:00"],"temp":["4.5"]},"Mon":{"temp":["4.5"],"time":["24:00"]},"Thu":{"time":["24:00"],"temp":["4.5"]},"Sat":{"time":["24:00"],"temp":["4.5"]}}
Internals:
   COMMAND   
   CONDITION 
   DEF        TMT_YZF weekprofile:wp_TT_YZF
   DEVICE     TMT_YZF
   FUUID      5d8605ee-f33f-19fe-6212-f5c6bc3b3de8ccad
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wt_TT_YZF
   NR         167
   Profil 0: Sonntag 00:10:00 16.0, 08:30:00 18.0, 12:30:00 16.0, 14:00:00 18.0, 17:45:00 16.0
   Profil 1: Montag 00:10:00 16.0, 06:10:00 18.0, 07:15:00 16.0, 13:00:00 18.0, 18:45:00 16.0
   Profil 2: Dienstag 00:10:00 16.0, 06:10:00 18.0, 07:15:00 16.0, 13:00:00 18.0, 18:45:00 16.0
   Profil 3: Mittwoch 00:10:00 16.0, 06:10:00 18.0, 07:15:00 16.0, 13:00:00 18.0, 18:45:00 16.0
   Profil 4: Donnerstag 00:10:00 16.0, 06:10:00 18.0, 07:15:00 16.0, 13:00:00 18.0, 18:45:00 16.0
   Profil 5: Freitag 00:10:00 16.0, 06:10:00 18.0, 07:15:00 16.0, 13:00:00 18.0, 18:45:00 16.0
   Profil 6: Samstag 00:10:00 16.0, 08:30:00 18.0, 12:30:00 16.0, 14:00:00 18.0, 17:45:00 16.0
   STATE      18.0
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584190930.50311
           VALUE      18.0
   READINGS:
     2020-03-14 14:02:10   currValue       18.0
     2020-03-14 14:02:10   nextUpdate      2020-03-14 17:45:00
     2020-03-14 14:02:10   nextValue       16.0
     2020-03-14 14:02:10   state           18.0
     2020-03-13 13:59:08   weekprofiles    wp_TT_YZF:default:winter
   SWITCHINGTIMES:
     5|00:10|16.0
     5|06:10|18.0
     5|07:15|16.0
     5|13:00|18.0
     5|18:45|16.0
     1|00:10|16.0
     1|06:10|18.0
     1|07:15|16.0
     1|13:00|18.0
     1|18:45|16.0
     6|00:10|16.0
     6|08:30|18.0
     6|12:30|16.0
     6|14:00|18.0
     6|17:45|16.0
     0|00:10|16.0
     0|08:30|18.0
     0|12:30|16.0
     0|14:00|18.0
     0|17:45|16.0
     4|00:10|16.0
     4|06:10|18.0
     4|07:15|16.0
     4|13:00|18.0
     4|18:45|16.0
     2|00:10|16.0
     2|06:10|18.0
     2|07:15|16.0
     2|13:00|18.0
     2|18:45|16.0
     3|00:10|16.0
     3|06:10|18.0
     3|07:15|16.0
     3|13:00|18.0
     3|18:45|16.0
   TIMER:
     wt_TT_YZF_15:
       HASH       wt_TT_YZF
       MODIFIER   15
       NAME       wt_TT_YZF_15
     wt_TT_YZF_SetTimerOfDay:
       HASH       wt_TT_YZF
       MODIFIER   SetTimerOfDay
       NAME       wt_TT_YZF_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
   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:
         00:10:00   16.0
         08:30:00   18.0
         12:30:00   16.0
         14:00:00   18.0
         17:45:00   16.0
       1:
         00:10:00   16.0
         06:10:00   18.0
         07:15:00   16.0
         13:00:00   18.0
         18:45:00   16.0
       2:
         00:10:00   16.0
         06:10:00   18.0
         07:15:00   16.0
         13:00:00   18.0
         18:45:00   16.0
       3:
         00:10:00   16.0
         06:10:00   18.0
         07:15:00   16.0
         13:00:00   18.0
         18:45:00   16.0
       4:
         00:10:00   16.0
         06:10:00   18.0
         07:15:00   16.0
         13:00:00   18.0
         18:45:00   16.0
       5:
         00:10:00   16.0
         06:10:00   18.0
         07:15:00   16.0
         13:00:00   18.0
         18:45:00   16.0
       6:
         00:10:00   16.0
         08:30:00   18.0
         12:30:00   16.0
         14:00:00   18.0
         17:45:00   16.0
     WEDAYS:
       0          1
       1          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
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   profil:
     1:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         5
     10:
       EPOCH      1584207900
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         1
     11:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         6
     12:
       EPOCH      1584171000
       PARA       18.0
       TIME       08:30
       WE_Override 0
       TAGE:
         6
     13:
       EPOCH      1584185400
       PARA       16.0
       TIME       12:30
       WE_Override 0
       TAGE:
         6
     14:
       EPOCH      1584190800
       PARA       18.0
       TIME       14:00
       WE_Override 0
       TAGE:
         6
     15:
       EPOCH      1584204300
       PARA       16.0
       TIME       17:45
       WE_Override 0
       TAGE:
         6
     16:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         0
     17:
       EPOCH      1584171000
       PARA       18.0
       TIME       08:30
       WE_Override 0
       TAGE:
         0
     18:
       EPOCH      1584185400
       PARA       16.0
       TIME       12:30
       WE_Override 0
       TAGE:
         0
     19:
       EPOCH      1584190800
       PARA       18.0
       TIME       14:00
       WE_Override 0
       TAGE:
         0
     2:
       EPOCH      1584162600
       PARA       18.0
       TIME       06:10
       WE_Override 0
       TAGE:
         5
     20:
       EPOCH      1584204300
       PARA       16.0
       TIME       17:45
       WE_Override 0
       TAGE:
         0
     21:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         4
     22:
       EPOCH      1584162600
       PARA       18.0
       TIME       06:10
       WE_Override 0
       TAGE:
         4
     23:
       EPOCH      1584166500
       PARA       16.0
       TIME       07:15
       WE_Override 0
       TAGE:
         4
     24:
       EPOCH      1584187200
       PARA       18.0
       TIME       13:00
       WE_Override 0
       TAGE:
         4
     25:
       EPOCH      1584207900
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         4
     26:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         2
     27:
       EPOCH      1584162600
       PARA       18.0
       TIME       06:10
       WE_Override 0
       TAGE:
         2
     28:
       EPOCH      1584166500
       PARA       16.0
       TIME       07:15
       WE_Override 0
       TAGE:
         2
     29:
       EPOCH      1584187200
       PARA       18.0
       TIME       13:00
       WE_Override 0
       TAGE:
         2
     3:
       EPOCH      1584166500
       PARA       16.0
       TIME       07:15
       WE_Override 0
       TAGE:
         5
     30:
       EPOCH      1584207900
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         2
     31:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         3
     32:
       EPOCH      1584162600
       PARA       18.0
       TIME       06:10
       WE_Override 0
       TAGE:
         3
     33:
       EPOCH      1584166500
       PARA       16.0
       TIME       07:15
       WE_Override 0
       TAGE:
         3
     34:
       EPOCH      1584187200
       PARA       18.0
       TIME       13:00
       WE_Override 0
       TAGE:
         3
     35:
       EPOCH      1584207900
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         3
     4:
       EPOCH      1584187200
       PARA       18.0
       TIME       13:00
       WE_Override 0
       TAGE:
         5
     5:
       EPOCH      1584207900
       PARA       16.0
       TIME       18:45
       WE_Override 0
       TAGE:
         5
     6:
       EPOCH      1584141000
       PARA       16.0
       TIME       00:10
       WE_Override 0
       TAGE:
         1
     7:
       EPOCH      1584162600
       PARA       18.0
       TIME       06:10
       WE_Override 0
       TAGE:
         1
     8:
       EPOCH      1584166500
       PARA       16.0
       TIME       07:15
       WE_Override 0
       TAGE:
         1
     9:
       EPOCH      1584187200
       PARA       18.0
       TIME       13:00
       WE_Override 0
       TAGE:
         1
   profile_IDX:
     0:
       00:10:00   16
       08:30:00   17
       12:30:00   18
       14:00:00   19
       17:45:00   20
     1:
       00:10:00   6
       06:10:00   7
       07:15:00   8
       13:00:00   9
       18:45:00   10
     2:
       00:10:00   26
       06:10:00   27
       07:15:00   28
       13:00:00   29
       18:45:00   30
     3:
       00:10:00   31
       06:10:00   32
       07:15:00   33
       13:00:00   34
       18:45:00   35
     4:
       00:10:00   21
       06:10:00   22
       07:15:00   23
       13:00:00   24
       18:45:00   25
     5:
       00:10:00   1
       06:10:00   2
       07:15:00   3
       13:00:00   4
       18:45:00   5
     6:
       00:10:00   11
       08:30:00   12
       12:30:00   13
       14:00:00   14
       17:45:00   15
   shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   weekprofiles:
     wp_TT_YZF:
       PROFILE    default:winter
       PROFILE_JSON {"Mon":{"time":["06:10","07:15","13:00","18:45","24:00"],"temp":["16.0","18.0","16.0","18.0","16.0"]},"Thu":{"time":["06:10","07:15","13:00","18:45","24:00"],"temp":["16.0","18.0","16.0","18.0","16.0"]},"Tue":{"temp":["16.0","18.0","16.0","18.0","16.0"],"time":["06:10","07:15","13:00","18:45","24:00"]},"Wed":{"time":["06:10","07:15","13:00","18:45","24:00"],"temp":["16.0","18.0","16.0","18.0","16.0"]},"Sun":{"temp":["16.0","18.0","16.0","18.0","16.0"],"time":["08:30","12:30","14:00","17:45","24:00"]},"Fri":{"temp":["16.0","18.0","16.0","18.0","16.0"],"time":["06:10","07:15","13:00","18:45","24:00"]},"Sat":{"time":["08:30","12:30","14:00","17:45","24:00"],"temp":["16.0","18.0","16.0","18.0","16.0"]}}
       SunAsWE    0
       PROFILE_DATA:
         Fri:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             06:10
             07:15
             13:00
             18:45
             24:00
         Mon:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             06:10
             07:15
             13:00
             18:45
             24:00
         Sat:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             08:30
             12:30
             14:00
             17:45
             24:00
         Sun:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             08:30
             12:30
             14:00
             17:45
             24:00
         Thu:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             06:10
             07:15
             13:00
             18:45
             24:00
         Tue:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             06:10
             07:15
             13:00
             18:45
             24:00
         Wed:
           temp:
             16.0
             18.0
             16.0
             18.0
             16.0
           time:
             06:10
             07:15
             13:00
             18:45
             24:00
Attributes:
   alias      Zeitschaltuhr Thermostat Yannick
   commandTemplate set $NAME control $EVENT
   room       RZ->Heizung,Räume->Yannick
   switchInThePast 1

Internals:
   CONFIGFILE ./log/weekprofile-wp_TT_YZF.cfg
   DEF        wt_TT_YZF
   FUUID      5dfd16d6-f33f-19fe-d4bf-8459cc32ab38149b
   NAME       wp_TT_YZF
   NR         202
   NTFY_ORDER 50-wp_TT_YZF
   STATE      created
   TYPE       weekprofile
   MASTERDEV:
     NAME       wt_TT_YZF
   PROFILES:
     HASH(0x6e45ed8)
     HASH(0x6e46028)
     HASH(0x6e46658)
     HASH(0x6e46c28)
     HASH(0x6e4a780)
   READINGS:
     2020-03-14 14:02:10   profile_count   5
     2020-03-14 14:01:52   state           created
   SNDDEVLIST:
     HASH(0x6e47140)
     HASH(0x6e471a0)
     HASH(0x6e47200)
     HASH(0x6e47260)
     HASH(0x6e472c0)
     HASH(0x6e47320)
     HASH(0x6e47380)
     HASH(0x6e473e0)
     HASH(0x6e47440)
     HASH(0x6e474a0)
     HASH(0x6e47500)
     HASH(0x6e47560)
     HASH(0x6e475c0)
     HASH(0x6e47620)
     HASH(0x6e47680)
     HASH(0x6e476e0)
     HASH(0x6e47740)
     HASH(0x6e477a0)
     HASH(0x6e47800)
   TOPICS:
     default
Attributes:
   group      WeekProfile
   room       RZ->Heizung
   tempOFF    4.0


DoIf
Internals:
   DEF        ([Heizperiode] eq "on" and [Ferien] eq "off" and [Anwesend] eq "on"  and [d_YZHz] eq "closed") (set wp_TT_YZF send_to_device winter)
DOELSEIF ([Heizperiode] eq "on" and [Ferien] eq "on"  and [Anwesend] eq "on"  and [d_YZHz] eq "closed") (set wp_TT_YZF send_to_device holiday)
DOELSEIF ([Heizperiode] eq "on" and [Ferien] eq "off" and [Anwesend] eq "off" and [d_YZHz] eq "closed") (set wp_TT_YZF send_to_device absent)
DOELSEIF ([Heizperiode] eq "on" and [Ferien] eq "on"  and [Anwesend] eq "off" and [d_YZHz] eq "closed") (set wp_TT_YZF send_to_device absent)
DOELSE (set wp_TT_YZF send_to_device summer)
   FUUID      5d86063a-f33f-19fe-0025-5d1dae71714ef93f
   MODEL      FHEM
   NAME       di_HZ_YZ
   NOTIFYDEV  Heizperiode,Anwesend,d_YZHz,global,Ferien
   NR         168
   NTFY_ORDER 50-di_HZ_YZ
   STATE      cmd_1
   TYPE       DOIF
   VERSION    21224 2020-02-18 18:45:49
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584192492.31819
           VALUE      cmd_1
   READINGS:
     2020-03-14 14:28:12   Device          d_YZHz
     2020-03-14 14:28:12   cmd             1
     2020-03-14 14:28:12   cmd_event       d_YZHz
     2020-03-14 14:28:12   cmd_nr          1
     2020-02-23 11:54:49   e_Anwesend_STATE on
     2020-03-10 12:44:41   e_Ferien_STATE  off
     2020-03-10 22:25:06   e_Heizperiode_STATE on
     2020-03-14 14:28:12   e_d_YZHz_STATE  closed
     2019-12-23 12:24:24   mode            enabled
     2020-03-14 14:28:12   state           cmd_1
   Regex:
     accu:
     cond:
       Anwesend:
         0:
           &STATE     ^Anwesend$
         1:
           &STATE     ^Anwesend$
         2:
           &STATE     ^Anwesend$
         3:
           &STATE     ^Anwesend$
       Ferien:
         0:
           &STATE     ^Ferien$
         1:
           &STATE     ^Ferien$
         2:
           &STATE     ^Ferien$
         3:
           &STATE     ^Ferien$
       Heizperiode:
         0:
           &STATE     ^Heizperiode$
         1:
           &STATE     ^Heizperiode$
         2:
           &STATE     ^Heizperiode$
         3:
           &STATE     ^Heizperiode$
       d_YZHz:
         0:
           &STATE     ^d_YZHz$
         1:
           &STATE     ^d_YZHz$
         2:
           &STATE     ^d_YZHz$
         3:
           &STATE     ^d_YZHz$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::InternalDoIf($hash,'Heizperiode','STATE') eq "on" and ::InternalDoIf($hash,'Ferien','STATE') eq "off" and ::InternalDoIf($hash,'Anwesend','STATE') eq "on"  and ::InternalDoIf($hash,'d_YZHz','STATE') eq "closed"
     1          ::InternalDoIf($hash,'Heizperiode','STATE') eq "on" and ::InternalDoIf($hash,'Ferien','STATE') eq "on"  and ::InternalDoIf($hash,'Anwesend','STATE') eq "on"  and ::InternalDoIf($hash,'d_YZHz','STATE') eq "closed"
     2          ::InternalDoIf($hash,'Heizperiode','STATE') eq "on" and ::InternalDoIf($hash,'Ferien','STATE') eq "off" and ::InternalDoIf($hash,'Anwesend','STATE') eq "off" and ::InternalDoIf($hash,'d_YZHz','STATE') eq "closed"
     3          ::InternalDoIf($hash,'Heizperiode','STATE') eq "on" and ::InternalDoIf($hash,'Ferien','STATE') eq "on"  and ::InternalDoIf($hash,'Anwesend','STATE') eq "off" and ::InternalDoIf($hash,'d_YZHz','STATE') eq "closed"
   do:
     0:
       0          set wp_TT_YZF send_to_device winter
     1:
       0          set wp_TT_YZF send_to_device holiday
     2:
       0          set wp_TT_YZF send_to_device absent
     3:
       0          set wp_TT_YZF send_to_device absent
     4:
       0          set wp_TT_YZF send_to_device summer
   helper:
     DEVFILTER  ^global$|^Ferien$|^d_YZHz$|^Anwesend$|^Heizperiode$
     NOTIFYDEV  global|Ferien|d_YZHz|Anwesend|Heizperiode
     event      closed
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   d_YZHz
     timerevent closed
     triggerDev d_YZHz
     DOIF_eventa:
       cmd_nr: 1
       cmd: 1
       cmd_event: d_YZHz
       cmd_1
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: d_YZHz
       state: cmd_1
     timerevents:
       closed
     timereventsState:
       state: closed
     triggerEvents:
       closed
     triggerEventsState:
       state: closed
   internals:
     all         Heizperiode:STATE Ferien:STATE Anwesend:STATE d_YZHz:STATE
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   room       RZ->Heizung
   startup    set $SELF checkall


2020.03.14 13:38:40 3: Watchdog wd_YZHz1 triggered
2020.03.14 13:38:40 3: [wt_TT_YZF] set wt_TT_YZF weekprofile wp_TT_YZF:default:summer
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 14 März 2020, 16:13:32
Schon Juchu!

Ist zwar nicht schön, aber jetzt wird auch mir (hoffentlich) klarer, was da passiert...

Fix wird etwas dauern, da muß ich noch nachdenken, ist aber vermutlich nichts dramatisches.

@Risiko: Danke für's mit draufschauen, aber das ist m.E. ein WDT-Problem, und (@JamBay) es hat auch nichts mit dem Modul zu tun, das die Umschaltung macht.

Ich wäre wegen der window-open-Lösung nicht drauf gekommen, dass man ja auch das Profil wechseln kann... Hatte eigentlich vermutet, dass es ein "delayed" Timer war, aber es scheint eher so zu sein, dass die Interne Struktur nicht komplett geleert wird, was Probleme macht, wenn das neue Profil weniger Elemente enthält als das alte. Wäre nett, wenn du das mal prüfen könntest:
Kurz das Profil auf Sommer wecheln, list machen und wieder zurück. Das list dann hier reinstellen (es genügt das eine list vom "Sommer"-Profil).



OT: Die ganze Struktur der Devices erscheint mir sehr "hart" verkabelt, was ggf. schlecht wartbar ist, wenn man mal was ändern will. Hätte eher gedacht, dass man Topics nutzt, ein weekprofile-Device für alles (statt je Thermostat) und dann die Fenster-Offen-Sache über ein notify oä, das aus dem Fenster die betreffenden Thermostate ableitet und denen eine neue Soll-Temp verpaßt. Dazu sagt man den einzelnen WDT's, welche Fenster sie checken sollen.
Sollten wir aber bei Interesse an anderer Stelle vertiefen, und wenn du so klar kommst, soll es mir auch recht sein...
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 14 März 2020, 17:09:48
Vermutlich hilft es, wenn du eine neue Zeile 181 einfügst (es wäre besser, die Zeilennummern wären einheitlich bei uns beiden, btw.):

    WeekdayTimer_DeleteTimer($hash);


Der Abschnitt sollte dann so aussehen:
  } elsif ($v =~ /weekprofile ([^: ]+):([^:]+):([^: ]+)\b/) {
    Log3 $hash, 3, "[$name] set $name $v";
    return unless WeekdayTimer_UpdateWeekprofileReading($hash, $1, $2, $3);   
    WeekdayTimer_DeleteTimer($hash);
    WeekdayTimer_Start($hash);
  }

Kannst du das bitte testen, ansonsten bin ich geneigt, das präventiv einzuchecken.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 14 März 2020, 18:11:17
WeekdayTimer
Internals:
   COMMAND   
   CONDITION 
   DEF        TMT_YZF weekprofile:wp_TT_YZF
   DEVICE     TMT_YZF
   FUUID      5d8605ee-f33f-19fe-6212-f5c6bc3b3de8ccad
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wt_TT_YZF
   NR         167
   Profil 0: Sonntag 00:10:00 4.5
   Profil 1: Montag 00:10:00 4.5
   Profil 2: Dienstag 00:10:00 4.5
   Profil 3: Mittwoch 00:10:00 4.5
   Profil 4: Donnerstag 00:10:00 4.5
   Profil 5: Freitag 00:10:00 4.5
   Profil 6: Samstag 00:10:00 4.5
   STATE      4.5
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584205423.99614
           VALUE      4.5
   READINGS:
     2020-03-14 18:03:43   currValue       4.5
     2020-03-14 18:03:43   nextUpdate      2020-03-15 00:10:00
     2020-03-14 18:03:43   nextValue       4.5
     2020-03-14 18:03:43   state           4.5
     2020-03-14 18:03:36   weekprofiles    wp_TT_YZF:default:summer
   SWITCHINGTIMES:
     5|00:10|4.5
     1|00:10|4.5
     6|00:10|4.5
     0|00:10|4.5
     4|00:10|4.5
     2|00:10|4.5
     3|00:10|4.5
   TIMER:
     wt_TT_YZF_15:
       HASH       wt_TT_YZF
       MODIFIER   15
       NAME       wt_TT_YZF_15
     wt_TT_YZF_SetTimerOfDay:
       HASH       wt_TT_YZF
       MODIFIER   SetTimerOfDay
       NAME       wt_TT_YZF_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     wt_TT_YZF_delayed:
       HASH       wt_TT_YZF
       MODIFIER   delayed
       NAME       wt_TT_YZF_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:
         00:10:00   4.5
       1:
         00:10:00   4.5
       2:
         00:10:00   4.5
       3:
         00:10:00   4.5
       4:
         00:10:00   4.5
       5:
         00:10:00   4.5
       6:
         00:10:00   4.5
     WEDAYS:
       0          1
       1          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
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   profil:
     1:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         5
     2:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         1
     3:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         6
     4:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         0
     5:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         4
     6:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         2
     7:
       EPOCH      1584141000
       PARA       4.5
       TIME       00:10
       WE_Override 0
       TAGE:
         3
   profile_IDX:
     0:
       00:10:00   4
       08:30:00   17
       12:30:00   18
       14:00:00   19
       17:45:00   20
     1:
       00:10:00   2
       06:10:00   7
       07:15:00   8
       13:00:00   9
       18:45:00   10
     2:
       00:10:00   6
       06:10:00   27
       07:15:00   28
       13:00:00   29
       18:45:00   30
     3:
       00:10:00   7
       06:10:00   32
       07:15:00   33
       13:00:00   34
       18:45:00   35
     4:
       00:10:00   5
       06:10:00   22
       07:15:00   23
       13:00:00   24
       18:45:00   25
     5:
       00:10:00   1
       06:10:00   2
       07:15:00   3
       13:00:00   4
       18:45:00   5
     6:
       00:10:00   3
       08:30:00   12
       12:30:00   13
       14:00:00   14
       17:45:00   15
   shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   weekprofiles:
     wp_TT_YZF:
       PROFILE    default:summer
       PROFILE_JSON {"Sun":{"temp":["4.5"],"time":["24:00"]},"Fri":{"temp":["4.5"],"time":["24:00"]},"Tue":{"temp":["4.5"],"time":["24:00"]},"Wed":{"time":["24:00"],"temp":["4.5"]},"Mon":{"temp":["4.5"],"time":["24:00"]},"Thu":{"time":["24:00"],"temp":["4.5"]},"Sat":{"time":["24:00"],"temp":["4.5"]}}
       SunAsWE    0
       PROFILE_DATA:
         Fri:
           temp:
             4.5
           time:
             24:00
         Mon:
           temp:
             4.5
           time:
             24:00
         Sat:
           temp:
             4.5
           time:
             24:00
         Sun:
           temp:
             4.5
           time:
             24:00
         Thu:
           temp:
             4.5
           time:
             24:00
         Tue:
           temp:
             4.5
           time:
             24:00
         Wed:
           temp:
             4.5
           time:
             24:00
Attributes:
   alias      Zeitschaltuhr Thermostat Yannick
   commandTemplate set $NAME control $EVENT
   room       RZ->Heizung,Räume->Yannick
   switchInThePast 1

weekprofile:
Internals:
   CONFIGFILE ./log/weekprofile-wp_TT_YZF.cfg
   DEF        wt_TT_YZF
   FUUID      5dfd16d6-f33f-19fe-d4bf-8459cc32ab38149b
   NAME       wp_TT_YZF
   NR         202
   NTFY_ORDER 50-wp_TT_YZF
   STATE      created
   TYPE       weekprofile
   MASTERDEV:
     NAME       wt_TT_YZF
   PROFILES:
     HASH(0x6e45ed8)
     HASH(0x6e46028)
     HASH(0x6e46658)
     HASH(0x6e46c28)
     HASH(0x6e4a780)
   READINGS:
     2020-03-14 18:03:44   profile_count   5
     2020-03-14 14:01:52   state           created
   SNDDEVLIST:
     HASH(0x6e47140)
     HASH(0x6e471a0)
     HASH(0x6e47200)
     HASH(0x6e47260)
     HASH(0x6e472c0)
     HASH(0x6e47320)
     HASH(0x6e47380)
     HASH(0x6e473e0)
     HASH(0x6e47440)
     HASH(0x6e474a0)
     HASH(0x6e47500)
     HASH(0x6e47560)
     HASH(0x6e475c0)
     HASH(0x6e47620)
     HASH(0x6e47680)
     HASH(0x6e476e0)
     HASH(0x6e47740)
     HASH(0x6e477a0)
     HASH(0x6e47800)
   TOPICS:
     default
Attributes:
   group      WeekProfile
   room       RZ->Heizung
   tempOFF    4.0


Ich passe die Zeile mal an, die Zeilen sollten in dem Bereich noch gleich sein.

Ich habe mal versucht mich in das Konzept Topics einzulesen, aber es wollte nicht in meinen Kopf.
Ich kann es ja noch mal versuchen, und bei Bedarf nachfragen.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 14 März 2020, 18:37:41
OK, wie vermutet weniger Schaltzeiten...

Hatte zwischenzeitlich auch den anderen Thread nochmal gegengelesen und bin einigermaßen sicher, dass dieser Fix Sinn macht.




@JamBay: Eigentlich ist das mit den Topics so gedacht: Du legst das Profil fest, das der WDT jeweils aus dem wp-Device nehmen soll, indem du a) (am WDT) ein userattr festlegst namens weekprofile, und b) dort den Namen des Profils einträgst (also quasi, wie der WDT (oder mehrere) in weekprofile heißen soll).

Dann kannst du mit restore_topic allen "Clienten" dieses weekprofile-Devices die entsprechende Kombination aus (ihrem) Profile:Topic (für alle) senden, also z.B. alle WDT von Sommer auf Winter umschalten, und eben auch - im Prinzip - alle Profile in einem weekprofile-Device halten (und dort z.B. einfacher für andere Devices kopieren).

(Am besten einfach mal bei einem WDT durchspielen und den Topic-Wechsel dann nicht mehr mit send-to-device machen, dann sollte das klarer werden).
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 15 März 2020, 12:05:26
Danke für deine Geduld!
Ich bekomme es aber nicht zu Laufen.

Ich habe folgenden WeekdayTimer erstellt:

Internals:
   CFGFN     
   COMMAND   
   CONDITION 
   DEF        TMT_KUF weekprofile:wp_HOME
   DEVICE     TMT_KUF
   FUUID      5e6d3c6b-f33f-19fe-2a93-5f2d99b44e33e673
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       wt_TMT_KUF
   NR         1829
   Profil 0: Sonntag 00:10:00 18.0
   Profil 1: Montag 00:10:00 18.0
   Profil 2: Dienstag 00:10:00 18.0
   Profil 3: Mittwoch 00:10:00 18.0
   Profil 4: Donnerstag 00:10:00 18.0
   Profil 5: Freitag 00:10:00 18.0
   Profil 6: Samstag 00:10:00 18.0
   STATE      18.0
   STILLDONETIME 0
   TYPE       WeekdayTimer
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584227414.40504
           VALUE      18.0
   READINGS:
     2020-03-15 00:10:14   currValue       18.0
     2020-03-15 00:10:14   nextUpdate      2020-03-16 00:10:00
     2020-03-15 00:10:14   nextValue       18.0
     2020-03-15 00:10:14   state           18.0
     2020-03-14 21:21:08   weekprofiles    wp_HOME:default:default
   SWITCHINGTIMES:
     5|00:10|18.0
     1|00:10|18.0
     6|00:10|18.0
     0|00:10|18.0
     4|00:10|18.0
     2|00:10|18.0
     3|00:10|18.0
   TIMER:
     wt_TMT_KUF_4:
       HASH       wt_TMT_KUF
       MODIFIER   4
       NAME       wt_TMT_KUF_4
     wt_TMT_KUF_SetTimerOfDay:
       HASH       wt_TMT_KUF
       MODIFIER   SetTimerOfDay
       NAME       wt_TMT_KUF_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     wt_TMT_KUF_delayed:
       HASH       wt_TMT_KUF
       MODIFIER   delayed
       NAME       wt_TMT_KUF_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:
         00:10:00   18.0
       1:
         00:10:00   18.0
       2:
         00:10:00   18.0
       3:
         00:10:00   18.0
       4:
         00:10:00   18.0
       5:
         00:10:00   18.0
       6:
         00:10:00   18.0
     WEDAYS:
       0          1
       6          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
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   profil:
     1:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         5
     2:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         1
     3:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         6
     4:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         0
     5:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         4
     6:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         2
     7:
       EPOCH      1584227400
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         3
   profile_IDX:
     0:
       00:10:00   4
     1:
       00:10:00   2
     2:
       00:10:00   6
     3:
       00:10:00   7
     4:
       00:10:00   5
     5:
       00:10:00   1
     6:
       00:10:00   3
   shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   weekprofiles:
     wp_HOME:
       PROFILE    default:default
       PROFILE_JSON {"Sat":{"temp":["18.0"],"time":["24:00"]},"Fri":{"temp":["18.0"],"time":["24:00"]},"Sun":{"time":["24:00"],"temp":["18.0"]},"Wed":{"temp":["18.0"],"time":["24:00"]},"Tue":{"temp":["18.0"],"time":["24:00"]},"Thu":{"temp":["18.0"],"time":["24:00"]},"Mon":{"time":["24:00"],"temp":["18.0"]}}
       SunAsWE    0
       PROFILE_DATA:
         Fri:
           temp:
             18.0
           time:
             24:00
         Mon:
           temp:
             18.0
           time:
             24:00
         Sat:
           temp:
             18.0
           time:
             24:00
         Sun:
           temp:
             18.0
           time:
             24:00
         Thu:
           temp:
             18.0
           time:
             24:00
         Tue:
           temp:
             18.0
           time:
             24:00
         Wed:
           temp:
             18.0
           time:
             24:00
Attributes:
   alias      Zeitschaltuhr Thermostat Küche neu
   commandTemplate set $NAME control $EVENT
   room       RZ->Heizung,Räume->Küche
   switchInThePast 1
   userattr   weekprofile
   verbose    5
   weekprofile wp_KUF


dazu das passende weekprofile:

Internals:
   CFGFN     
   CONFIGFILE ./log/weekprofile-wp_HOME.cfg
   FUUID      5e6d243a-f33f-19fe-d186-f17ee432c275cb63
   NAME       wp_HOME
   NR         1432
   NTFY_ORDER 50-wp_HOME
   STATE      created
   TYPE       weekprofile
   Helper:
     DBLOG:
       state:
         LogDB:
           TIME       1584211002.63678
           VALUE      created
   PROFILES:
     HASH(0x7886880)
     HASH(0x529e2c8)
     HASH(0x7827900)
   READINGS:
     2020-03-15 11:48:14   active_topic    default
     2020-03-14 22:00:07   profile_count   3
     2020-03-14 19:36:42   state           created
     2020-03-14 22:00:07   topics          default:summer:winter
   SNDDEVLIST:
     HASH(0x6eb2260)
     HASH(0x7756180)
     HASH(0x746b458)
     HASH(0x738e9d8)
     HASH(0x7583f68)
     HASH(0x70f4178)
     HASH(0x6e34210)
     HASH(0x7878760)
     HASH(0x74115e8)
     HASH(0x7463048)
     HASH(0x70e3010)
     HASH(0x6e27380)
     HASH(0x73e6178)
     HASH(0x73fb700)
     HASH(0x740da00)
     HASH(0x7124fe8)
     HASH(0x73334a8)
     HASH(0x787d2e0)
     HASH(0x757a568)
     HASH(0x6e47530)
   TOPICS:
     default
     summer
     winter
Attributes:
   group      WeekProfile
   room       RZ->Heizung
   tempOFF    4.0
   useTopics  1


Und folgende Profile:

default:default
{"Sat":{"temp":["18.0"],"time":["24:00"]},"Fri":{"temp":["18.0"],"time":["24:00"]},"Sun":{"time":["24:00"],"temp":["18.0"]},"Wed":{"temp":["18.0"],"time":["24:00"]},"Tue":{"temp":["18.0"],"time":["24:00"]},"Thu":{"temp":["18.0"],"time":["24:00"]},"Mon":{"time":["24:00"],"temp":["18.0"]}}
summer:wp_KUF
{"Wed":{"time":["24:00"],"temp":["8.0"]},"Tue":{"temp":["8.0"],"time":["24:00"]},"Thu":{"time":["24:00"],"temp":["8.0"]},"Mon":{"temp":["8.0"],"time":["24:00"]},"Sat":{"time":["24:00"],"temp":["8.0"]},"Fri":{"time":["24:00"],"temp":["8.0"]},"Sun":{"time":["24:00"],"temp":["8.0"]}}
und winter:wp_KUF
{"Mon":{"time":["24:00"],"temp":["20.0"]},"Thu":{"temp":["20.0"],"time":["24:00"]},"Tue":{"time":["24:00"],"temp":["20.0"]},"Wed":{"temp":["20.0"],"time":["24:00"]},"Sat":{"temp":["20.0"],"time":["24:00"]},"Sun":{"time":["24:00"],"temp":["20.0"]},"Fri":{"temp":["20.0"],"time":["24:00"]}}

Wenn ich nun im wp im Widget ein Profil auswähle, da T drücke für restore topic, passiert genau nichts.

Ich habe bestimmt irgendwas falsch gemacht, sicher auch nur eine Kleinigkeit, aber ich komme nicht drauf.

Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 15 März 2020, 12:25:46
attr wt_TMT_KUF weekprofile wt_TMT_KUF should do the trick ;) .
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 15 März 2020, 18:12:05
Habe eben den Fix ins svn eingecheckt und gleich weekprofile als "Zwangsuserattr" eingefügt samt ein paar Zeilen commandref dazu, falls man weekprofile nutzt. Hilft evtl. bei der Anwendung...

siehe auch hier: https://forum.fhem.de/index.php/topic,108820.0.html
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 16 März 2020, 15:48:18
Zitat von: Beta-User am 15 März 2020, 12:25:46
attr wt_TMT_KUF weekprofile wt_TMT_KUF should do the trick ;) .
das verwiirt mich jetzt komplett, im Attribut weekprofile soll doch ein/das weekprofile hinterlegt sein, wt* ist bei mir aber ein WDT.

In meiner Konfig habe ich folgendes:
wp_HOME:summer:wp_KUF
^             ^           ^
weekprofile
               topic
                             wie heißt das, ist für mich das Attribut weekprofile im WDT

Ich habe es trotz nichtverstehens mal versucht, es hat aber auch nicht funktioniert.

Was bei mir übrigens geht, ist
set wt_TMT_KUF weekprofile wp_HOME:winter:wp_KUF
mit den devices aus meinem letzten Post.
Also abholen geht, vom WDT aus, aber senden zum WDT nicht.
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 16 März 2020, 16:33:23
? Wer verwirrt wen...?

Also: Wenn du mit Topics arbeiten willst, muß folgendes zusammenpassen:

WDT: Verweist in der DEF auf den Namen des weekprofile-Devicesweekprofile:<weekprofile-device-name>oder
weekprofile:<weekprofile-device-name>:true"weekprofile" und "true" sind dabei genau so zu verwenden, das sind Schlüsselbegriffe, die ausgewertet werden. Damit "weiß" der WDT, a) dass er via weekprofile gesteuert wird, und b) wo er sein "erstes Profil" anfordern soll (danach könnte es evtl. auch von einem anderen wp-Device gehen...).
Als Attribut "weekprofile" ist anzugeben, welches "profil" weekprofile nutzen soll, wenn es via Topic-Wechsel mit dem WDT "reden will". Im Prinzip ist das beliebig, es muß nur auf beiden Seiten gleich sein (unten: test2).

Im weekprofile muß es für Topic-Nutzung daher ebenfalls ein Profil geben, das diesem Attribut-Wert vom WDT entspricht.

Beispiel (leider sieht man nicht, wie die einzelnen Profile aussehen, aber das ist der Status nach einem Topic-Wechsel in meinem Testsystem):defmod wp_test_wdt WeekdayTimer MYSENSOR_96 weekprofile:weekprof:true
attr wp_test_wdt userattr weekprofile
attr wp_test_wdt commandTemplate set $NAME  $EVENT
attr wp_test_wdt weekprofile test2

defmod weekprof weekprofile
attr weekprof tempOFF 7
attr weekprof tempON 18
attr weekprof useTopics 1

setstate weekprof created
setstate weekprof 2020-03-16 16:30:08 active_topic winter
setstate weekprof 2020-03-15 20:27:43 profile_count 8
setstate weekprof 2020-03-15 20:27:43 state created
setstate weekprof 2020-03-15 20:27:43 topics default:winter

setstate wp_test_wdt active
setstate wp_test_wdt 2020-03-16 16:30:08 currValue 18.0
setstate wp_test_wdt 2020-03-16 16:30:08 nextUpdate 2020-03-17 00:10:00
setstate wp_test_wdt 2020-03-16 16:30:08 nextValue 18.0
setstate wp_test_wdt 2020-03-16 16:30:08 state active
setstate wp_test_wdt 2020-03-16 16:30:08 weekprofiles weekprof:winter:test2
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: JamBay am 16 März 2020, 20:43:19
OK, ich denke ich kann die Verwirrung 'auflösen', ich habe eigentlich alles richtig gemacht, ABER kann es sein, dass _ ein Umlaut/Sonderzeichen ist?
Wiki: Derzeit (Version: 10924) können keine Leerzeichen oder Umlaute verwendet werden. Leerzeichen werden bei der Eingabe abgefangen. Hat man versehentlich doch Umlaute verwendet, müssen in der Datei ./log/weekprofile-<name>.cfg die entsprechenden Zeilen manuell gelöscht/umbenennt werden und danach ein rereadcfg ausführt werden.

Versuch du es doch bitte mal mit wp_KUF statt test2 in deinem Beispiel...
Im Prinzip ist das beliebig, es muß nur auf beiden Seiten gleich sein (unten: test2).
Käfer oder Feature?
Titel: Antw:Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 17 März 2020, 07:54:12
Schön, dass du das Problem lokalisieren konntest, war mir bisher unbekannt, dass weekprofile an der Stelle wählerisch ist (?)...

Wenn, dann könnte hier @Risiko was dazu sagen/das ggf. ändern.
Titel: Antw:[gefixt] Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Risiko am 22 März 2020, 18:03:48
Hallo.

Ich kann kann kein Problem mit '_' im Namen feststellen.

Risiko
Titel: Antw:[gefixt] Sporadischer Absturz durch ./FHEM/98_WeekdayTimer.pm
Beitrag von: Beta-User am 22 März 2020, 18:21:30
Hmm, dann streiche ich das mal aus der Liste der (für mich) offenen Fragen...

Danke für's nachsehen!