[gelöst] patch: warnings bei "get hminfo showTimer full"

Begonnen von frank, 04 Mai 2021, 12:37:39

Vorheriges Thema - Nächstes Thema

frank

"get hminfo showTimer full" erzeugt einen haufen warnings:

2021.05.04 12:31:14.140 2 : HMinfo hminfo get:showTimer :full
2021.05.04 12:31:14.141 1 : PERL WARNING: Use of uninitialized value in localtime at ./FHEM/98_HMinfo.pm line 1778.
2021.05.04 12:31:14.208 1 : stacktrace:
2021.05.04 12:31:14.209 1 :     main::__ANON__                      called by ./FHEM/98_HMinfo.pm (1778)
2021.05.04 12:31:14.209 1 :     main::HMinfo_GetFn                  called by fhem.pl (3847)
2021.05.04 12:31:14.209 1 :     main::CallFn                        called by fhem.pl (2002)
2021.05.04 12:31:14.210 1 :     main::CommandGet                    called by fhem.pl (1265)
2021.05.04 12:31:14.210 1 :     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2762)
2021.05.04 12:31:14.210 1 :     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (962)
2021.05.04 12:31:14.211 1 :     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (597)
2021.05.04 12:31:14.211 1 :     main::FW_Read                       called by fhem.pl (3847)
2021.05.04 12:31:14.212 1 :     main::CallFn                        called by fhem.pl (773)


Thu Jan  1 01:00:00       0: freezemon_ProcessTimer        :TYPE : freezemon NAME : freezemon STATE : s:06:10:41 e:06:10:42 f:1.29 d:no bad guy found :-(
Thu Jan  1 01:00:00       2: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:05 NAME : a_pSizeAt STATE : Next: 12:24:30
Thu Jan  1 01:00:00       3: HMUARTLGW_CheckCredits        :HMUARTLGW_CheckCredits:hmuart1
Thu Jan  1 01:00:00       4: FW_closeInactiveClients        :0
Thu Jan  1 01:00:00      11: HMinfo_autoUpdate              :sUpdt:hminfo
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

noansi

#1
Hallo Frank,

Du kannst es mal hiermit ab Zeile 1741 versuchen:
  elsif($cmd eq "showTimer"){
    my ($type) = (@a,"short");# ugly way to set "full" as default
    my %show;
    if($type eq "short"){
       %show =(   NAME        => 4
                 ,TIMESPEC    => 3
                 ,fn          => 1                 
                 ,FW_detailFn => 4
                 ,DeviceName  => 4
                 );
    }
    else{
       %show =(   TYPE        => 1
                 ,NAME        => 4
                 ,TIMESPEC    => 3
                 ,PERIODIC    => 2
                 ,MODIFIER    => 5
                 ,STATE       => 9
                 ,fn          => 1
                 ,finishFn    => 2
                 ,abortFn     => 3
                 ,FW_detailFn => 4
                 ,DeviceName  => 4
                 );
    }
    my $fltr = "(".join("|",keys %show).')' ;
    my @ak;
    my ($tfnm, $cv);
    my $timerarray =  \@intAtA;
    my $now = gettimeofday();
    foreach my $ats (@{$timerarray}){
      $tfnm = $ats->{FN};
      if (ref($tfnm) ne "") {
        $cv = svref_2object($tfnm);
        $tfnm = $cv->GV->NAME if ($cv);
      }
       if (!defined($ats->{TRIGGERTIME})) { #noansi: just for debugging
        Log3 $hash,0,'HMinfo '.$name.' showTimer undefined TRIGGERTIME:'
                     .(defined($ats->{atNr})?' atNr:'.$ats->{atNr}:'')
                     .' FN:'.$tfnm
                     .' ARG:'.$ats->{ARG};
#       next;
      }
     push @ak,  substr(localtime($ats->{TRIGGERTIME}),0,19)
               .sprintf("%8d: %-30s\t :",int($ats->{TRIGGERTIME}-$now)
                                        ,$tfnm)
               .(ref($ats->{ARG}) eq 'HASH'
                     ? join("\t ",map{"$_ : ".$ats->{ARG}{$_}}
                                  map{$_=~m/^\d/?substr($_,1,99):$_}
                                  sort
                                  map{(my $foo = $_) =~ s/$fltr/$show{$1}$1/g; $foo;}
                                  grep /^$fltr/,
                                  keys %{$ats->{ARG}})
                     :"$ats->{ARG}")};
    $ret = join("\n", @ak);
  }


Das holt die Daten aus dem Timerarray statt aus dem aus Kompatibiltätsgründen noch vorhanden timerhash.
Eventuell macht das einen Unterschied.

Deutet darauf hin, dass ein Modul was an den Timern falsch oder kaputt macht. Und das müßte dann in dem betreffenden Modul behoben werden.

InternalTimer schreibt bei der Zeit jedenfalls 1 rein, wenn was undefiniertes als Zeit übergeben wird.

Gruß, Ansgar.

frank

hi ansgar,

danke, das funktioniert nun im prinzip.

ich musste allerdings noch diese änderung in deinem code vornehmen:
#    my $timerarray = defined($modules{timerTS}) ? \@intAtTS #noansi: TSCUL timerTS
#                                                : \@intAtA;
    my $timerarray = \@intAtA;



ohne änderung wurde hminfo nicht gestartet:
2021.05.20 12:14:02.397 1: reload: Error:Modul 98_HMinfo deactivated:
Global symbol "@intAtTS" requires explicit package name (did you forget to declare "my @intAtTS"?) at ./FHEM/98_HMinfo.pm line 1770, <$fh> line 446.
BEGIN not safe after errors--compilation aborted at ./FHEM/98_HMinfo.pm line 2788, <$fh> line 446.

2021.05.20 12:14:02.397 0: Global symbol "@intAtTS" requires explicit package name (did you forget to declare "my @intAtTS"?) at ./FHEM/98_HMinfo.pm line 1770, <$fh> line 446.
BEGIN not safe after errors--compilation aborted at ./FHEM/98_HMinfo.pm line 2788, <$fh> line 446.



das bedeutet also, dass einer dieser timer das problem verursacht hat.
oder kann es auch ein modul sein, das hier nicht auftaucht?:
Thu Jan  1 01:00:00       0: freezemon_ProcessTimer        :TYPE : freezemon NAME : freezemon STATE : s:10:24:08 e:10:24:09 f:1.183 d:no bad guy found :-(
Thu Jan  1 01:00:00       2: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : wlan_check STATE : present
Thu Jan  1 01:00:00       5: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : p_nas_check STATE : absent
Thu Jan  1 01:00:00      10: CUL_HM_valvePosUpdt            :valvePos:B5B5B501
Thu Jan  1 01:00:00      12: WOL_UpdateReadings            :TYPE : WOL NAME : wol_tv_samsung STATE : on
Thu Jan  1 01:00:00      13: HMLAN_KeepAlive                :keepAlive:hmlan1
Thu Jan  1 01:00:00      13: HMUARTLGW_CheckCredits        :HMUARTLGW_CheckCredits:hmuart1
Thu Jan  1 01:00:00      17: UWZ_Start                      :TYPE : UWZ NAME : Unwetterzentrale STATE : location: home --- events: 0 --- update: 2020-01-05 03:58:39
Thu Jan  1 01:00:00      17: WOL_UpdateReadings            :TYPE : WOL NAME : wol_laptop_asus STATE : off
Thu Jan  1 01:00:00      18: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : u11_fb STATE : absent
Thu Jan  1 01:00:00      22: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:01:00 NAME : a_io_internals STATE : Next: 12:06:17
Thu Jan  1 01:00:00      25: CUL_HM_valvePosUpdt            :valvePos:B3B3B301
Thu Jan  1 01:00:00      27: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:01:00 NAME : a_heating_control STATE : Next: 12:06:22
Thu Jan  1 01:00:00      27: watchdog_Trigger              :TYPE : watchdog NAME : w_set_broetje_raumtemp STATE : Next: 12:06:22
Thu Jan  1 01:00:00      28: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : u11_bt STATE : absent
Thu Jan  1 01:00:00      29: PID20_Calc                    :PID20.AZ
Thu Jan  1 01:00:00      29: PID20_Calc                    :PID20.Bad
Thu Jan  1 01:00:00      29: PID20_Calc                    :PID20.Kueche
Thu Jan  1 01:00:00      41: DLNAClient_startUPnPScan      :TYPE : DLNAClient NAME : dlnaClient_samsung STATE : off
Thu Jan  1 01:00:00      47: CODE(0x4b4f170)                :update:Broetje
Thu Jan  1 01:00:00      47: FRITZBOX_Readout_Start        :fritzbox.Readout
Thu Jan  1 01:00:00      47: PID20_Calc                    :PID20.WZ
Thu Jan  1 01:00:00      47: SIP_watch_listen              :triggerLiveCam
Thu Jan  1 01:00:00      47: SYSMON_Update                  :TYPE : SYSMON NAME : sysmon STATE : Initialized
Thu Jan  1 01:00:00      53: BlockingKill                  :fn : PRESENCE_DoLocalBluetoothScan finishFn : PRESENCE_ProcessLocalScan abortFn : PRESENCE_ProcessAbortedScan
Thu Jan  1 01:00:00      54: FW_closeInactiveClients        :0
Thu Jan  1 01:00:00      56: BlockingKill                  :fn : PRESENCE_DoLocalPingScan finishFn : PRESENCE_ProcessLocalScan abortFn : PRESENCE_ProcessAbortedScan
Thu Jan  1 01:00:00      69: CUL_HM_valvePosUpdt            :valvePos:B6B6B601
Thu Jan  1 01:00:00      74: CUL_HM_valvePosUpdt            :valvePos:B2B2B201
Thu Jan  1 01:00:00      91: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:05 NAME : a_pSizeAt STATE : Next: 12:07:27
Thu Jan  1 01:00:00     102: DLNARenderer_renewSubscriptions :TYPE : DLNARenderer NAME : DLNA_84a466d8e6d1 STATE : stopped
Thu Jan  1 01:00:00     119: CUL_HM_valvePosUpdt            :valvePos:B4B4B401
Thu Jan  1 01:00:00     129: CUL_HM_valvePosUpdt            :valvePos:B1B1B101
Thu Jan  1 01:00:00     150: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:03 NAME : a_rssi_test STATE : disabled
Thu Jan  1 01:00:00     245: HourCounter_Run                :Pumpe.Garten.Brunnen.Cnt
Thu Jan  1 01:00:00     245: HourCounter_Run                :hc_system_attak
Thu Jan  1 01:00:00     246: CODE(0x4968248)                :NAME : myTwilight_sunpos MODIFIER : sunpos
Thu Jan  1 01:00:00     256: CODE(0x4b4f170)                :update:Benzinpreis
Thu Jan  1 01:00:00     256: CODE(0x4b4f170)                :update:BenzinpreisBornum
Thu Jan  1 01:00:00     256: CODE(0x4b4f170)                :update:BenzinpreisEldingen
Thu Jan  1 01:00:00     256: CODE(0x4b4f170)                :update:BenzinpreisHohne
Thu Jan  1 01:00:00     257: CODE(0x4b4f170)                :update:Verkehr_nach_Hause
Thu Jan  1 01:00:00     257: FHEM::Astro::Update            :TYPE : Astro NAME : astro STATE : Updated
Thu Jan  1 01:00:00     257: HMinfo_autoUpdate              :sUpdt:hminfo
Thu Jan  1 01:00:00     288: watchdog_Trigger              :TYPE : watchdog NAME : wd_bsbReset STATE : Next: 12:10:44
Thu Jan  1 01:00:00     456: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:14:41 NAME : a STATE : disabled
Thu Jan  1 01:00:00     549: DWD_OpenData::Timer            :TYPE : DWD_OpenData NAME : dwd STATE : defined
Thu Jan  1 01:00:00     557: CUL_HM_ActCheck                :ActionDetector
Thu Jan  1 01:00:00     685: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:15:00 NAME : AutoSave STATE : Next: 12:17:21
Thu Jan  1 01:00:00    2272: PROPLANTA_Start                :TYPE : PROPLANTA NAME : myProPlant STATE : last forcast-update: 2020-01-15 02:33:26 --- last observation-time: 02:00 updated at 2020-01-15 02:33:26
next rain event: 0.2 mm rain for 3 hours ----- in 2 days at 21:00
Thu Jan  1 01:00:00    2916: CODE(0x4b4f170)                :update:yr
Thu Jan  1 01:00:00    3244: DOIF_TimerTrigger              :REF(0x819c750)
Thu Jan  1 01:00:00   21244: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 18:00:00 NAME : bew20 STATE : Next: 18:00:00
Thu Jan  1 01:00:00   31182: CODE(0x4957a50)                :NAME : myTwilight_ss_indoor MODIFIER : ss_indoor
Thu Jan  1 01:00:00   31182: CODE(0x4957a50)                :NAME : myTwilight_ss_weather MODIFIER : ss_weather
Thu Jan  1 01:00:00   32584: CODE(0x4957a50)                :NAME : myTwilight_ss MODIFIER : ss
Thu Jan  1 01:00:00   32584: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : {sunset("REAL")} NAME : set_TagNacht_nacht STATE : Next: 21:09:00
Thu Jan  1 01:00:00   35672: CODE(0x4957a50)                :NAME : myTwilight_ss_civil MODIFIER : ss_civil
Thu Jan  1 01:00:00   39244: DOIF_TimerTrigger              :REF(0x931b808)
Thu Jan  1 01:00:00   39527: CODE(0x4957a50)                :NAME : myTwilight_ss_naut MODIFIER : ss_naut
Thu Jan  1 01:00:00   42814: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 23:59:30 NAME : a_log_start STATE : disabled
Thu Jan  1 01:00:00   42843: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 23:59:59 NAME : a_summerDays STATE : Next: 23:59:59
Thu Jan  1 01:00:00   42845: CODE(0x495f568)                :NAME : myTwilight_Midnight MODIFIER : Midnight
Thu Jan  1 01:00:00   42845: FileLog_dailySwitch            :FW_detailFn : FileLog_fhemwebFn
Thu Jan  1 01:00:00   43264: CODE(0x4b4f170)                :update:git
Thu Jan  1 01:00:00   43444: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:10:00 NAME : CheckEventHeute STATE : disabled
Thu Jan  1 01:00:00   43444: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:10:00 NAME : a_log_end STATE : disabled
Thu Jan  1 01:00:00   43564: CODE(0x4b4f170)                :update:eq3
Thu Jan  1 01:00:00   46444: DOIF_TimerTrigger              :REF(0x81040c8)
Thu Jan  1 01:00:00   47115: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 01:11:11 NAME : set_TagNacht_tag STATE : Next: 01:11:11
Thu Jan  1 01:00:00   53344: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 02:55 NAME : a_mailcheck_disable STATE : Next: 02:55:00
Thu Jan  1 01:00:00   69082: CUL_HM_statCntRfresh          :StatCntRfresh
Thu Jan  1 01:00:00   71644: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 08:00:00 NAME : bew10 STATE : Next: 08:00:00
Thu Jan  1 01:00:00   75244: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 09:00 NAME : a_teich_pumpe STATE : disabled
Thu Jan  1 01:00:00   79516: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 10:11:12 NAME : a_delete_old_garbage STATE : Next: 10:11:12
Thu Jan  1 01:00:00   81844: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 10:50:00 NAME : a_dwd_download STATE : disabled
Thu Jan  1 01:00:00   82444: DOIF_TimerTrigger              :REF(0x933c968)
Thu Jan  1 01:00:00  308524: CODE(0x4b4f170)                :update:eq4
Thu Jan  1 01:00:00 8421108: Nina_Start                    :TYPE : Nina NAME : nina STATE : Warnungen: 4 Lokal: 1



mich wundert ja auch immer, dass devices, die mit "attr disable 1" definiert sind, trotzdem hier auftauchen.


die neue sortierung verstehe ich noch nicht wirklich, mal schauen:
Fri May 21 00:00:01   37772: FileLog_dailySwitch            :FW_detailFn : FileLog_fhemwebFn
Fri May 21 00:00:01   37772: Twilight_Midnight              :NAME : myTwilight_Midnight MODIFIER : Midnight
Fri May 21 00:07:00   38191: GetUpdate                      :update:git
Fri May 21 00:10:00   38371: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:10:00 NAME : CheckEventHeute STATE : disabled
Fri May 21 00:10:00   38371: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:10:00 NAME : a_log_end STATE : disabled
Fri May 21 00:12:00   38491: GetUpdate                      :update:eq3
Fri May 21 01:00:00   41371: DOIF_TimerTrigger              :REF(0x73f7b38)
Fri May 21 01:11:11   42042: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 01:11:11 NAME : set_TagNacht_tag STATE : Next: 01:11:11
Fri May 21 02:55:00   48271: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 02:55 NAME : a_mailcheck_disable STATE : Next: 02:55:00
Fri May 21 08:00:00   66571: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 08:00:00 NAME : bew10 STATE : Next: 08:00:00
Fri May 21 08:39:22   68934: CUL_HM_statCntRfresh          :StatCntRfresh
Fri May 21 09:00:00   70171: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 09:00 NAME : a_teich_pumpe STATE : disabled
Fri May 21 10:11:12   74443: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 10:11:12 NAME : a_delete_old_garbage STATE : Next: 10:11:12
Fri May 21 10:50:00   76771: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 10:50:00 NAME : a_dwd_download STATE : disabled
Fri May 21 11:00:00   77371: DOIF_TimerTrigger              :REF(0x710fe18)
Sat Aug 28 12:39:50 8636961: Nina_Start                    :TYPE : Nina NAME : nina STATE : Warnungen: 4 Lokal: 1
Thu May 20 13:30:28       0: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:01:00 NAME : a_heating_control STATE : Next: 13:30:28
Thu May 20 13:30:29       0: freezemon_ProcessTimer        :TYPE : freezemon NAME : freezemon STATE : s:13:05:47 e:13:05:54 f:7.28 d:tmr-BlockingKill(N/A)
Thu May 20 13:30:31       3: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:03 NAME : a_rssi_test STATE : disabled
Thu May 20 13:30:32       4: WOL_UpdateReadings            :TYPE : WOL NAME : wol_tv_samsung STATE : off
Thu May 20 13:30:34       6: CUL_HM_valvePosTmr            :valveTmr:B2B2B201
Thu May 20 13:30:36       8: HMLAN_KeepAlive                :keepAlive:hmlan1
Thu May 20 13:30:36       8: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : u11_bt STATE : absent
Thu May 20 13:30:38      10: DLNAClient_startUPnPScan      :TYPE : DLNAClient NAME : dlnaClient_samsung STATE : offline
Thu May 20 13:30:41      13: HMUARTLGW_CheckCredits        :HMUARTLGW_CheckCredits:hmuart1
Thu May 20 13:30:42      14: SYSMON_Update                  :TYPE : SYSMON NAME : sysmon STATE : Initialized
Thu May 20 13:30:43      14: FW_closeInactiveClients        :0
Thu May 20 13:30:43      15: PID20_Calc                    :PID20.AZ
Thu May 20 13:30:43      15: PID20_Calc                    :PID20.Bad
Thu May 20 13:30:43      15: PID20_Calc                    :PID20.Kueche
Thu May 20 13:30:43      15: PID20_Calc                    :PID20.WZ
Thu May 20 13:30:43      15: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : p_nas_check STATE : absent
Thu May 20 13:30:43      15: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : u11_wlan STATE : absent
Thu May 20 13:30:43      15: WOL_UpdateReadings            :TYPE : WOL NAME : wol_laptop_asus STATE : off
Thu May 20 13:30:45      17: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : wlan_check STATE : present
Thu May 20 13:30:54      26: GetUpdate                      :update:Broetje
Thu May 20 13:30:56      28: SIP_watch_listen              :triggerLiveCam
Thu May 20 13:30:57      29: PRESENCE_StartLocalScan        :TYPE : PRESENCE NAME : u11_fb STATE : absent
Thu May 20 13:30:59      30: FRITZBOX_Readout_Start        :fritzbox.Readout
Thu May 20 13:31:12      44: BlockingKill                  :fn : PRESENCE_DoLocalPingScan finishFn : PRESENCE_ProcessLocalScan abortFn : PRESENCE_ProcessAbortedScan
Thu May 20 13:31:23      54: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:01:00 NAME : a_io_internals STATE : Next: 13:31:23
Thu May 20 13:31:31      63: CUL_HM_valvePosUpdt            :valvePos:B6B6B601
Thu May 20 13:31:37      69: CUL_HM_valvePosUpdt            :valvePos:B5B5B501
Thu May 20 13:31:47      79: CUL_HM_valvePosUpdt            :valvePos:B1B1B101
Thu May 20 13:32:04      96: CUL_HM_valvePosUpdt            :valvePos:B3B3B301
Thu May 20 13:32:14     106: UWZ_Start                      :TYPE : UWZ NAME : Unwetterzentrale STATE : location: home --- events: 0 --- update: 2020-01-05 03:58:39
Thu May 20 13:32:24     116: CUL_HM_valvePosUpdt            :valvePos:B4B4B401
Thu May 20 13:34:25     237: HMinfo_autoUpdate              :sUpdt:hminfo
Thu May 20 13:34:28     240: watchdog_Trigger              :TYPE : watchdog NAME : w_set_broetje_raumtemp STATE : Next: 13:34:28
Thu May 20 13:34:32     244: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:05 NAME : a_pSizeAt STATE : Next: 13:34:32
Thu May 20 13:34:48     260: GetUpdate                      :update:Benzinpreis
Thu May 20 13:34:48     260: GetUpdate                      :update:BenzinpreisBornum
Thu May 20 13:34:48     260: GetUpdate                      :update:BenzinpreisEldingen
Thu May 20 13:34:48     260: GetUpdate                      :update:BenzinpreisHohne
Thu May 20 13:34:48     260: GetUpdate                      :update:Verkehr_nach_Hause
Thu May 20 13:34:49     261: FHEM::Astro::Update            :TYPE : Astro NAME : astro STATE : Updated
Thu May 20 13:34:51     262: Twilight_sunpos                :NAME : myTwilight_sunpos MODIFIER : sunpos
Thu May 20 13:34:56     267: watchdog_Trigger              :TYPE : watchdog NAME : wd_bsbReset STATE : Next: 13:34:56
Thu May 20 13:34:57     269: HMCCURPCPROC_RPCPing          :TYPE : HMCCURPCPROC NAME : d_rpc001025BidCos_RF STATE : running/OK
Thu May 20 13:35:00     272: HourCounter_Run                :Pumpe.Garten.Brunnen.Cnt
Thu May 20 13:35:00     272: HourCounter_Run                :hc_system_attak
Thu May 20 13:38:12     463: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:14:41 NAME : a STATE : disabled
Thu May 20 13:39:25     537: CUL_HM_ActCheck                :ActionDetector
Thu May 20 13:39:26     538: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 00:15:00 NAME : AutoSave STATE : Next: 13:39:26
Thu May 20 13:39:59     571: PROPLANTA_Start                :TYPE : PROPLANTA NAME : myProPlant STATE : last forcast-update: 2020-01-15 02:33:26 --- last observation-time: 02:00 updated at 2020-01-15 02:33:26
next rain event: 0.2 mm rain for 3 hours ----- in 2 days at 21:00
Thu May 20 13:45:05     876: DWD_OpenData::Timer            :TYPE : DWD_OpenData NAME : dwd STATE : defined
Thu May 20 13:54:32    1443: GetUpdate                      :update:yr
Thu May 20 18:00:00   16171: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 18:00:00 NAME : bew20 STATE : Next: 18:00:00
Thu May 20 20:45:37   26109: Twilight_fireEvent            :NAME : myTwilight_ss_indoor MODIFIER : ss_indoor
Thu May 20 20:45:37   26109: Twilight_fireEvent            :NAME : myTwilight_ss_weather MODIFIER : ss_weather
Thu May 20 21:08:59   27511: Twilight_fireEvent            :NAME : myTwilight_ss MODIFIER : ss
Thu May 20 21:09:00   27511: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : {sunset("REAL")} NAME : set_TagNacht_nacht STATE : Next: 21:09:00
Thu May 20 22:00:27   30599: Twilight_fireEvent            :NAME : myTwilight_ss_civil MODIFIER : ss_civil
Thu May 20 23:00:00   34171: DOIF_TimerTrigger              :REF(0x7635118)
Thu May 20 23:04:42   34454: Twilight_fireEvent            :NAME : myTwilight_ss_naut MODIFIER : ss_naut
Thu May 20 23:59:30   37741: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 23:59:30 NAME : a_log_start STATE : disabled
Thu May 20 23:59:59   37770: at_Exec                        :TYPE : at PERIODIC : yes TIMESPEC : 23:59:59 NAME : a_summerDays STATE : Next: 23:59:59
Thu May 27 01:48:00  562651: GetUpdate                      :update:eq4



gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

noansi

#3
Hallo Frank,

Zitatich musste allerdings noch diese änderung in deinem code vornehmen:
Ups, danke für den Hinweis. Wenn ich jetzt nochmal so drüber nachdenke...  :o
Das muss ich wohl über eine Funktion lösen.

Zitatdas bedeutet also, dass einer dieser timer das problem verursacht hat.
oder kann es auch ein modul sein, das hier nicht auftaucht?:
beides ist möglich.
Zum Testen würde ich mal devices nach und nach aus der config entfernen und schauen, ob es verschwindet. Mit freezemon würde ich anfangen, weil es am tiefsten im System arbeitet.

Zitatdie neue sortierung verstehe ich noch nicht wirklich, mal schauen:
Stimmt, das sort @ak beim Rückgabe join sollte ohne sort eine nach Zeit sortierte Liste ergeben.
Das @intAtA muss nach Zeit sortiert sein, sonst ist das Problem noch viel größer.
Mach das sort in der Zeile auch noch weg, siehe geändert oben.

Gruß, Ansgar.

frank

die sortierung passt nun.
freezemon ist nicht die ursache.
und mittlerweile zeigt auch showTimer short die warnings. ich könnte schwören, das war vorher nicht, seltsam.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

noansi

Hallo Frank,

Zitatmittlerweile zeigt auch showTimer short die warnings
Welche Variante, ist egal. Wenn {TRIGGERTIME} undefiniert ist, kommt die Warning in beiden Varianten von showtimer.

Hast Du eventuell noch alte Modulversionen laufen, also welche vom Update ausgeschlossen? Oder welche, die nicht aus dem SVN stammen?

Ich bau zum Testen oben noch ein Logging für undefinierte TRIGERTIME rein, was bei showTime dann auch einen Log Eintrag erzeugt.
Dabei wird auch die {atNr} mitgeschrieben, was vielleicht auch noch Hinweise liefert.

Gruß, Ansgar.

frank

ZitatWelche Variante, ist egal.
nach deiner erklärung ist das eigentlich logisch.
es war damals aber trotzdem abhängig. das könnte im log auch zu sehen sein.

ZitatHast Du eventuell noch alte Modulversionen laufen, also welche vom Update ausgeschlossen? Oder welche, die nicht aus dem SVN stammen?
sowohl, als auch.
es werden auch immer mehr vom update ausgeschlossene module.  ;)
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

noansi

Hallo Frank,

Zitatsowohl, als auch.
ab hier https://forum.fhem.de/index.php/topic,81365.msg734607.html#msg734607ff gab es eine intensive Optimierung des Timerhandlings mit Umstellung auf sortiertes Array. So musste damals z.B. auch apptime umgestellt werden.

Wenn Du ein älteres oder "fremd" Modul im Einsatz hast, das am Timerhandling nach altem Stand in irgendeiner Form modifiziert, dann wäre das ein Problemmodulkandidat.

Es würde direkt auffallen, wenn nicht aus Kompatibilitätserwägungen damals noch der %intAt Hash erhalten geblieben wäre.
Wäre übrigens auch ein Weg. die fhem.pl mal testweise um den %intAt Hash zu erleichtern. Also definition und initalisierung auskommentieren und in den Funktionen HandleTimeout, InternalTimer und RemoveInternalTimer die betreffenden Verwendungsstellen (also 5 Zeilen insgesammt mit der hash Definition und Initialisierung) auskommentieren. Das ist auch kein Problem, da die Einträge im hash keine sonstige Funktion haben.

Dann kracht es in allen Modulen, die direkt auf den hash zugreifen und Problemkandidaten dieser älteren Art lassen sich somit recht schnell finden.

Gruß, Ansgar.

frank

#8
zusätzlich zum neuen code von ansgar aus antwort #1 muss noch
use B qw(svref_2object);
am anfang von 98_HMinfo.pm eingebaut werden, sonst gibt es einen absturz von fhem beim aufruf von "set hminfo showTimer.

2021.10.15 18:04:23.578 3: HMinfo hminfo get:showTimer :short
Undefined subroutine &main::svref_2object called at ./FHEM/98_HMinfo.pm line 1779.


das letzte mal hatte ich zufällig freezemon am start, wodurch die funktion verfügbar war.
ich habe es direkt unter "use warnings" eingefügt. nun funktioniert es wieder.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

#9
hallo ansgar,

ZitatWäre übrigens auch ein Weg. die fhem.pl mal testweise um den %intAt Hash zu erleichtern.
das habe ich getan.
dadurch wurde nur hminfo bei fhem restart gekillt.

da das originale hminfo bei mir grundsätzlich den autoupdate timer laufen lässt und die warnings ebenfalls immer erscheinen, wenn ich showtimer starte, habe ich die vermutung, dass hminfo selbst das problem ist.

zusätzlich erscheint mit gändertem hminfo nie die neue logmeldung für "triggertime".
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

moin,
ich habe mir das problem nochmal angeschaut.


Zitat von: noansi am 15 Mai 2021, 19:28:05
Deutet darauf hin, dass ein Modul was an den Timern falsch oder kaputt macht. Und das müßte dann in dem betreffenden Modul behoben werden.
der eigentliche auslöser des problems ist nicht ein falscher/kaputer timerhash, sondern ein falscher zugriff auf {TRIGGERTIME} im timerhash.
das erklärt nun auch, warum ich kein problematisches modul gefunden habe. es gibt keins.

folgende änderung löst bereits das warning problem:
      #push @ak,  substr(localtime($intAt{$_}{TRIGGERTIME}),0,19)
      push @ak,  substr(localtime($intAt{$ats}{TRIGGERTIME}),0,19)


allerdings gibt es dann noch ein sortierungs problem, da auf die 1. spalte "wochentag" sortiert wird. längere timer werden somit ggf falsch einsortiert.
Thu Jan 27 12:25:57 8633917: Nina_Start                    :NAME : nina
Tue Oct 19 15:07:22       2: HMUARTLGW_CheckCredits        :HMUARTLGW_CheckCredits:hmuart1
Tue Oct 19 15:07:26       6: DLNAClient_startUPnPScan      :NAME : dlnaClient_samsung
Tue Oct 19 15:07:29       9: HMLAN_KeepAlive                :keepAlive:hmlan1
...




fazit: es sollte trotzdem ansgars version für das timerarray aus antwort #1 eingebaut werden plus:
use B qw(svref_2object);
das ist zukunftssicher und die sortierung passt ebenfalls.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html