Hallo,
ich baue mir gerade eine Oberfläche mit Tablet UI zusammen und hier stört es extrem, dass mein FHEM aktuell ständig hängt (vereinzelt bis zu 10sec). FHEM läuft auf einem Raspberry3.
Ich habe dann apptime bemüht, aber ich verstehe den Output nicht ausreichend
name function max count total average param Max call
tmr-DOIF_SleepTrigger HASH(0x594d4b8) 7946 1 7946 7946.00 HASH(0x594d4b8)
tmr-DOIF_SleepTrigger HASH(0x5e86ec0) 7820 2 8195 4097.50 HASH(0x5e86ec0)
tmr-CUL_HM_respPendTout respPend:29F26F 7383 126 9034 71.70 respPend:29F26F
HMLAN2 HMLAN_Read 7230 24561 3611472 147.04 HASH(0x64cd1b8)
TRX_0 TRX_Read 6634 13009 303811 23.35 HASH(0x62605b8)
FileLof_Aussenlicht FileLog_Log 6627 155993 350649 2.25 HASH(0x5144170); HASH(0x291bfd8)
tmr-at_Exec HASH(0x768c7e0) 6543 1587 622439 392.21 HASH(0x768c7e0)
FileLog_KuecheNeu FileLog_Log 6529 155993 13489 0.09 HASH(0x4ed2a00); HASH(0x2a71d18)
UhrzeitECMD ECMDDevice_Set 6256 17498 542484 31.00 HASH(0x4edb138); UhrzeitECMD; on
Kalender_Muell_Anzeige CALVIEW_Notify 5064 155993 43803 0.28 HASH(0x74f5c20); HASH(0x510a228)
FileLog_EG.Klo.Stelltrieb FileLog_Log 5043 673 9875 14.67 HASH(0x4e0e4c0); HASH(0x4f9bc60)
FileLog_GarageLicht FileLog_Log 5026 146 8009 54.86 HASH(0x5948650); HASH(0x5ada838)
tmr-DOIF_SleepTrigger HASH(0x2b77cf8) 4808 1156 1908901 1651.30 HASH(0x2b77cf8)
HMLAN1 HMLAN_Read 4769 24851 3620770 145.70 HASH(0x58bfd00)
tmr-Calendar_Wakeup HASH(0x4f541c8) 4302 18 44919 2495.50 HASH(0x4f541c8)
ARDUINO ECMD_Read 4248 9996 540021 54.02 HASH(0x513fb98)
FileLog_Test0 FileLog_Log 4167 155993 59889 0.38 HASH(0x74b77d8); HASH(0x2a3ae78)
Kalender_Familie_Anzeige CALVIEW_Notify 4111 155993 69914 0.45 HASH(0x75b7a20); HASH(0x4f541c8)
tmr-DOIF_TimerTrigger REF(0x781f888) 4083 1 4083 4083.00 REF(0x781f888)
tmr-perfmon_ProcessTimer HASH(0x569d968) 4067 50214 18685 0.37 HASH(0x569d968)
tmr-DOIF_TimerTrigger REF(0x76fbed8) 3922 1 3922 3922.00 REF(0x76fbed8)
Ich bin leider etwas aufgeschmissen...
Könnt Ihr etwas rauslesen aus dem Logfile? Was versteckt sich hinter DOIF_SleepTrigger oder "at_Exec". Mein Problem ist, dass ich nicht sehe, welche "DOIF" bzw "at" diese Verzögerungen auslöst. Es ist "nur" ein HASH angegeben, mit dem ich nichts anfangen kann
Wie komme ich mit Perl vom HASH Wert auf den Funktionsnamen bzw Device-Namen. Kann ich in der Befehlszeile in FHEM irgendwas eingeben, um vom HASH Wert auf einen sprechenden Namen zu kommen?.......so was wie {return {0x569d968}->{NAME} ;; }???
Gruß Udo
at_Exec ist die Routine, die beim at das Befehl ausfuehrt.
Eigentlich liefert apptime bei mir die Zeile mit dem Namen des ats:
tmr-at_Exec HASH(0x7ffecaa3c368) 1 3 1 0.33 1 HASH(atX)
Aus Hex-Adresse den Hash zu finden faellt mir nur sowas ein:
{ join(",", grep { $defs{$_}."" eq "HASH(0x7ffecaa3c368)" } keys %defs) }
Cool. Danke schon mal. Das hilft schon mal weiter.
Der Ausdruck
{ join(",", grep { $defs{$_}."" eq "HASH(0x7ffecaa3c368)" } keys %defs) }
funtktioniert klasse.
Ist komisch. Manchmal kommen die "sprechenden" Namen nicht und anstelle werden die HASH's angezeigt. Manchmal erscheinen aber die Namen, wie bei dir.
Ich habe nach meinem Post von gestern fhem mal neugestartet. Jetzt erscheinen die HASH's als Namen (siehe unten). Was jetzt auch noch erscheint ist
name function max count total average maxDly
Fb_CallMon FB_CALLMONITOR_Read 10611 1 10611 10611.00 0 HASH(Fb_CallMon)
Fb_CallList FB_CALLLIST_Notify 10345 7 10345 1477.86 0 HASH(Fb_CallList); HASH(Fb_CallMon)
Kalender_Muell_Anzeige CALVIEW_Notify 5244 15446 5245 0.34 0 HASH(Kalender_Muell_Anzeige); HASH(Kalender_Muell)
tmr-DOIF_SleepTrigger HASH(0x3b3c3e8) 4649 136 433057 3184.24 3723 HASH(di_LedRemoteUpdate)
Kalender_Muell_Ende notify_Exec 4324 4 4324 1081.00 0 HASH(Kalender_Muell_Ende); HASH(Kalender_Muell)
tmr-DOIF_TimerTrigger REF(0x5f766d0) 4314 1 4314 4314.00 2 REF(0x5f766d0)
tmr-DOIF_TimerTrigger REF(0x6c02ac8) 4246 1 4246 4246.00 2 REF(0x6c02ac8)
tmr-DOIF_TimerTrigger REF(0x6c0a058) 4074 1 4074 4074.00 3 REF(0x6c0a058)
nt_Abfalltermine notify_Exec 4066 4 4066 1016.50 0 HASH(nt_Abfalltermine); HASH(Kalender_Muell)
HMLAN2 HMLAN_Read 4034 2938 532229 181.15 0 HASH(HMLAN2)
tmr-DOIF_TimerTrigger REF(0x7005390) 3876 1 3876 3876.00 3 REF(0x7005390)
tmr-DOIF_TimerTrigger REF(0x6669490) 3821 1 3821 3821.00 2 REF(0x6669490)
ARDUINO ECMD_Read 3763 1175 168375 143.30 0 HASH(ARDUINO)
tmr-DOIF_TimerTrigger REF(0x5f854e0) 3756 1 3756 3756.00 2 REF(0x5f854e0)
tmr-DOIF_TimerTrigger REF(0x67602e0) 3744 1 3744 3744.00 3 REF(0x67602e0)
tmr-DOIF_TimerTrigger REF(0x71694c8) 3731 1 3731 3731.00 646 REF(0x71694c8)
tmr-DOIF_TimerTrigger REF(0x70c1e18) 3675 1 3675 3675.00 13 REF(0x70c1e18)
tmr-DOIF_TimerTrigger REF(0x66bf478) 3659 1 3659 3659.00 2 REF(0x66bf478)
tmr-DOIF_TimerTrigger REF(0x5f57250) 3648 1 3648 3648.00 2 REF(0x5f57250)
tmr-DOIF_TimerTrigger REF(0x6cc4878) 3639 1 3639 3639.00 3 REF(0x6cc4878)
tmr-DOIF_TimerTrigger REF(0x6537db0) 3635 1 3635 3635.00 2 REF(0x6537db0)
Was bedeuten diese "REF(0x6537db0)". Was sind das für Referenzen und wie komme ich an die sprechenden Namen dieser Referenzen?
Gruß Udo