Wert merken bzw. Delta ermitteln

Begonnen von SofB, 12 November 2016, 13:48:35

Vorheriges Thema - Nächstes Thema

SofB

Hallo!

ich möchte gerne den Throughput der Firewall anzeigen.
Dazu lese ich mit SNMP alle 60 Sekunden die Interfaces aus (value_before). Ich bekomme dann die absolute Menge zurück.
60 Sekunden (value_now) später habe ich dann sozusagen eine größere Menge als 60 Sekunden davor.

Ich stelle mir das so vor:

value_now - value_old = current.

Wie kann ich mir das merken? Ich experimentiere mit userreadings rum, aber so richtig verstehe ich es nicht...

Danke!
FHEM auf Debian Jessie VM - ESXi 6.0 Intel Nuc i5 4th Gen
HM-CFG-LAN | HM-CFG-USB | nanoCUL868 | nanoCUL433 | JeeLink868

justme1968

userReadings typ differential sollte machen was du willst.

was hast du denn schon probiert.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

SofB

Ich hatte es erst mit UserAttr versucht und gemerkt, dass ich auf dem Holzweg gewesen bin.
Danach mit

userReadings dl_before { ReadingsVal("FirewallSNMP","em0_out",0);; }
und wollte es dann als label ausgeben, wo ich das Delta berechne.

Jetzt bin ich mit Deinem Tipp schonmal etwas weiter:

download_current differential { ReadingsVal("FirewallSNMP","em0_out",0) /8/1024 ;;;; }
FHEM auf Debian Jessie VM - ESXi 6.0 Intel Nuc i5 4th Gen
HM-CFG-LAN | HM-CFG-USB | nanoCUL868 | nanoCUL433 | JeeLink868

justme1968

schaut doch gut aus. die vielen ; sind aber unnötig.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

SofB

Danke.

So sieht es jetzt aus:

download_current differential { ReadingsVal("FirewallSNMP","pppoe_in",0) /1000/60  } ,
upload_current differential { ReadingsVal("FirewallSNMP","pppoe_out",0) /1000/60  }

da ist noch ein Fehler drin. Und zwar sollte das /1000/60 erst NACH der differential Ermittlung erfolgen.
Wie bekommt man das denn hin...?
FHEM auf Debian Jessie VM - ESXi 6.0 Intel Nuc i5 4th Gen
HM-CFG-LAN | HM-CFG-USB | nanoCUL868 | nanoCUL433 | JeeLink868

justme1968

ob du vorher oder nachher dividierst ist doch egal: (X/1000)-(Y/1000) = (X-Y)/1000

schau dir noch mal an ob du die /60 wirklich brauchst. differential berücksichtig die zeit zwischen readings automatisch. difference wäre die reine differenz.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

SofB

#6
Stimmt. Das /60 brauche ich nicht.
Ich hatte es zwischenzeitlich mit einem 2. Reading gelöst, welches sich die Daten aus dem ersten zieht und mir fiel dann auf, dass es keinen Unterschied macht.

Hier meine Lösung zum Monitoren des Firewall Throughputs:


defmod FirewallSNMP SYSSTAT 60 600 firewall
attr FirewallSNMP mibs 1.3.6.1.2.1.2.2.1.10.9:pppoe_in , 1.3.6.1.2.1.2.2.1.16.9:pppoe_out , 1.3.6.1.2.1.1.3.0:Connection_Duration
attr FirewallSNMP room UtilityRoom
attr FirewallSNMP snmp 1
attr FirewallSNMP snmpCommunity derIsGeheim!!
attr FirewallSNMP snmpVersion 2
attr FirewallSNMP stateFormat {sprintf("Down: %0.0f kb/sec Up: %0.0f kb/sec", ReadingsVal("FirewallSNMP","download_current_byte",0), ReadingsVal("FirewallSNMP","upload_current_byte",0))}
attr FirewallSNMP userReadings download_current_byte differential { ReadingsVal("FirewallSNMP","pppoe_in",0) /1024} ,\
upload_current_byte differential { ReadingsVal("FirewallSNMP","pppoe_out",0) /1024}\


Vielleicht braucht es ja mal jemand..

Danke für die Unterstützung :)
FHEM auf Debian Jessie VM - ESXi 6.0 Intel Nuc i5 4th Gen
HM-CFG-LAN | HM-CFG-USB | nanoCUL868 | nanoCUL433 | JeeLink868