Neues Modul: 98_FREEZEMON Freezes monitoren und Verursacher identifizieren

Begonnen von KernSani, 05 Februar 2018, 23:27:22

Vorheriges Thema - Nächstes Thema

binford6000

Hallo KernSani,
ich habe immer die gleichen Kandidaten in der Freeze-Liste, z.B. meine HUE-Sensoren:

HUEDevice_GetUpdate(fl_bwm) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue)

Wie wäre es mit einer Art Whitelist für devices bei denen bekannt ist, dass sie Freezes produzieren,
es aber toleriert oder ignoriert werden kann?
VG Sebastian

KernSani

Zitat von: P.A.Trick am 11 Februar 2018, 11:26:53
Ich habe auf meinem QNAP das folgende Problem:
Hab's... hängt mit deiner älteren Perl Version zusammen (mal an ein update gedacht?)

Ersetze bitte mal Zeile 203, aus

while (keys @freezes > 20) {
sollte werden:
while (scalar(@freezes) > 20) {

Das sollte helfen. Kommt morgen auch im Update.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Zitat von: binford6000 am 11 Februar 2018, 13:28:27
Wie wäre es mit einer Art Whitelist für devices bei denen bekannt ist, dass sie Freezes produzieren,
es aber toleriert oder ignoriert werden kann?
Yep, den Gedanken hatte ich auch schon, auch aus einem anderen Gedanken heraus, es gibt Prozesse, die einfach ständig laufen (bei mir z.B. der HMLAN_KeepAlive) und die daher sehr häufig unter den möglichen Kandidaten erscheinen obwohl sie natürlich keiner sind... Mal schauen, vielleicht gibt's heute noch eine Version zum Testen.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

P.A.Trick

Zitat von: KernSani am 11 Februar 2018, 14:01:28
Hab's... hängt mit deiner älteren Perl Version zusammen (mal an ein update gedacht?)

Ersetze bitte mal Zeile 203, aus

while (keys @freezes > 20) {
sollte werden:
while (scalar(@freezes) > 20) {

Das sollte helfen. Kommt morgen auch im Update.

Perfekt das klappt! Vielen lieben Dank!
zum Update: ist leider auf der QNAP nicht so einfach möglich!
VG Patrick
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

KernSani

#49
Zitat von: binford6000 am 11 Februar 2018, 13:28:27
Hallo KernSani,
ich habe immer die gleichen Kandidaten in der Freeze-Liste, z.B. meine HUE-Sensoren:

HUEDevice_GetUpdate(fl_bwm) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue)

Wie wäre es mit einer Art Whitelist für devices bei denen bekannt ist, dass sie Freezes produzieren,
es aber toleriert oder ignoriert werden kann?
VG Sebastian
Hi Sebastian,
die angehängte Version hat ein neues Attribut:

  • fm_ignoreDev: Liste von Komma-getrennten Devices. Wenn alle möglicherweise einen Freeze verursachenden Device in dieser Liste sind, wird der Freeze ignoriert (nicht geloggt)
Wäre schön, wenn du ein bisschen testen könntest, bevor ich das einchecke.
Danke,
Oli

Edit: bei einem Blick ins Log ist mir heute morgen aufgefallen, das die angehängte Version einen Bug in der Ausgabeformatierung enthält, sowie eine Debug Meldung versehentlich mit Loglevel 3 kommt. Fixe ich im Laufe des Tages
Edit2: Aktualisierung angehängt
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

jmike

Hi.

Danke fürs Modul.

Kannst du vielleicht die neueste Version immer im ersten Thread anhängen?
Das ist (meines Wissens nach) hier gängige Praxis und macht es, vor allem für Modul-Einsteiger, einfacher einzusteigen oder updaten ohne den Überblick über alle Posts zu haben :)

cheers

Motivierte linke Hände

Sollen Einsteiger immer die letzte Testversion finden? Macht es nicht mehr Sinn, wenn die die Version vom Feed nehmen?
FHEM 6 in einer KVM VM mit Ubuntu
HM-CFG-USB2, 2xHM-CFG-HMLAN, HM-HMUARTLGW mit 100+ HomeMatic Devices, Geofencing, Fritzbox, Unifi, HUE, Harmony-Hub, Denon-Receiver-Modul, Calendar, GardenaSmartDevice, Shelly, MQTT (zigbee2mqtt, Tasmota und Shelly) und ein wenig 1Wire.

binford6000

ZitatEdit2: Aktualisierung angehängt
Moin,
ich habe mit der ersten neuen Version auch weiterhin die ignorDev-devices im Log:
fm_ignoreDev
Wohnung,fl_bwm,Light_hue,Temp_hue,Harmony

Log:
2018.02.12 08:54:53 2: FreezeMon: SystemFreeze possible freeze starting at 08:54:47, delay is 6.081 possibly caused by harmony_connect(Harmony) HOMEMODE_GetUpdate(Wohnung) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue) HUEDevice_GetUpdate(fl_bwm) FW_closeInactiveClients(N/A)
2018.02.12 08:59:03 2: FreezeMon: SystemFreeze possible freeze starting at 08:58:58, delay is 5.522 possibly caused by harmony_connect(Harmony) HOMEMODE_GetUpdate(Wohnung) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue) HUEDevice_GetUpdate(fl_bwm)

Teste jetzt mal die neue Version.
VG Sebastian

binford6000

ZitatMacht es nicht mehr Sinn, wenn die die Version vom Feed nehmen?
Sehe ich auch so. Die letzte stabile Version gibts im SVN und alle Testversionen hier im Thread.
VG Sebastian

jmike

Zitat von: binford6000 am 12 Februar 2018, 09:50:59
Die letzte stabile Version gibts im SVN...

... oh my bad  ;D

Ich hab verpasst, dass das Modul schon im SVN ist.
Dachte das gibts bisher nur hier im Thread. Für Patch-versions stimme ich euch zu.

case closed ;)

binford6000

Ich habe mit der neuen Version immer noch Freezes der igrnorDev im Log:
fm_ignoreDev Wohnung,fl_bwm,Light_hue,Temp_hue,Harmony
get <device> Freeze:
2 - 2018-02-12: s:10:02:43 e:10:02:48 f:5.906 d:harmony_connect(Harmony) HOMEMODE_GetUpdate(Wohnung) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue) HU...

Im Log:
2018.02.12 10:02:48 2: FreezeMon: SystemFreeze possible freeze starting at 10:02:43, delay is 5.906 possibly caused by harmony_connect(Harmony) HOMEMODE_GetUpdate(Wohnung) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue) HUEDevice_GetUpdate(fl_bwm) HttpUtils_Err(wz_aurora_licht) HttpUtils_Err(moebHUEs) HttpUtils_Err(moebHUEs)

VG Sebastian


KernSani

Zitat von: binford6000 am 12 Februar 2018, 09:47:50
Moin,
ich habe mit der ersten neuen Version auch weiterhin die ignorDev-devices im Log:
fm_ignoreDev
Wohnung,fl_bwm,Light_hue,Temp_hue,Harmony

Log:
2018.02.12 08:54:53 2: FreezeMon: SystemFreeze possible freeze starting at 08:54:47, delay is 6.081 possibly caused by harmony_connect(Harmony) HOMEMODE_GetUpdate(Wohnung) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue) HUEDevice_GetUpdate(fl_bwm) FW_closeInactiveClients(N/A)
2018.02.12 08:59:03 2: FreezeMon: SystemFreeze possible freeze starting at 08:58:58, delay is 5.522 possibly caused by harmony_connect(Harmony) HOMEMODE_GetUpdate(Wohnung) HUEDevice_GetUpdate(Light_hue) HUEDevice_GetUpdate(Temp_hue) HUEDevice_GetUpdate(fl_bwm)

Teste jetzt mal die neue Version.
VG Sebastian
Hmmm... beim ersten Freeze hat sich noch der CloseInactiveClients mit eingeschlichen... aber der zweite müsste eigentlich ignoriert werden. Muss ich mir mal in Ruhe ansehen, könnte dann aber bis Ende der Woche dauern...


Kurz, weil mobil...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Ich habe nochmal gebastelt und fleissig getestet. Das neue ignoreDev sollte eigentlich funktionieren, wie designed. Es gibt jetzt ein zusätzliches Attribute "fm_ignoreMode":

fm_ignoreMode: Kann die Werte off,single oder all annehmen. Wenn in fm_ignoreDev Devices angegeben sind wirken sich der ignoreMode wie folgt aus: all: Ein Freeze wird nur dann ignoriert, wenn alle möglicherweise dern Freeze verursachenden Devices in der Ignore-Liste enthalten sind. Dies führt unter Umständen dazu, dass mehr Freezes geloggt werden als erwartet.
single: Ein Freeze wird ignoriert, sobald ein möglicher Verursacher in der Ignorierliste enthalten ist. Dies führt möglicherweise dazu, dass Freezes übersehen werden.
off: Alle Freezes werden geloggt, unabhängig von ignoreDev.
Sofern das Attribut nicht gesetzt ist, aber Ignore-Devices angegeben sind, wird im Modus "all" ignoriert.

AKtualisierung von fm_ignoreDev:
fm_ignoreDev: Liste von Komma-getrennten Devices. Wenn einzelne möglicherweise einen Freeze verursachenden Device in dieser Liste sind, wird der Freeze ignoriert (nicht geloggt). Bitte das Attribut fm_ignoreMode beachten

Grüße,

Oli

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

scooty

Hallo,

vielen Dank für das Modul, liefert sehr aufschlussreiche Ergebnisse.
:)

Eine Frage habe ich noch, im FHEM-Log tauchen bei mir des öfteren solche Log-Einträge auf:
2018.02.13 12:07:22.009 3: Freezemon: Reference found: CODE/__ANON__/CODE(0xc406cc0)
2018.02.13 12:07:23.007 3: Freezemon: Reference found: CODE/__ANON__/CODE(0xc357228)
2018.02.13 12:07:56.003 3: Freezemon: Reference found: CODE/__ANON__/CODE(0xbe50fc8)
2018.02.13 12:07:57.005 3: Freezemon: Reference found: CODE/__ANON__/CODE(0xbe50fc8)


Kommen wohl mit Loglevel 3 aus der Sub freezemon_apptime() nur leider sagen sie mir nichts.
Kann mir jemand ein bisschen den Hintergrund für diese Log-Einträge erläutern?

Vielen Dank,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

binford6000

Hi Oli,
habe mal über den Tag die verschiedenen Modi gurchgetestet. Aber irgendwie habe ich das Gefühl, dass zu wenig geloggt wird.
Selbst wenn ich die Attribute fm_ignoreDev und fm_ignoreMode lösche, tauchen weiterhin Freezes auf welche nicht im Log landen.
Dafür aber das hier:
2018.02.13 19:15:19 1: PERL WARNING: Use of uninitialized value $aVal in concatenation (.) or string at ./FHEM/98_freezemon.pm line 404.

Auch ein set clear, inactive, active ändert daran nichts.
Übrigens vermisse ich auch get Freezes
VG Sebastian