98_FREEZEMON - der bessere PERFMON?

Begonnen von KernSani, 03 Februar 2018, 01:08:39

Vorheriges Thema - Nächstes Thema

KernSani

Das Modul ist ab morgen (06.02.2018) Bestandteil des offiziellen Updates und wird hier https://forum.fhem.de/index.php/topic,83909.0.html weiter diskutiert.

Hallo zusammen,

ich empfinde das aufspüren von "possible freezes" mit Hilfe von PERFMON, ggf. verbose 5 und apptime als extrem umständlich. Daher habe ich auf Basis von PERFMON ein Modul geschnitzt.

FREEZEMON überwacht - ähnlich wie PERFMON mögliche Freezes, allerdings ist FREEZEMON ein echtes Modul und hat daher:

  • Readings - die geloggt werden können und damit viel einfacher ausgewertet werden können
  • Attribute - mit denen das Verhalten von freezemon beeinflusst werden kann
  • zusätzliche Funktionalität - die versucht das den Freeze verursachende Device zu identifizieren

FREEZEMON ist noch in einem sehr frühen Stadium, läuft bei mir aber seit ein paar Tagen stabil, Daher würde ich mich freuen wenn der ein oder andere sich traut zu testen und Feedback gibt.

Ich würde empfehlen, PERFMON zu deaktivieren, wenn FREEZEMON aktiv ist, da beide auf die selbe Art Freezes erkennen und dann nur alles doppelt kommt.

FREEZEMON wird ohne Parameter definiert.

define myFreezemon freezemon

damit ist der Freezemon aktiv (im Log sollte eine entsprechende Meldung geschrieben werden)

Readings (nach dem ersten erkannten Freeze):
freezeTime: Dauer des Freezes
freezeDevice: Liste von möglicherweise den Freeze auslösenden Funktionen(Devices)
fcDay: kumulierte Anzahl der Freezes pro Tag
ftDay: kumulierte Dauer der Freezes pro Tag
fcDayLast: speichert die kumulierte Anzahl der Freezes des vergangenen Tages (um tageweise plots zu erstellen)
fcDayLast: speichert die kumulierte Dauer der Freezes des vergangenen Tages (um tageweise plots zu erstellen)
state: s:<StartZeit> e:<EndeZeit>f:<Dauer> d:<Devices>

Attribute
fm_freezeTime: Wert in Sekunden (Default: 1) - Nur Freezes länger als fmFreezeTime werden als Freeze betrachtet
fm_forceApptime: Wenn FREEZEMON aktiv ist wird automatisch apptime gestartet (falls nicht aktiv)
fm_log: dynamischer Loglevel, nimmt einen String der Form 10:1 5:2 1:3 entgegen, was bedeutet: Freezes > 10 Sekunden werden mit Loglevel 1 geloggt, >5 Sekunden mit Loglevel 2 usw...
disable: aktivieren/deaktivieren der Freeze-Erkennung

Get
freeze: gibt die letzten 20 freezes zurück (in Kompakter Darstellung, wie im state) - Dies dient einem schnellen Überblick, für detailliertere Auswertungen empfehle ich die Daten zu loggen.


##############################################################################
#   Changelog:
# 0.0.08: trimming of very long lines in "get freeze"
# start freezemon only after INITIALIZED|REREADCFG (and as late as possible)
# 0.0.07: just for fun - added some color to "get freeze"
# Fixed bug with uninitialized value (Thanks Micheal.Winkler)
# 0.0.06: Code cleanup
# Fixed bug with dayLast readings
# 0.0.05: Experimental coding to improve bad guy detection
# German and English documentation added
# 0.0.04: Added Get function to get last 20 freezes
# 0.0.03: Added dynamic loglevel attribute fm_log
# Added missing "isDisabled" check in define function
# Do some checks not every second
# Fixed PERL WARNING "uninitialized value" if no Device found
# minor adjustments and bugfixes
# 0.0.02: Fixed logical issue with freezetime Attribute
# Renamed Attributes
# added dayLast readings
# fixed delete attribute "disable"
# fixed issue with missing svref_2object
# minor adjustments and bugfixes
#   0.0.01: initial version
##############################################################################


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

herrmannj

der perfmon autor liest mal mit :)

vg
joerg

MadMax-FHEM

Bin grad (länger) unterwegs aber will nichts verpassen und sobald ich zurück bin werd ich mal mein Testsystem damit "füttern"... ;)

Bin gespannt!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KölnSolar

Und schon im Testsystem aktiviert  ;D

Erste kleine Kritik:
Positiv: Ein solches Tool fehlt in FHEM. Prima Idee. Scheint schön einfach in der Handhabung.
Und schon hat FreezeMon den ersten kleinen Übeltäter aufgespürt. Und das in einem fast leeren Testsystem.  ;)
Negativ:
keine einheitliche Namensgebung, was upper/lower case betrifft: freezeTime vs. fmFreezeTime

Und nur so als Gedanke: Bei der Vielzahl der Module verliert man mittlerweile ja den Überblick. Ich könnt mir daher eine Integration in SYSMON vorstellen, was man dann als "Kernmodul" von FHEM installiert, also ein Modul wie FHEMWEB oder allowed, was in keiner Installation fehlen sollte.

Grüße Markus
Edit: FW_closeInactiveClients (0) im FreezeDevice hilft wenig; ließe sich ermitteln, welches Modul verantwortlich ist bzw., sofern/da es aus dem "Kern"(fhem.pl) kommt, wenigstens entsprechend kennzeichnen/beschreiben ?
Edit2: Verursacher ?  ;D
2018.02.03 08:19:07 1: FreezeMon: freezedetect possible freeze starting at 08:19:04, delay is 3.003 by

Edit3: FreezeTime =1; Alle Meldungen im Log haben FreezTime > 3 u. ganz oft 3.003  :-\

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Danke für's erste testen :-) Schau ich mir heute Abend gleich mal an. Bezüglich dem Verursacher muss ich mal noch genauer verstehen, was ich da eigentlich mache ;-) Hab mir da ein bisschen was aus apptime zusammen kopiert...


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

KölnSolar

Nun auch produktiv im Einsatz und ich erhalte die üblichen Verdächtigen.  ;D

Was soll mir diese Zeile
Zitat2018.02.03 12:20:22 1: FreezeMon: freezedetect possible freeze starting at 12:20:21, delay is 1.407 by GPIO4_DeviceUpdateLoop (RPi_OW_VL) at_Exec (check_jammer) GPIO4_DeviceUpdateLoop (RPi_OW_WWL)
sagen ? at_Exec (check_jammer) ist eher unverdächtig. Ein simples at, welches lediglich per ReadingsAge das Alter eines timestamps prüft.

Manchmal hab ich ne Menge "Routinen" im Reading stehen. Sind das dann Blocking-Calls ?

Loglevel 1 empfinde ich als zu "hoch". 2 genügt meines Erachtens. Entweder hat man eh das device bewusst kurzzeitig enabled oder man lässt es permanent enabled. Was man im Log oder Reading sehen möchte, lässt sich ja über FreezeTime steuern. Evtl. noch eine Differenzierung zwischen Log(LogFreezeTime) und Reading(FreezeTime). Das Reading gucke ich mir bewusst zu einem bestimmten Zeitpunkt an und beobachte es. Das Log soll mich auf Freezes hinweisen, wenn ich mich gar nicht aktuell mit dem Thema auseinandersetze, also nur im nachhinein über einen Zustand informieren möchte.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Vielen Dank für's Testen und die Anregungen.
Zitat von: KölnSolar am 03 Februar 2018, 12:57:19
Manchmal hab ich ne Menge "Routinen" im Reading stehen. Sind das dann Blocking-Calls ?
Wahrscheinlich ist einer davon der Schuldige. der Freezemon kann hier nur raten. Es wird ermittelt welche internen Timer zum Zeitpunkt des Freezes ausgeführt werden sollten und die werden alle als verdächtig angesehen. Ich werde das noch irgendwie ausdünnen - ob ich es wirklich auf ein Device einschränken kann, also den Schuldigen eindeutig ermitteln kann, bin ich mir noch nicht so sicher...

Zitat von: KölnSolar am 03 Februar 2018, 12:57:19
Evtl. noch eine Differenzierung zwischen Log(LogFreezeTime) und Reading(FreezeTime). Das Reading gucke ich mir bewusst zu einem bestimmten Zeitpunkt an und beobachte es.
Meine Plan ist eigentlich ein konfigurierbarer Loglevel. sowas in der Art: 10:1 5:2 1:3, bedeutet über 10 Sekunden wird mit Level 1 geloggt, über 5 Sekunden mit Level 2 usw...
Der große Vorteil der Readings ist aus meiner Sicht, dass ich diese in DbLog (oder FileLog) mitloggen kann und dann gezielt auswerten kann (Mir schwebt z.B. vor, die Top10 Verdächtigen - nach Häufigkeit und/oder Dauer anzuzeigen). Bei besonders langen freezes könnte ich mir auch eine Pushmessage schicken lassen o.ä.



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

Ma_Bo

Ich lese mal mit und werde nächste Woche auch mittesten.

Grüße Marcel


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

KölnSolar

Ja, auch gut
ZitatMeine Plan ist eigentlich ein konfigurierbarer Loglevel. sowas in der Art: 10:1 5:2 1:3, bedeutet über 10 Sekunden wird mit Level 1 geloggt, über 5 Sekunden mit Level 2 usw...
;D
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

helmut

Zitat von: KernSani am 03 Februar 2018, 01:08:39
FREEZEMON ist noch in einem sehr frühen Stadium, läuft bei mir aber seit ein paar Tagen stabil, Daher würde ich mich freuen wenn der ein oder andere sich traut zu testen und Feedback gibt.

Da ich mit perfmon schon einige Resourcenfresser gefunden habe, finde ich Deinen Ansatz
sehr interessant.

Zitat von: KernSani am 03 Februar 2018, 01:08:39
Ich würde empfehlen, PERFMON zu deaktivieren, wenn FREEZEMON aktiv ist, da beide auf die selbe Art Freezes erkennen und dann nur alles doppelt kommt.

Das habe ich getan.

Zitat von: KernSani am 03 Februar 2018, 01:08:39
Readings (nach dem ersten erkannten Freeze)

Die habe ich nicht zu sehen bekommen, aber nach wenigen Minuten oder auch nur
Sekunden stuerzt mein fhem reproduzierbar ab mit:
Undefined subroutine &main::svref_2object called at ./FHEM/98_freezemon.pm line 280.

Auch mit "verbose 5" sehe ich nicht mehr; unter "helper" nur die ueblichen Verdaechtigen
wie zum Beispiel:
apptime    DbLog_execmemcache (bath45DbLog) EspLedController_Check (rgbctrl_wz01)
apptime    TSCUL_SendPingHM (CUL1)
apptime    HMUARTLGW_CheckCredits (HMUARTLGW_CheckCredits)
apptime    TSCUL_SendPingHM (CUL1) SYSMON_Update (sysmon)

Mein fhem-System ist aktuell, jedenfalls behauptet das der "update check". perl ist mit
Version v5.20.2 auf einem "Raspbian GNU/Linux 8 (jessie)" installiert.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

KernSani

Zitat von: helmut am 03 Februar 2018, 18:10:55
Undefined subroutine &main::svref_2object called at ./FHEM/98_freezemon.pm line 280.
Ich habe die Version im ersten Post aktualisiert. Die Funktion wird normalerweise mit apptime mit eingebunden. Jetzt geht's auch wenn apptime nicht läuft (und ein paar weitere Änderungen - siehe changelog im ersten Post).

Grüße,

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

raimundl

Nur zur Info meine LogDatei:
2018.02.03 20:14:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_freezemon.pm line 163.
2018.02.03 20:14:34 1: FreezeMon: FreezeMonitor possible freeze starting at 20:14:29, delay is 5.648 by
2018.02.03 20:14:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_freezemon.pm line 167.


Danke für das Modul und LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

helmut

Zitat von: KernSani am 03 Februar 2018, 19:55:39
Jetzt geht's auch wenn apptime nicht läuft

Hallo Oli,

danke, das sieht jetzt gut aus und ich sehe auch das erste "freeze-READINGS".
Die Warnungen die raimundl in der Log-Datei hat, gibt es bei mir nicht.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

KernSani

Danke für's Feedback.

Zitat von: raimundl am 03 Februar 2018, 20:19:20
2018.02.03 20:14:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_freezemon.pm line 163.
2018.02.03 20:14:34 1: FreezeMon: FreezeMonitor possible freeze starting at 20:14:29, delay is 5.648 by
2018.02.03 20:14:34 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/98_freezemon.pm line 167.

Hmmm... da konnte Freezetime garkeinen Prozess finden, der den Freeze verursachen könnte...  Zumindest die Warnungen kann ich verhindern. Update im ersten post

@KölnSolar: Loglevel ist jetzt auch einstellbar
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KölnSolar

wo und wie  :-\ hab nur noch fm_freezeThreshold und Plausi: Attribute fm_freezeThreshold has to be a number (seconds)

Du hast oben auch noch den alten Download drin.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Zitat von: KölnSolar am 03 Februar 2018, 22:57:36
wo und wie  :-\ hab nur noch fm_freezeThreshold und Plausi: Attribute fm_freezeThreshold has to be a number (seconds)

Du hast oben auch noch den alten Download drin.
Ups... was ist da schief gegangen... Jetzt aber, aktualisiert im ersten Post.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

JoWiemann

#16
Hallo,

bei: get SystemFreeze freeze

bekomme ich: Unknown argument freeze, choose one of freeze:noArg

Grüße Jörg

PS: Warum ein :-( bei: no bad guy found :-(

Ein :-) wäre doch logischer, oder
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

KernSani

Zitat von: JoWiemann am 03 Februar 2018, 23:50:12
bei: get SystemFreeze freeze

bekomme ich: Unknown argument freeze, choose one of freeze:noArg
steht auf der todo-Liste, den GET Befehl gibt es noch nicht ;-)

Zitat von: JoWiemann am 03 Februar 2018, 23:50:12
PS: Warum ein :-( bei: no bad guy found :-(

Ein :-) wäre doch logischer, oder
In den allermeisten Fällen gab es einen "bad guy", nur freezemon hat ihn nicht gefunden, deshalb :-( z.B.: führt ein Perl sleep
{sleep(2)} in der Kommandozeile zu einem Freeze, freezemon, wird den Schuldigen aber nicht finden...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KölnSolar

Aaaaaah, jetzt  ;D

Klasse. Das passt so was von perfekt zu meiner Arbeits-/Denkweise  ;D ;D ;D

Den bad guy hab ich jetzt auch öfter. Da gibt es dann so gar keine Info ? Auch keine evtl. mehrdeutige ?  :(

Eine Sache hab ich schon erfolgreich aufgespürt: ein 1W-Temp, den ich zwar definiert, aber aktuell physisch nicht eingebunden habe.

Ich wette, da kommt ne Menge Arbeit auf Supporter und Entwickler zu. Ich kauf mir schon ma paar neue Glaskugeln  ;D ;D ;D

Danke u. schönes WE
Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Neue Version im ersten Post, die jetzt auch GET freeze unterstützt.

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

KölnSolar

Du bist für mich der Held der Woche. Ich wusste ja, dass 58_GPIO4 ein Performancefresser ist. Aber die Ergebnisse des FREEZEMON + meine jungen Kenntnisse zum BlockingCall haben mich bewegt das Modul anzupassen. Was soll ich sagen. So gut wie keine Freezes mehr  :-* Einer z.B., wenn ich das doch sehr große(bin halt ein Messi) Logfile über FHEMWEB anzeigen lasse:
2018.02.04 14:42:32 1: FreezeMon: freezedetect possible freeze starting at 14:42:24, delay is 8.689 possibly caused by at_Exec(check_jammer)
2018.02.04 14:42:49 1: FreezeMon: freezedetect possible freeze starting at 14:42:41, delay is 8.163 possibly caused by no bad guy found :-(

Und jetz gehe ich den Entwicklern auf den Keks  ;D :-[ ;D
Danke&Grüße
Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KernSani

Zitat von: KölnSolar am 04 Februar 2018, 15:04:14
Du bist für mich der Held der Woche.
Das freut mich natürlich tierisch  ;D Und vor lauter Freude habe ich gleich noch eine neue Version oben angehängt, die gefühlt ein paar mehr bad guys identifiziert.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Und damit habe ich eigentlich fertig.... Ich werde noch weiter versuchen mehr "bad guys" zu identifizieren, aber gibt es noch andere Wünsche/Anregungen?
Denkt ihr das Modul ist es wert, in die offizielle Distribution mit aufgenommen zu werden?
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

devo


P.A.Trick

Zitat von: KernSani am 04 Februar 2018, 21:43:02
Und damit habe ich eigentlich fertig.... Ich werde noch weiter versuchen mehr "bad guys" zu identifizieren, aber gibt es noch andere Wünsche/Anregungen?
Denkt ihr das Modul ist es wert, in die offizielle Distribution mit aufgenommen zu werden?

Ich würde mich darüber freuen!
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

und - so kurz nach Mitternacht - ist mir aufgefallen, dass die .*DayLast readings nicht funktionieren... ist gefixt (im ersten Post)
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

carlos

Hi,
Die Version ist aber noch auf 0.0.05 !
Im Changelog aber 0.0.06.
Ist aber nur ne Kleinigkeit.
Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Ma_Bo

#27
Folgende Meldung kommt bei einem reload 98_freezemon.pm:

Global symbol "%prioQueues" requires explicit package name at ./FHEM/98_freezemon.pm line 379.
Global symbol "%prioQueues" requires explicit package name at ./FHEM/98_freezemon.pm line 380.
Global symbol "%prioQueues" requires explicit package name at ./FHEM/98_freezemon.pm line 381.


Reicht ein reload nicht aus, muss ein neustart gemacht werden...?

#####EDIT 1

2018.02.05 08:10:01.654 1: PERL WARNING: Subroutine freezemon_Initialize redefined at ./FHEM/98_freezemon.pm line 67.
2018.02.05 08:10:01.655 1: PERL WARNING: Subroutine freezemon_Define redefined at ./FHEM/98_freezemon.pm line 90.
2018.02.05 08:10:01.655 1: PERL WARNING: Subroutine freezemon_Undefine redefined at ./FHEM/98_freezemon.pm line 123.
2018.02.05 08:10:01.657 1: PERL WARNING: Subroutine freezemon_ProcessTimer redefined at ./FHEM/98_freezemon.pm line 134.
2018.02.05 08:10:01.658 1: PERL WARNING: Subroutine freezemon_Get redefined at ./FHEM/98_freezemon.pm line 242.
2018.02.05 08:10:01.659 1: PERL WARNING: Subroutine freezemon_Attr redefined at ./FHEM/98_freezemon.pm line 272.


Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

JoWiemann

Hm, frei nach Radio Eriwan: Im Prinzip ja, aber...

Bei Modulen, die in den Tiefen von Fhem fischen, besser Neustart.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

raimundl

Zitat von: KernSani am 04 Februar 2018, 21:43:02
Denkt ihr das Modul ist es wert, in die offizielle Distribution mit aufgenommen zu werden?

unbedingt!

Danke und LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

KölnSolar

Ich drück dann meine Begesiterung noch einmal mit einem eigenen Zitat aus:
ZitatUnd nur so als Gedanke: Bei der Vielzahl der Module verliert man mittlerweile ja den Überblick. Ich könnt mir daher eine Integration in SYSMON vorstellen, was man dann als "Kernmodul" von FHEM installiert, also ein Modul wie FHEMWEB oder allowed, was in keiner Installation fehlen sollte.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

helmut

Zitat von: KernSani am 04 Februar 2018, 21:43:02
Denkt ihr das Modul ist es wert, in die offizielle Distribution mit aufgenommen zu werden?
Zitat von: KölnSolar am 05 Februar 2018, 12:49:02
Ich drück dann meine Begesiterung noch einmal mit einem eigenen Zitat aus:Grüße Markus
"Ich könnt mir daher eine Integration in SYSMON vorstellen"

Ob als Modul oder als Erweiterung von SYSMON - ich bin auch dafuer.

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Benni

Zitat von: KölnSolar am 05 Februar 2018, 12:49:02
Ich drück dann meine Begesiterung noch einmal mit einem eigenen Zitat aus:Grüße Markus

Na, ob ein Modul mit vielen Funktionen der Übersicht dienlicher ist, als viele Einzelmodule mit genau definiertem Aufgabenbereich und und Funktionsumfang (Linux-Prinzip), darüber könnte man sicher streiten ;)

gb#

michael.winkler

bei einem "get freez" habe ich folgende Log Einträge:


2018.02.05 14:38:17 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/98_freezemon.pm line 258.
2018.02.05 14:38:17 1: stacktrace:
2018.02.05 14:38:17 1:     main::__ANON__                      called by ./FHEM/98_freezemon.pm (258)
2018.02.05 14:38:17 1:     main::freezemon_Get                 called by fhem.pl (3510)
2018.02.05 14:38:17 1:     main::CallFn                        called by fhem.pl (1822)
2018.02.05 14:38:17 1:     main::CommandGet                    called by fhem.pl (1172)
2018.02.05 14:38:17 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2495)
2018.02.05 14:38:17 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (848)
2018.02.05 14:38:17 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (535)
2018.02.05 14:38:17 1:     main::FW_Read                       called by fhem.pl (3510)
2018.02.05 14:38:17 1:     main::CallFn                        called by fhem.pl (689)

KölnSolar

#34
ALs Ahnungsloser zu stacktrace würde ich auf FHEMWEB tippen  :-\ Ist zumindest bei mir der Grund für Freezes, wenn ich das groooooße Logfile aufrufe.

Und ich habe einen weiteren Kandidaten entlarvt. Mich selber  :-[ Hab vor Jahren mal mit viel weniger Kenntnissen als heute ein Modul für einen RS422-Bus an USB erstellt(kopiert u. angepasst), frei nach dem Motto "denn sie wissen nicht was sie tun" und mit trial&error lief es dann. Nun werde ich mir mal die Kommunikation genauer ansehen.... Fehlerbild
Zitat2018.02.05 14:52:26 1: FreezeMon: freezedetect possible freeze starting at 14:52:23, delay is 3.014 possibly caused by FW_closeInactiveClients(0)

Grüße Markus
PS: Thema nun vielleicht in Sonstiges verschieben anstatt Codeschnipsel ?
Edit: Achso, vielleicht noch wie ich auf das Modul gestoßen bin. Die Freezes waren periodisch im Log sichtbar(was eben genau das ist, was den Vorteil zumindest gegenüber apptime ausmacht). Hab mir dann einfach meine verdächtigen periodischen Devices angeguckt und beim Dritten passte der timestamp vom state mit der Freezes-Logmeldung überein.
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

michael.winkler

Zitat von: KölnSolar am 05 Februar 2018, 15:09:16
ALs Ahnungsloser zu stacktrace würde ich auf FHEMWEB tippen  :-\ Ist zumindest bei mir der Grund für Freezes, wenn ich das groooooße Logfile aufrufe.

Und ich habe einen weiteren Kandidaten entlarvt. Mich selber  :-[ Hab vor Jahren mal mit viel weniger Kenntnissen als heute ein Modul für einen RS422-Bus an USB erstellt(kopiert u. angepasst), frei nach dem Motto "denn sie wissen nicht was sie tun" und mit trial&error lief es dann. Nun werde ich mir mal die Kommunikation genauer ansehen.... Fehlerbild
Grüße Markus
PS: Thema nun vielleicht in Sonstiges verschieben anstatt Codeschnipsel ?
Edit: Achso, vielleicht noch wie ich auf das Modul gestoßen bin. Die Freezes waren periodisch im Log sichtbar(was eben genau das ist, was den Vorteil zumindest gegenüber apptime ausmacht). Hab mir dann einfach meine verdächtigen periodischen Devices angeguckt und beim Dritten passte der timestamp vom state mit der Freezes-Logmeldung überein.
Wichtig ist eigentlich nur die Zeile

Hier versuchst du eine leere Variable durch split zu bearcheiten.

PERL WARNING: Use of uninitialized value in split at ./FHEM/98_freezemon.pm line 258.

KernSani

Zitat von: michael.winkler am 05 Februar 2018, 14:39:31
bei einem "get freez" habe ich folgende Log Einträge:


2018.02.05 14:38:17 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/98_freezemon.pm line 258.

[/quote]
Spontan würde ich jetzt sagen, du hast noch keinen freeze... Aber ich schaue heute Abend mal ins Coding und fixe das...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Zitat von: Ma_Bo am 05 Februar 2018, 08:11:03
Folgende Meldung kommt bei einem reload 98_freezemon.pm:

Global symbol "%prioQueues" requires explicit package name at ./FHEM/98_freezemon.pm line 379.
Global symbol "%prioQueues" requires explicit package name at ./FHEM/98_freezemon.pm line 380.
Global symbol "%prioQueues" requires explicit package name at ./FHEM/98_freezemon.pm line 381.


Reicht ein reload nicht aus, muss ein neustart gemacht werden...?

#####EDIT 1

2018.02.05 08:10:01.654 1: PERL WARNING: Subroutine freezemon_Initialize redefined at ./FHEM/98_freezemon.pm line 67.
2018.02.05 08:10:01.655 1: PERL WARNING: Subroutine freezemon_Define redefined at ./FHEM/98_freezemon.pm line 90.
2018.02.05 08:10:01.655 1: PERL WARNING: Subroutine freezemon_Undefine redefined at ./FHEM/98_freezemon.pm line 123.
2018.02.05 08:10:01.657 1: PERL WARNING: Subroutine freezemon_ProcessTimer redefined at ./FHEM/98_freezemon.pm line 134.
2018.02.05 08:10:01.658 1: PERL WARNING: Subroutine freezemon_Get redefined at ./FHEM/98_freezemon.pm line 242.
2018.02.05 08:10:01.659 1: PERL WARNING: Subroutine freezemon_Attr redefined at ./FHEM/98_freezemon.pm line 272.


Grüße Marcel

Hat ein Neustart geholfen? Eigentlich sollte ein reload ausreichend sein... Dass die %prioQueues nicht bekannt sind ist etwas verwirrend, da diese in der Tat aus den Untiefen von FHEM kommen...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

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

willybauss

Klingt interessant.

Kleine Rückfrage: Ich kann mich erinnern, mal Perfmon benutzt zu haben, finde aber nichts mehr davon in meiner Konfig, weder im UI noch in der fhem.cfg. Dennoch sehe ich im Log nun z.B.

2018.02.05 21:57:33 1: Perfmon: possible freeze starting at 21:57:31, delay is 2.921
2018.02.05 21:57:33 1: FreezeMon: myFreezemon possible freeze starting at 21:57:31, delay is 2.925 possibly caused by perfmon_ProcessTimer(N/A) CO20_poll(Zuluft_co20) CUL_HM_procQs(CUL_HM_procQs)


Offenbar läuft Perfmon doch noch. Wie kann ich es stoppen?
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

KernSani

Zitat von: willybauss am 05 Februar 2018, 22:11:09
Offenbar läuft Perfmon doch noch. Wie kann ich es stoppen?
die Datei 99_PERFMON aus dem /FHEM-Verzeichnis entfernen (oder umbenennen).
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

So. eingecheckt. FREEZEMON wird ab morgen mit dem FHEM update verteilt. Wer's eiliger hat: Ich habe die eingecheckte Version im ersten Post aktualisiert.

Ich mache dann hier mal zu. Weiter geht es hier: https://forum.fhem.de/index.php/topic,83909.0.html
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Motivierte linke Hände

Danke, ein sehr praktisches Modul - bin gerade drüber gestolpert, als es "plötzlich" mit dem Update kam. Habe es gegen perfmon eingetauscht. Mal schauen, was ich so finde. :)
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.

MichaelT

Danke fürs Modul.
Hab von perfmon auf freezemon umgestellt.
Bisher nichts auffälliges.

Gruß
Michael
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

KernSani

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