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

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

Vorheriges Thema - Nächstes Thema

onkel-tobi

Hallo zusammen,

ich habe die Version:
32_SYSSTAT.pm          24779 2021-07-20 09:21:08Z justme1968

Und mit der habe ich scheinbar wieder nicht die Möglichkeit raw Messages abzuschicken.

Das list:
Internals:
   CONNECTS   1
   DEF        86000 276000 192.168.177.120
   FD         152
   FUUID      5ff988b1-f33f-daf3-3a83-f0deb33f6819a4e8
   HAS_Net::SNMP 0
   HOST       IP
   INTERVAL   86000
   INTERVAL_FS 276000
   NAME       eg_wz_ipad
   NR         541
   NTFY_ORDER 50-eg_wz_ipad
   PARSED     5
   PARTIAL   
   PID        29431
   SENT       6
   STARTED    1
   STATE      0.13 0.13 0.09
   TYPE       SYSSTAT
   disable   
   eventCount 19
   interval_fs 190000
   uname      Darwin iPad 14.0.0 Darwin Kernel Version 14.0.0: Wed Jun 24 00:47:10 PDT 2015; root:xnu-2784.30.7~30/RELEASE_ARM_S5L8940X iPad2,2 arm K94AP Darwin
   QUEUE:
     HASH(0x6dad4d0)
     HASH(0x6eac0d8)
     HASH(0x69ea9f8)
   READINGS:
     2022-07-14 11:36:57   connection      connected
     2021-01-09 11:49:09   idle            96.4
     2021-01-09 11:49:09   iowait          0
     2021-01-10 19:44:52   load            0.13
     2021-01-10 19:44:52   state           0.13 0.13 0.09
     2021-01-09 11:49:09   system          0
     2021-01-09 11:49:09   uptime          7 days, 17:21
     2021-01-09 11:49:09   user            3.5
   helper:
     has_proc_loadavg 0
     has_proc_stat 0
     has_proc_uptime 0
Attributes:
   event-on-change-reading .*
   load       0
   ssh_user   root


Das scheint ja die neueste Version zu sein? Seht ihr sonst einen Fehler den ich hier mache?

Danke & Gruß,
Tobi

uwirt

Ich hatte das Modul seit längerer Zeit problemlos in Gebrauch. Seit einigen Monaten erhalte ich jedoch keine Werte mehr von meinem Temperatursensor. Ich kann das Device mit ping erreichen und per snmpwalk auslesen:
uw@IoT-Bern:~$ snmpwalk -v 1 -c public 192.168.1.245 mib-2
SNMPv2-MIB::sysDescr.0 = STRING: RMS200-TH
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.1909.13
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (5687095) 15:47:50.95
SNMPv2-MIB::sysContact.0 = STRING: -
SNMPv2-MIB::sysName.0 = STRING: RMS200
SNMPv2-MIB::sysLocation.0 = STRING: -
SNMPv2-MIB::sysServices.0 = INTEGER: 72


define RMS200 SYSSTAT 60 600 192.168.1.245
attr RMS200 devStateStyle style="text-align:right"
attr RMS200 event-on-change-reading .*
attr RMS200 noSSH 1
attr RMS200 room Sensors
attr RMS200 stat 1
attr RMS200 uptime 1
attr RMS200 userReadings Temp_K {ReadingsVal("RMS200","temp_1",0)/100,}, Temp_KS {ReadingsVal("RMS200","temp_2",0)/100,}, Temp_TK {ReadingsVal("RMS200","temp_3",0)/100,}
#   DEF        60 600 192.168.1.245
#   FUUID      601ade1e-f33f-521d-73c8-f2dbf7c6c5cbf168
#   HAS_Net::SNMP 1
#   HOST       192.168.1.245
#   INTERVAL   60
#   INTERVAL_FS 600
#   LAST_DISCONNECT 2023-02-03 12:08:39
#   NAME       RMS200
#   NR         75
#   NTFY_ORDER 50-RMS200
#   PARSED     0
#   PARTIAL   
#   SENT       1
#   STARTED    0
#   STATE      Disconnected
#   TYPE       SYSSTAT
#   eventCount 3
#   interval_fs 480
#   QUEUE:
#   READINGS:
#     2023-02-03 12:08:39   Temp_K          0
#     2023-02-03 12:08:39   Temp_KS         0
#     2023-02-03 12:08:39   Temp_TK         0
#     2023-02-03 12:08:39   connection      disconnected
#   helper:
#   hmccu:
#
setstate RMS200 Disconnected
setstate RMS200 2023-02-03 12:08:39 Temp_K 0
setstate RMS200 2023-02-03 12:08:39 Temp_KS 0
setstate RMS200 2023-02-03 12:08:39 Temp_TK 0
setstate RMS200 2023-02-03 12:08:39 connection disconnected



Kann mir da jemand weiterhelfen?
FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

uwirt

FHEM / Ubuntu / fitlet2
HomeMatic: CCU3|HmIP-STHD|HmIP-PCBS|HmIP-PCBS2|HmIP-PCBS-BAT|HM-WDC7000|HM-WDS100-C6-O|HM-WDS40|HM-LC-Sw1-FM|HM-LC-RGBW-WM|HM-ES-PMSw1-Pl|HM-ES-TX-WM
NAS: DS218+|DS209j|DS216+II|DS412+
Devices: Panasonic Webcams|Withings|Gardena Smart|Tuya

ivor

Hallo zusammen

Via SNMP muss bei den meisten Geräten der Durchsatz (bytes/s) einer Ethernetschnittstelle berechnet werden, da via SNMP die bytes-in/bytes-out aufaddiert werden.

Gibt es da schon eine fixfertige Formel, welche den Durchsatz berechnen kann (Differenz vorherige Abfrage zu aktueller Abfrage und die Zeitdiferenz dazwischen)?

gruss ivo

ivor

Zitat von: ivor am 05 August 2024, 10:08:19Gibt es da schon eine fixfertige Formel, welche den Durchsatz berechnen kann (Differenz vorherige Abfrage zu aktueller Abfrage und die Zeitdiferenz dazwischen)?

Mittels userReadings würde das angeboten, jedoch bekomme ich immer nur den Wert 0. Muss man da noch was konfigurieren?

Internals:
  CFGFN      conf/snmp.cfg
  DEF        60 60
  HAS_Net::SNMP 0
  INTERVAL  60
  NAME      my_fw01
  NR        558
  NTFY_ORDER 50-my_fw01
  STATE      "my-fw01.int.local"
  TYPE      SYSSTAT
  eventCount 715
  interval_fs
  OLDREADINGS:
  QUEUE:
  READINGS:
    2024-08-07 17:44:50  fw1_device      "FreeBSD my-fw01.int.local 14.1-RELEASE-p2 FreeBSD 14.1-RELEASE-p2 stable/24.7-n267758-4ad7ad40bc77 SMP amd64"
    2024-08-07 17:44:50  fw1_dmz_in      248871606
    2024-08-07 17:44:50  fw1_dmz_out    179058874
    2024-08-07 17:44:50  fw1_gst_in      4263778534
    2024-08-07 17:44:50  fw1_gst_out    268237823
    2024-08-07 17:44:50  fw1_hostname    "my-fw01.int.local"
    2024-08-07 17:44:50  fw1_iot_in      160669815
    2024-08-07 17:44:50  fw1_iot_out    164339412
    2024-08-07 17:44:50  fw1_lan_in      500376712
    2024-08-07 17:44:50  fw1_lan_out    4182600115
    2024-08-07 17:44:50  fw1_wan_in      1953345981
    2024-08-07 17:44:49  fw1_wan_in_diff 0
    2024-08-07 17:44:50  fw1_wan_out    2409038244
    2024-08-07 17:44:49  fw1_wan_out_diff 0
    2024-08-07 17:44:49  load            0.68
    2024-08-07 17:44:49  state          0.68 0.60 0.57
  filesystems:
  helper:
    has_proc_loadavg 1
    has_proc_stat 1
    has_proc_uptime 1
Attributes:
  noSSH      1
  readings  fw1_device:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.1.1.0
fw1_hostname:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.1.5.0
fw1_wan_in:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.2.2.1.10.12
fw1_wan_out:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.2.2.1.16.12

  stateFormat fw1_hostname
  userReadings fw1_wan_in_diff differential { ReadingsVal("my_fw01", "fw1_wan_in", 0) }, fw1_wan_out_diff differential { ReadingsVal("my_fw01", "fw1_wan_out", 0) }

ivor

Zitat von: ivor am 07 August 2024, 17:55:07Mittels userReadings würde das angeboten, jedoch bekomme ich immer nur den Wert 0. Muss man da noch was konfigurieren?


So, die Knoblerei hat sich gelohnt und funktioniert nun. Anbei die Lösung, wie man auf den Durchsatz kommt mittels SNMP:

Internals:
   CFGFN      conf/snmp.cfg
   DEF        60 60
   HAS_Net::SNMP 0
   INTERVAL   60
   NAME       int_fw01
   NR         558
   NTFY_ORDER 50-int_fw01
   STATE      "fw01.internal"
   TYPE       SYSSTAT
   eventCount 32724
   interval_fs
   QUEUE:
   READINGS:
     2024-08-09 10:19:21   fw1_device      "FreeBSD fw01.internal 14.1-RELEASE-p2 FreeBSD 14.1-RELEASE-p2 stable/24.7-n267758-4ad7ad40bc77 SMP amd64"
     2024-08-09 10:19:21   fw1_hostname    "fw01.internal"
     2024-08-09 10:19:21   fw1_lan_in      4099181729
     2024-08-09 10:19:21   fw1_lan_in_diff 7771.65677219296
     2024-08-09 10:19:21   fw1_lan_out     592025580
     2024-08-09 10:19:21   fw1_lan_out_diff 15135.0275094419
     2024-08-09 10:19:21   fw1_wan_in      3525025171
     2024-08-09 10:19:21   fw1_wan_in_diff 17870.1572267847
     2024-08-09 10:19:21   fw1_wan_out     3610622959
     2024-08-09 10:19:21   fw1_wan_out_diff 4396.65220312971
   filesystems:
   helper:
     has_proc_loadavg 1
     has_proc_stat 1
     has_proc_uptime 1
Attributes:
   noSSH      1
   readings  
fw1_device:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.1.1.0
fw1_hostname:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.1.5.0
fw1_wan_in:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.2.2.1.10.12
fw1_lan_in:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.2.2.1.10.13
fw1_wan_out:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.2.2.1.16.12
fw1_lan_out:snmpget -v 1 -c public -Ovq 192.168.1.1 iso.3.6.1.2.1.2.2.1.16.13

   stateFormat fw1_hostname
   userReadings
fw1_wan_in_diff:fw1_wan_in.* differential { ReadingsVal("int_fw01","fw1_wan_in",0) },
fw1_wan_out_diff:fw1_wan_out.* differential { ReadingsVal("int_fw01","fw1_wan_out",0) },
fw1_lan_in_diff:fw1_lan_in.* differential { ReadingsVal("int_fw01","fw1_lan_in",0) },
fw1_lan_out_diff:fw1_lan_out.* differential { ReadingsVal("int_fw01","fw1_lan_out",0) }

Hübsch wäre, den Intervall auf unter einer Minute zu kriegen.

gruss ivo