42_SYSMON.pm - PERL WARNING

Begonnen von rapster, 28 Juni 2015, 05:13:52

Vorheriges Thema - Nächstes Thema

rapster

Hallo Hexenmeister,

das sysmon Modul generiert bei jeder Aktualisierung auf einer linux vsphere-vm diese warning im fhem-log:
PERL WARNING: Argument "cat: /sys/class/hwmon/hwmon0/device/temp1_input: Resourc..." isn't numeric in int at ./FHEM/42_SYSMON.pm line 1758.
Augrund dessen das der guest-vm kein Zugriff auf die CPU-Daten gewährt wird.

Ich habe das ganze bei mir behoben in dem ich aus der Zeile:
1758   $val = int($val);
folgendes gemacht habe:
1758   (looks_like_number($val)) ? $val = int($val) : $val = 0;

Evtl. kannst du das ja so, oder auch schöner, in dein Modul einbauen damit die Warnings nach einer aktualisierung nicht gleich wieder da sind.

Danke & Gruß

hexenmeister

Ok, nehme ich auf. Es würde aber mehr Sinn machen, cputemp in Attribut exclude aufzunehmen.

rapster

Ohweh... ::)

Hab in der Commandref nur bis zum Attr disable runtergescrollt und das Attr exclude völlig überlesen...

Hab mir zwar schon gedacht dass genau so ein Attr nice2have wäre, aber dass es das dann sogar schon gibt....

Danke nochmal, für die Aufklärung und trotzdem auch für den fix (deine Lösung funktioniert einwandfrei, und das reading taucht nun nicht mehr auf)   :)

Hab zwar vorhin nach einem reboot mit dem SYSMON aus SVN folgende bisher völlig unbekannt Meldung im Log gehabt:
2015.06.28 23:26:37.064 1: Timeout for SYSMON_blockingCall reached, terminated process 3749
Konnte das aber nicht erneut provozieren - ich werde es mal beobachten.

Gruß Claudiu

hexenmeister

Um den Haupt-Thread nicht unnötig zu blokieren, führt SYSMON die Datenabfragen in einem Parallelthread aus. Wenn dieser nicht in einer bestimmten Zeit antwortet, wird er abgebrochen und diese Warnung ausgegeben. Warum es bei Dir so gekommen ist, kann ich natürlich nicht sagen. Einmalig ist das auch nicht weiter schlimm, SYSMON tut das später erneut.