überarbeitet SYSSTAT modul: non-blocking, remote kommandos, beliebige readings

Begonnen von justme1968, 23 Oktober 2015, 00:09:34

Vorheriges Thema - Nächstes Thema

FHEM_Starter

Hallo Andre,

inach einem kompletten FHEM Update habe ich festgestellt, dass die Version der 32_SYSSTAT.pm ein neueres Datum besitzt als Deine im ersten Post eingestellte Version. Sind denn die Änderungen (non-blocking) mittlerweile in die offizielle Version eingeflossen und falls nein, arbeitest Du noch daran?

Danke und Gruß
Wolfgang

mrbreil

Zitat von: FHEM_Starter am 03 Mai 2018, 10:04:25
Hallo Andre,

inach einem kompletten FHEM Update habe ich festgestellt, dass die Version der 32_SYSSTAT.pm ein neueres Datum besitzt als Deine im ersten Post eingestellte Version. Sind denn die Änderungen (non-blocking) mittlerweile in die offizielle Version eingeflossen und falls nein, arbeitest Du noch daran?

Danke und Gruß
Wolfgang

Das würde mich auch interessieren.
Hoffe damit folgenden Fehler weg zu bekommen
readingsUpdate(sysstat_ZNG_4500,uptimetxt,12 6 01) missed to call readingsBeginUpdate first.

Gruß Christian

mrbreil

Möchte noch ein wenig genauer werden uptimetxt ist ein Userreading


loadtxt {ReadingsVal("$name","load",0)*100}, uptimetxt { my$text; my @tmp = split(/ /,ReadingsVal("$name","uptime", "")); $text = $tmp[0]; @tmp = split(/:/,$tmp[2]); $text = $text." ".$tmp[0]." ".$tmp[1]; $text}



Vielleicht hilft das noch jemanden auf die richtige Spur.

Gruß Christian

vbs

Gibt es hier eigentlich schon Neuigkeiten? Ein non-blocking SNMP wäre schon super.

Ich hab gerade mal einfach plump auf die Testversion hier aus dem Thread umgestellt, aber da bekomm ich nur das hier regelmäßig:
2019.01.19 10:39:10.409 2 : fl_benStats: unanswered query in queue, reconnecting
2019.01.19 10:39:10.417 4 : fl_benStats: sending: uname -a
2019.01.19 10:39:15.419 2 : fl_benStats: unanswered query in queue, reconnecting
2019.01.19 10:39:15.426 4 : fl_benStats: sending: uname -a


Internals:
   CONNECTS   59
   DEF        120 600 192.168.2.232
   FD         15
   FUUID      5c42ef59-f33f-af31-193a-10eb9514d5dc21b8
   HAS_Net::SNMP 1
   HOST       192.168.2.232
   INTERVAL   120
   INTERVAL_FS 600
   NAME       fl_benStats
   NR         429
   NTFY_ORDER 50-fl_benStats
   PARSED     0
   PARTIAL   
   PID        54509
   SENT       1
   STARTED    0
   STATE      Started
   SystemDescription Hardware: Intel64 Family 6 Model 58 Stepping 9 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 17134 Multiprocessor Free)
   SystemName BEN
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 600
   QUEUE:
     HASH(0x5606d4b2f250)
   READINGS:
     2018-03-12 16:47:10   D:/             47280013312
     2018-03-12 16:47:10   E:/             133721124864
     2018-03-12 16:47:10   F:/             1880249589760
     2018-03-12 16:44:54   G:/             2225899360256
     2019-01-19 10:40:15   connection      disconnected
     2019-01-19 10:33:29   load            0.52
     2019-01-19 10:33:29   loadAvg         13
     2019-01-19 10:33:29   numProcesses    242
     2019-01-19 10:33:29   state           17,13,15,7
     2019-01-19 10:33:29   uptime          11 days, 14:10:26.31
   helper:
     bm:
       SYSSTAT_Attr:
         cnt        1
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.01. 10:39:01
         max        2.69412994384766e-05
         tot        2.69412994384766e-05
         mAr:
           set
           fl_benStats
           verbose
           5
       SYSSTAT_Get:
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.01. 10:39:01
         max        4.1961669921875e-05
         tot        5.38825988769531e-05
         mAr:
           HASH(0x5606d2f04ec8)
           fl_benStats
           ?
       SYSSTAT_Notify:
         cnt        41
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.01. 10:39:17
         max        2.00271606445312e-05
         tot        0.00030970573425293
         mAr:
           HASH(0x5606d2f04ec8)
           HASH(0x5606d4046aa0)
       SYSSTAT_Set:
         cnt        10
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        19.01. 10:37:51
         max        7.00950622558594e-05
         tot        0.000144243240356445
         mAr:
           HASH(0x5606d2f04ec8)
           fl_benStats
           ?
Attributes:
   alias      Ben - Status
   event-on-change-reading load,loadAvg,numProcesses,uptime
   group      Server
   icon       time_graph
   mibs       .1.3.6.1.2.1.25.1.6.0:numProcesses
   room       Flur
   snmp       1
   stateFormat CPU: loadAvg %
   uptime     1
   verbose    5


SNMP-Target ist ein Windows10-Host. Klappt aber mit der "offiziellen" Version gut (nur eben blockierend).

justme1968

sorry... nein. noch nichts neues. steht aber immer noch auf der liste.

die version aus dem thread sollte aber schon gehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

vbs

Ok, danke. Ich hab jetzt mal "noSSH" gesetzt (mach wohl Sinn) und jetzt sind die Fehler weg. Ich kann auch SNMP updaten, aber nur wenn ich "get update" manuell starte. Das automatische (zyklische) Update passiert. Hast du da evtl. spontan eine Idee?

Ich hab noch rausgefunden, dass ich das alles vor 2 Jahren schonmal gemacht habe und zum gleichen Ergebnis kam  :o:
https://forum.fhem.de/index.php/topic,42771.msg521502.html#msg521502

Dersch

Gibt es denn Neuigkeiten zu einem NonBlocking SNMP?

Ich frage mehrere Pi's ab aber mein FHEM wird dauernd durch SYSSTAT blockiert.

onkel-tobi

Hallo zusammen,

kann es sein, dass die Version aus dem Thread noch nicht verteilt wird?
Ich kann nämlich kein set auf ein remote device setzen und erhalte stattdessen die Fehlermeldung : No set implemented for

Danke & Gruß,
Tobi


zeus-web

Hallo zusammen,

ich habe ein kleines(?) Problem mit dem SYSSTAT Modul. Vielleicht hat jemand eine Idee zur Lösung:

Eigentlich möchte ich nur ein paar Statistiken von meinen Drucker abrufen (ein Dell C2660dn), hauptsächlich Uptime und Seitenzahl. Das klappt auch so weit gut: Die Pages bekomme ich per MIB ".1.3.6.1.2.1.43.10.2.1.4.1.1:Pages", die Uptime wird ja standardmäßig mit ausgelesen.

ABER:
Seit ich das Modul aktiviert habe, bekomme ich minütlich folgenden Fehler im Log:
2021.03.01 11:39:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_SYSSTAT.pm line 269.
2021.03.01 11:39:44 1: stacktrace:
2021.03.01 11:39:44 1:     main::__ANON__                      called by ./FHEM/32_SYSSTAT.pm (269)
2021.03.01 11:39:44 1:     main::SYSSTAT_GetUpdate             called by fhem.pl (3362)
2021.03.01 11:39:44 1:     main::HandleTimeout                 called by fhem.pl (689)
2021.03.01 11:39:44 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_SYSSTAT.pm line 269.
2021.03.01 11:39:44 1: stacktrace:
2021.03.01 11:39:44 1:     main::__ANON__                      called by ./FHEM/32_SYSSTAT.pm (269)
2021.03.01 11:39:44 1:     main::SYSSTAT_GetUpdate             called by fhem.pl (3362)
2021.03.01 11:39:44 1:     main::HandleTimeout                 called by fhem.pl (689)


Es liegt wohl genau an dem Eintrag für den Drucker, wenn ich den entsprechenden Sysstat Eintrag disable, ist der Fehler weg.

Meine Vermutung: Der Drucker liefert keine Load (und/oder vielleicht noch einen Wert nicht) und damit kommt dann SYSSTAT nicht klar. Testweise habe ich auch schon ein suppressreading für die load gesetzt, das hat aber nicht geholfen.

Hier noch die Versionsdaten:

fhem.pl                     23800 2021-02-22 13:30:08Z rudolfkoenig
32_SYSSTAT.pm               21047 2020-01-25 09:57:49Z justme1968


Gibts einen Trick, mit dem ich die "Standardabfragen" verhindern kann? Oder wie ich SYSSTAT beibringen kann, dass es fehlende Werte ignoriert?

Vielen Dank und viele Grüße
Nico

justme1968

ich habe eben die non-blocking version eingecheckt.

@zeus-web: bitte schau mal ob du damit immer noch die probleme hast
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

zeus-web

Hallo justme1968,

danke für den Versuch das Problem zu beheben. Mein ursprünglicher Fehler ist mit dem Update nun tatsächlich weg.
Leider ist es aber nun "schlimmer" geworden, denn nun bekomme ich nicht nur jede Minute, sondern alle paar Sekunden (mutmaßlich bei jedem Aufruf des Moduls?) einen neuen Fehler:

2021.03.12 09:19:57 1: PERL WARNING: Use of uninitialized value $ret in numeric le (<=) at ./FHEM/32_SYSSTAT.pm line 297.
2021.03.12 09:19:57 1: stacktrace:
2021.03.12 09:19:57 1:     main::__ANON__                      called by ./FHEM/32_SYSSTAT.pm (297)
2021.03.12 09:19:57 1:     main::SYSSTAT_Read                  called by fhem.pl (3847)
2021.03.12 09:19:57 1:     main::CallFn                        called by fhem.pl (773)
2021.03.12 09:19:57 1: PERL WARNING: Use of uninitialized value $ret in numeric le (<=) at ./FHEM/32_SYSSTAT.pm line 297.
2021.03.12 09:19:57 1: stacktrace:
2021.03.12 09:19:57 1:     main::__ANON__                      called by ./FHEM/32_SYSSTAT.pm (297)
2021.03.12 09:19:57 1:     main::SYSSTAT_Read                  called by fhem.pl (3847)
2021.03.12 09:19:57 1:     main::CallFn                        called by fhem.pl (773)


Könntest Du bitte nochmal checken, an was das liegen könnte? Bei Bedarf kann ich gerne auch noch weitere Daten liefern, wenn Du mir sagst, was Du brauchst.

NACHTRAG:
Wenn die Zeile 297 auskommentiert wird, dann ist der Fehler weg.
Mit meinen rudimentären perl-Kenntnissen habe ich daher folgenden workaround gebastelt, da die Zeile eh nur ein Log generiert, auch damit ist der Fehler weg (wobei ich mir gerade noch nicht sicher bin, ob die Zeile so noch Sinn macht):

Log3 $name, 3, "$name: read: end of file reached while sysread" if( !defined($ret) ||$ret <= 0);

justme1968

ich habe die perl warnung eben repariert.

allerdings stimmt scheinbar mit dem verbindungsaufbau etwas nicht. deshalb wird es alle 10 sekunden neu probiert.
kann es sein das su noch noSSH setzen musst?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

zeus-web

Prima, Danke Dir für den Fix.
Fehlermeldungen kommen seit meines Workarounds (den ich nun an Deine Änderung angepasst habe) keine mehr.

Es fehlte auch tatsächlich noch der "noSSH" Parameter. Den habe ich noch mit angefügt. Danke auch für diesen Tip! An den hatte ich nicht gedacht, war wohl der Meinung es reicht, wenn man SNMP einschaltet...

Aber egal, jetzt funktioniert ja alles wie es soll :-)

Vielen Dank nochmal!

Falkenstein

Hallo,

ich überwache mit dem Modul einen Windows Rechner.Nach dem gestrigen Update geht kein Verbindungsaufbau mehr zu dem Computer somit bekomme ich auch keine readings mehr.Das "nossh" habe ich auch schon gesetzt,bringt bei mir überhaupt keine Änderung.

Hier ein List vom Device:

Internals:
   DEF        60 600 192.168.1.197
   FUUID      60414ac9-f33f-4b78-61e7-e0a854fd88c9f6fe
   HAS_Net::SNMP 1
   HOST       192.168.1.197
   INTERVAL   60
   INTERVAL_FS 600
   NAME       IntelNuc
   NR         120
   NTFY_ORDER 50-IntelNuc
   STATE      19 hours, 02:17.60
   SystemDescription Hardware: Intel64 Family 6 Model 142 Stepping 10 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 19042 Multiprocessor Free)
   SystemName IntelNuc-Kueche
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 540
   snmpCommunity public
   snmpVersion 2
   OLDREADINGS:
   READINGS:
     2021-03-12 12:38:59   C:/             7.0
     2021-03-12 12:38:59   PhysicalMemory  35.6
     2021-03-12 12:38:59   VirtualMemory   30.2
     2021-03-12 12:34:30   connection      disconnected
     2021-03-12 12:38:59   load            noSuchObject
     2021-03-12 12:38:59   state           noSuchObject noSuchObject noSuchObject
     2021-03-12 12:31:31   uptime          19 hours, 02:17.60
   filesystems:
     1
     2
     3
   helper:
Attributes:
   filesystems 1,2,3
   noSSH      1
   room       Interfaces
   showpercent 1
   snmp       1
   snmpCommunity public
   snmpVersion 2
   stateFormat uptime
   uptime     1



Beste Grüße
Falkes