Guten Tag,
da ich meine FritzBox gegen ein Draytek Vigor 165 Modem getauscht habe und als Router mein Unifi Security Gateway(USG) nutze, wollte ich auch die Download und Uploud Raten plotten. Da das USG SNMP kann, werte ich das WAN0 aus, um an diese Daten zu kommen. Ich hab das Sysstat Modul so eingerichtet:
defmod TrafficUnifiWan SYSSTAT 30 600 192.168.2.1
attr TrafficUnifiWan DbLogInclude Downstream_MBits,Upstream_MBits,RX_GB_WAN,TX_GB_WAN,ifHCInOctets,ifHCOutOctets,EmpfangenHeute,GesendetHeute,GesendetMonat,EmpfangenMonat
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
attr TrafficUnifiWan room Unifi
attr TrafficUnifiWan snmp 1
attr TrafficUnifiWan snmpCommunity unifi
attr TrafficUnifiWan snmpVersion 2
attr TrafficUnifiWan stat 1
attr TrafficUnifiWan stateFormat Heute: Empfangen EmpfangenHeute GB;; Gesendet GesendetHeute
attr TrafficUnifiWan uptime 1
attr TrafficUnifiWan userReadings Downstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024*8)},\
Upstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024*8)},\
RX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024/1024)},\
TX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024/1024)},\
GesendetHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
\
EmpfangenHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
\
GesamtHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))}
Die Werte werden so auch ausgelesen, aber wenn ich FHEM neustarte, dann stoppt die Auswertung.
Wenn ich aber folgendes absetze:
attr TrafficUnifiWan snmp 1
Dann werden die Werte direkt wieder korrekt empfangen - zumindest bis zum nächsten Neustart. Wieso ist das so?
Ich hoffe, dass mir jemand helfen kann.
Vielen Dank und beste Grüße
Andy
P.s.: ob die Umrechnung mit Differential in MBits korrekt ist, weiß ich nicht. Es kommen aber ungefähr ähnliche Werte wie beim USG raus.
um das Problem zu umgehen, setzte ich nun einfach minütlich das SNMP Attribut neu
defmod di_zz_TIME_EveryMinute DOIF ([ +:01]) (attr TrafficUnifiWan snmp 1)
das funktioniert erstmal...
Du kannst auch auf "Neustart" Trickern und es setzen ...
Hallo Andy,
super Idee, die du umgesetzt hast.
Kann ich deine Definition copy/paste (bis auf die IP-Adresse) übernehmen?
Was bedeutet dieses Attribut, muss ich da was anpassen?
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
Da du keine Fritzbox (anscheinend) hast, wie machst du die Telefonie, ohne Fritzbox, mit dem Draytek? Das würde mich interessieren, wenn ich gegen Jahresende einen neuen Internetvertrag aushandele.
Viele Grüße Gisbert
@Gisbert
die X.X.X.X auch mit deiner IP ersetzen.
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
.1.3.6.1.2.1.4.20.1.1.X.X.X.X:wanIP
Ich musste snmp Version 1 benutzen
attr TrafficUnifiWan snmpVersion 1
@Andy89
Danke wollte ich schon lange auch machen, aber das warten hat sich gelohnt 8)
Gruß
Eisix
Zitat von: Gisbert am 19 April 2020, 21:34:54
Kann ich deine Definition copy/paste (bis auf die IP-Adresse) übernehmen?
Was bedeutet dieses Attribut, muss ich da was anpassen?
ich habe gar nicht gesehen, dass die öffentliche IP auch Teil der Mibs wird. Das bringt mir natürlich auch nichts, da sich meine IP öfter ändert.
Du kannst es so übernehmen, wenn du ein USG hast. Beim USG Pro sind die Mibs anders.
Wie ich schon schrieb, bin ich mir bei den userreadings nicht ganz sicher, aber die passen grob.
Zitat von: Gisbert am 19 April 2020, 21:34:54
Da du keine Fritzbox (anscheinend) hast, wie machst du die Telefonie, ohne Fritzbox, mit dem Draytek? Das würde mich interessieren, wenn ich gegen Jahresende einen neuen Internetvertrag aushandele.
das mache ich ganz "einfach" - ich habe alle dazu erzogen, mich auf dem Handy anzurufen. Das habe ich sowieso meist griffbereit und ne Flat hab ich auch drin.
Das Haustelefon wurde in den letzten Jahren nur geladen und ich kann an zwei Händen abzählen, wie oft ich darauf angerufen wurde. Da kann ich dir leider nicht helfen.
Zitat von: Eisix am 20 April 2020, 15:21:10
Ich musste snmp Version 1 benutzen
attr TrafficUnifiWan snmpVersion 1
ich musste auf snmpVersion 2, weil ich glaube, dass ifHCInOctets und ifHCOutOctets dann nicht funktionierten (es könnte aber auch sein, dass es an dem Problem vom Auslesen lag).
Auf dem USG habe ich die aktuellste Version installiert.
Das ist dann auch bei switches und APs aktiv.
Da könnte man ein schönes Modul draus bauen das alles Mögliche mit snmp abdeckt oder gibts das schon?
Gruß
Eisix
Hallo Eisix,
hallo Andy,
ich bin nicht so firm bei Netzwerken, wie ihr es wohl seid, vielleicht stehe ich aber auch nur etwas zu fest auf'm Schlauch.
In der Definition gibt es 2 IP-Adressen:
defmod TrafficUnifiWan SYSSTAT 30 600 192.168.2.1
attr TrafficUnifiWan DbLogInclude Downstream_MBits,Upstream_MBits,RX_GB_WAN,TX_GB_WAN,ifHCInOctets,ifHCOutOctets,EmpfangenHeute,GesendetHeute,GesendetMonat,EmpfangenMonat
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
192.168.2.1: ist das die IP-Adresse des USG-3?
2.243.73.69: was ist das für eine IP-Adresse, die des UniFi-Controllers oder des Modems, oder ...
Das dürfte bei mir zu Problemen führen: DbLogInclude, da ich Filelog benutze. Wie müsste das dann aussehen?
Viele Grüße Gisbert
192.168.2.1. Interne USG ip
Die andere ist die externe.
Einfach ein Filelog für TrafficUnifiWan definieren. Dort kannst du dann auch wieder über regex filtern wenn du möchtest.
Gruß
Eisix
Zitat von: Eisix am 20 April 2020, 18:59:35
192.168.2.1. Interne USG ip
Die andere ist die externe.
Einfach ein Filelog für TrafficUnifiWan definieren. Dort kannst du dann auch wieder über regex filtern wenn du möchtest.
Gruß
Eisix
Hallo Eisix,
vielen Dank für die Erklärung - das kann ich umsetzen.
Leider gibt es kein Attribut
edit: mbis mibs, das ich auswählen könnte. Wie bekomme ich dieses Attribut, bzw. wo muss ich es definieren?
Viele Grüße Gisbert
Hallo Eisix,
commandref gibt folgendes preis:
ZitatIf <host> is given it has to be accessible by ssh without the need for a password.
Wie habt ihr das gelöst? Ich kann mich per ssh nur mit Passwort anmelden.
Viele Grüße Gisbert
es gibt ssh key
https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html (https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html)
define FileLog_TrafficUnifiWan FileLog ./log/TrafficUnifiWan-%Y.log TrafficUnifiWan
Das attr mibs gibt es bei sysstat, kannst aber einfach den code von Andy in die Befehlszeile Kopieren.
Am controller musst du snmp aktivieren wie im screenshot.
Bei mir heißt die Community "public" bei Andy "unifi"
Gruß
Eisix
snmp ist ein eigener service der auf port 161 läuft. Dazu wird kein ssh benötigt. Snmp v1,2 gehen read dann ohne Authentifizierung. Write muss ich mal testen.
Gruß
Eisix
Zitat von: Eisix am 20 April 2020, 20:31:42
snmp ist ein eigener service der auf port 161 läuft. Dazu wird kein ssh benötigt. Snmp v1,2 gehen read dann ohne Authentifizierung
kann ich so bestätigen. Mein Raspberry hat keinen SSH Zugang zum USG. Ich habe wie Eisix es gezeigt hat, im Controller SNMP v1,2 aktivert.
Beste Grüße
Andy
So, ich hab jetzt snmp im UniFi-Controller aktiviert:
SNMPV1, SNMPV2C Enable
Community String public
Das Attribut mibs fehlt aber immer noch im Device. Ohne das Attribut kann ich die Definition nicht setzen ohne Gemecker, d.h. gar nicht. Es sollte da sein, ist es aber nicht, diehe Screenshot.
Viele Grüße Gisbert
schick mal ein list des sysstat
Internals:
CFGFN
DEF 30 600 192.168.1.1
FUUID 5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
HAS_Net::SNMP 0
HAS_Sys::Statistics 0
HOST 192.168.1.1
INTERVAL 60
INTERVAL_FS 600
NAME TrafficUnifiWan
NR 21620
STATE Initialized
TYPE SYSSTAT
interval_fs 360
READINGS:
filesystems:
helper:
bm:
SYSSTAT_Define:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 20.04. 19:54:44
max 0.00151300430297852
tot 0.00262618064880371
mAr:
HASH(0x56432134c398)
TrafficUnifiWan SYSSTAT 30 600 192.168.1.1
SYSSTAT_Get:
cnt 12
dmx -1000
dtot 0
dtotcnt 0
mTS 20.04. 20:09:00
max 0.000509023666381836
tot 0.00172519683837891
mAr:
HASH(0x56432134c398)
TrafficUnifiWan
update
Attributes:
Wie gesagt, ich kann kein Attribut mibs setzen, weil es keins gibt.
Hier die Liste der Attribute:
TrafficUnifiWan: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userReadings verbose disable disabledForIntervals raspberrycpufreq raspberrytemperature synologytemperature stat uptime ssh_user armbiantemperature filesystems showpercent event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat timestamp-on-change-reading babbleDevice cmdIcon devStateIcon devStateIcon devStateStyle icon sortby stateFormat valueStyle webCmd webCmdLabel widgetOverride userattr
Glaube dir fehlt
HAS_Net::SNMP 1
HAS_Sys::Statistics 1
https://forum.fhem.de/index.php/topic,10573.0.html (https://forum.fhem.de/index.php/topic,10573.0.html)
Also Net::SNMP und Sys::Statistics installieren
https://wiki.fhem.de/wiki/Raspberry_Pi_/_Rasbian_und_SNMP (https://wiki.fhem.de/wiki/Raspberry_Pi_/_Rasbian_und_SNMP)
Hallo Eisix,
snmp und snmpd konnte ich installieren, nicht aber folgendes auf Debian10:sudo apt-get install snmp-mibs-downloader
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package snmp-mibs-downloader is not available, but is referr
ed to by another package.
This may mean that the package is missing, has been obsolete
d, or
is only available from another source
E: Package 'snmp-mibs-downloader' has no installation candid
ate
Das list sieht nach einem shutdown restart wie folgt aus:
Internals:
DEF 30 600 192.168.1.1
FUUID 5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
HAS_Net::SNMP 0
HAS_Sys::Statistics 1
HOST 192.168.1.1
INTERVAL 60
INTERVAL_FS 600
NAME TrafficUnifiWan
NR 955
STATE Initialized
TYPE SYSSTAT
interval_fs 600
READINGS:
filesystems:
Attributes:
Irgendeine Idee wie ich weiter komme?
Viele Grüße Gisbert
Hallo Gisbert,
Den mibs-Downloader brauchst du für sysstat nicht. Snmpd denke ich auch nicht, schadet aber erstmal nicht.
Dir fehlt noch Net::snmp.
apt install libnet-snmp-perl
Gruß
Eisix
Hallo Eisix,
vielen Dank, jetzt scheint das Device zu laufen.
Noch ein paar Fragen:
Ich hab das Attribut snmpVersion 2 gewählt, ist das so richtig?
Bzgl. der Installation von snmp und snmpd hatte ich auch den snmpd service auf meinem Fhemserver gestartet und enabled. Sollte ich diesen service disablen und stoppen?
Gleich als erste Werte bekomme ich für heute 13.99 GB download und 1.4 GB upload - das kann ich mir kaum erklären. Der Zuwachs der letzten Stunde sieht vernünftiger aus.
Noch ein list für alle Fälle:
Internals:
DEF 300 900 192.168.1.1
FUUID 5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
HAS_Net::SNMP 1
HAS_Sys::Statistics 1
HOST 192.168.1.1
INTERVAL 300
INTERVAL_FS 900
NAME TrafficUnifiWan
NR 955
STATE today down: 14.44 GB
today up: 1.46 GB
TYPE SYSSTAT
USE_SNMP 1
interval_fs 300
snmpCommunity public
snmpVersion 2
READINGS:
2020-04-21 10:05:13 Downstream_MBits 0.140395265047316
2020-04-21 10:05:13 EmpfangenHeute 14.44
2020-04-21 10:05:13 EmpfangenJahr 14.44
2020-04-21 10:05:13 EmpfangenMonat 14.44
2020-04-21 10:05:13 EmpfangenTotal 14.44
2020-04-21 10:05:13 EmpfangenWoche 14.44
2020-04-21 10:05:13 GesamtHeute 15.89
2020-04-21 10:05:13 GesamtJahr 15.89
2020-04-21 10:05:13 GesamtMonat 15.89
2020-04-21 10:05:13 GesamtTotal 15.89
2020-04-21 10:05:13 GesamtWoche 15.89
2020-04-21 10:05:13 GesendetHeute 1.46
2020-04-21 10:05:13 GesendetJahr 1.46
2020-04-21 10:05:13 GesendetMonat 1.46
2020-04-21 10:05:13 GesendetTotal 1.46
2020-04-21 10:05:13 GesendetWoche 1.46
2020-04-21 10:05:13 RX_GB_WAN 14.4384
2020-04-21 10:05:13 TX_GB_WAN 1.4566
2020-04-21 10:05:13 Upstream_MBits 0.172058282276678
2020-04-21 10:05:13 desc eth0
2020-04-21 10:05:13 idle 96
2020-04-21 10:05:13 ifHCInOctets 15503075125
2020-04-21 10:05:13 ifHCOutOctets 1563963658
2020-04-21 10:05:13 ifInOctets 2618173237
2020-04-21 10:05:13 ifOutOctets 1563963658
2020-04-21 10:05:13 ifSpeed 1000000000
2020-04-21 10:05:13 load 0.05
2020-04-21 10:05:13 name USG-3
2020-04-21 10:05:13 state 0.05 0.06 0.09
2020-04-21 10:05:13 system 1
2020-04-21 10:05:13 uptime 2 days, 14:13:37.98
2020-04-21 10:05:13 user 1
2020-04-21 10:05:13 wanIP 192.168.178.20
filesystems:
helper:
bm:
SYSSTAT_Attr:
cnt 22
dmx -1000
dtot 0
dtotcnt 0
mTS 21.04. 08:41:30
max 0.00361084938049316
tot 0.0243136882781982
mAr:
set
TrafficUnifiWan
snmpVersion
1
SYSSTAT_Define:
cnt 5
dmx -1000
dtot 0
dtotcnt 0
mTS 21.04. 09:04:01
max 0.0390009880065918
tot 0.186017036437988
mAr:
HASH(0x564edc554238)
TrafficUnifiWan SYSSTAT 60 900 192.168.1.1
SYSSTAT_Get:
cnt 34
dmx -1000
dtot 0
dtotcnt 0
mTS 21.04. 08:42:44
max 36.091325044632
tot 72.312362909317
mAr:
HASH(0x564edc554238)
TrafficUnifiWan
update
Attributes:
mibs .1.3.6.1.2.1.1.5.0:name
.1.3.6.1.2.1.2.2.1.2.2:desc
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets
.1.3.6.1.2.1.4.20.1.1.192.168.178.20:wanIP
snmp 1
snmpCommunity public
snmpVersion 2
stat 1
stateFormat today down: EmpfangenHeute GB
today up: GesendetHeute GB
uptime 1
userReadings Downstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024*8)},
Upstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024*8)},
RX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024/1024)},
TX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024/1024)},
GesendetHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
EmpfangenHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))}
Viele Grüße Gisbert
Hallo,
wenn du mit snmpVersion 2 Werte kriegst ist das Ok, war bei mir nicht der Fall.
snmpd service würde ich stoppen und disablen wenn du deinen raspi nicht damit Monitoren willst.
Zu denn Werten kann ich noch nichts sagen, muss ich bei mir auch erstmal im Auge behalten.
Gruß
Eisix
Zitat von: Gisbert am 21 April 2020, 10:16:34
Gleich als erste Werte bekomme ich für heute 13.99 GB download und 1.4 GB upload - das kann ich mir kaum erklären. Der Zuwachs der letzten Stunde sieht vernünftiger aus.
die Werte sind steigende Werte, die nur zum Teil verloren gehen, wenn man das USG hart neustartet - also Stecker raus und wieder rein.
Die vielen Userreadings habe ich deswegen drin und diese "steuere" ich über eine Funktion in meiner myUtils:
#######################################################################################
# #
# Unifi-Traffic #
# #
#######################################################################################
sub resetUnifiTraffic(){
my $name = "TrafficUnifiWan";
my $up_traffic;
my $down_traffic;
my $traffic;
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
if( $wday == 1 ){
$up_traffic = ReadingsVal($name,"GesendetWoche",0);
setReading($name,"GesendetLetzteWoche",$up_traffic);
setReading($name,"GesendetWoche",0);
$down_traffic = ReadingsVal($name,"EmpfangenWoche",0);
setReading($name,"EmpfangenLetzteWoche",$down_traffic);
setReading($name,"EmpfangenWoche",0);
$traffic = ReadingsVal($name,"GesamtWoche",0);
setReading($name,"GesamtLetzteWoche",$traffic);
setReading($name,"GesamtWoche",0);
}
if( $mday == 7 ){
$up_traffic = ReadingsVal($name,"GesendetMonat",0);
setReading($name,"GesendetLetzterMonat",$up_traffic);
setReading($name,"GesendetMonat",0);
$down_traffic = ReadingsVal($name,"EmpfangenMonat",0);
setReading($name,"EmpfangenLetzterMonat",$down_traffic);
setReading($name,"EmpfangenMonat",0);
$traffic = ReadingsVal($name,"GesamtMonat",0);
setReading($name,"GesamtLetzterMonat",$traffic);
setReading($name,"GesamtMonat",0);
my $fairuse = ReadingsVal($name,"FairUseCounter",0);;
if($traffic > 300) {
$fairuse += 1;
} else {
$fairuse = 0;
}
setReading($name,"FairUseCounter",$fairuse);
}
if( $yday == 1 ){
$up_traffic = ReadingsVal($name,"GesendetJahr",0);
setReading($name,"GesendetLetztesJahr",$up_traffic);
setReading($name,"GesendetJahr",0);
$down_traffic = ReadingsVal($name,"EmpfangenJahr",0);
setReading($name,"EmpfangenLetztesJahr",$down_traffic);
setReading($name,"EmpfangenJahr",0);
$traffic = ReadingsVal($name,"GesamtJahr",0);
setReading($name,"GesamtLetztesJahr",$traffic);
setReading($name,"GesamtJahr",0);
}
$up_traffic = ReadingsVal($name,"GesendetHeute",0);
setReading($name,"GesendetGestern",$up_traffic);
setReading($name,"GesendetHeute",0);
$down_traffic = ReadingsVal($name,"EmpfangenHeute",0);
setReading($name,"EmpfangenGestern",$down_traffic);
setReading($name,"EmpfangenHeute",0);
$traffic = ReadingsVal($name,"GesamtHeute",0);
setReading($name,"GesamtGestern",$traffic);
setReading($name,"GesamtHeute",0);
return;
}
in einem DOIF setze ich das dann jeden Tag um 0:01 zurück:
DOELSEIF ([00:01]) ({resetUnifiTraffic()})
es gibt wahrscheinlich auch schönere Möglichkeiten, das umzusetzen. Aber da ich das irgendwann mal für die FritzBox eingerichtet habe, war es sehr einfach die paar Namen anzupassen...
Hallo Andy,
das Modul arbeitet jetzt bei mir; allerdings habe ich noch ein paar Fragen zu deiner Definition.
Gesendet bzw. EmpfangenHeute/Woche/Monat/Jahr hat jeweils die gleiche Definition, folglich erhalte ich die identischen Werte, die in meinem Fall vermutlich einer Datenmenge seit Neuststart des USGs vor 3 Tagen entsprechen.
Da ich auch noch mit einem anderen Modul die vor dem USG geschalteten Fritzbox auslese, würde ich erwarten, dass die gesendeten und empfangenen Daten pro Tag bei beiden Geräten in etwa gleich hoch sind. Dies ist aber nicht der Fall. Da ich im wesentlichen auf den täglichen Datenverkehr aus bin, welche Definition ist für das USG dafür notwendig?
Deine Definition:
defmod TrafficUnifiWan SYSSTAT 30 600 192.168.2.1
attr TrafficUnifiWan DbLogInclude Downstream_MBits,Upstream_MBits,RX_GB_WAN,TX_GB_WAN,ifHCInOctets,ifHCOutOctets,EmpfangenHeute,GesendetHeute,GesendetMonat,EmpfangenMonat
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
attr TrafficUnifiWan room Unifi
attr TrafficUnifiWan snmp 1
attr TrafficUnifiWan snmpCommunity unifi
attr TrafficUnifiWan snmpVersion 2
attr TrafficUnifiWan stat 1
attr TrafficUnifiWan stateFormat Heute: Empfangen EmpfangenHeute GB;; Gesendet GesendetHeute
attr TrafficUnifiWan uptime 1
attr TrafficUnifiWan userReadings Downstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024*8)},\
Upstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024*8)},\
RX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024/1024)},\
TX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024/1024)},\
GesendetHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
\
EmpfangenHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
\
GesamtHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtWoche monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtMonat monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtJahr monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtTotal monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))}
Viele Grüße Gisbert
deswegen benötigst du die von mir (vor 2 Posts) angesprochene myUtils und eine at/doif Definition, welche die Tages-,Wochen-,Monats- und Jahreswerte an den ensprechenden Tagen kurz nach Mitternacht zurücksetzt.
Ob es sowas von Haus aus gibt, weiß ich nicht.
Zitat von: Andy89 am 22 April 2020, 09:13:01
deswegen benötigst du die von mir (vor 2 Posts) angesprochene myUtils und eine at/doif Definition, welche die Tages-,Wochen-,Monats- und Jahreswerte an den ensprechenden Tagen kurz nach Mitternacht zurücksetzt.
Ob es sowas von Haus aus gibt, weiß ich nicht.
Hallo Andy,
danke für die Erklärung; ich war zunächst mit der grundsätzlichen Inbetrienahme so sehr beschäftigt, dass ich deine Lösung gar nicht registriert hatte.
Dann muss ich mal sehen, welches der ausgespuckten Readings bzw. abgefragten Daten einem täglichen Verbrauch entspricht. Falls das jemand auf einfache Weise (ohne zusätzliche Definition in myUtils) gelöst haben sollte, dann bin ich daran interessiert.
Viele Grüße Gisbert
Hallo Andy,
ich versuche dann den Tagesverbrauch (nur das interessiert mich) nach deiner Methode mit DOIF kurz nach Mitternacht und einer sub in myUtils umzusetzen.
Hallo Eisix,
du hattest vorgeschlagen das benötigte Attribut nach einem shutdown restart auf ebensolches zu triggern, anstatt Andys Lösung es jede Minute zu setzen. Hast du einen konkreten Vorschlag dazu, bevor ich das mit meiner trial-und-error-Methode hinbekomme?
Viele Grüße Gisbert
Das war Wernieman :)
Wie es geht kann ich dir aus dem Stehgreif auch nicht sagen. Die Funktionalität gibt es auf jeden Fall.
Gruß
Eisix
sowas in der Art nicht getestet
define SNMPinit notify global:INITIALIZED {attr TrafficUnifiWan snmp 1}
Weiß nur, das es geht .. aber aktuell nicht die Umsetzung ..
Da sollte "Doku lesen" helfen ... oder Forum suche ...
Edit:
Eisix war schneller ... das meinte ich
Getestet
define SNMPinit notify global:INITIALIZED {fhem 'attr TrafficUnifiWan snmp 1'}
Gruß
Eisix
Hallo Andy,
da ich nur an dem tagesaktuellen Datenverkehr interessiert bin, habe ich das Zurücksetzen kurz nach Mitternacht durch folgende at-Definition gelöst:
defmod ResetUnifiTraffic at *00:00:05 {fhem ('setreading TrafficUnifiWan GesendetHeute 0;; setreading TrafficUnifiWan EmpfangenHeute 0')}
Eine eigene sub in 99_myUtils.pm hat sich dadurch erübrigt.
Viele Grüße Gisbert
Hallo,
am Freitag, den 26.6. 23:30 hatte ich den UniFi-Controller geschrottet, was das Einspielen eines umfangreichen Backups, d.h. die root-Partition, auf meinem Fhem-Server, auf dem auch der UniFi-Controller läuft, nach sich gezogen hat.
Nach Einspielen eines aktuellen Fhem-Backups läuft anscheinend auch wieder alles rund, bis auf dieses Modul.
Ich habe diesen Thread rauf und runter gelesen und alles eingestellt, was es tun gibt, aber ich bekomme keine Daten rein, bzw. nicht die wesentlichen.
Das Attribut mibs fehlt, ich habe aber alle Pakete installiert.
Merkwürdig ist aber, dass einige Attribute beim Einspielen des Fhem-Backups verlorengegangen zu sein scheinen.
Kann jemand bitte drüber schauen, ich komme ohne Hilfe nicht mehr weiter.
Ein list:
Internals:
CFGFN ./FHEM/FritzboxUniFiAnwesenheit.cfg
DEF 60 900 192.168.1.1
FUUID 5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
HAS_Net::SNMP 1
HAS_Sys::Statistics 1
HOST 192.168.1.1
INTERVAL 60
INTERVAL_FS 900
NAME TrafficUnifiWan
NR 91
STATE download: 0.00 GB</br>
upload: 0.00 GB
TYPE SYSSTAT
USE_SNMP 1
interval_fs 540
snmpCommunity public
snmpVersion 2
READINGS:
2020-06-28 10:47:07 EmpfangenHeute 0
2020-06-28 10:47:07 GesendetHeute 0
2020-06-28 10:47:07 RX_GB_WAN 282.285074323416
2020-06-28 10:47:07 TX_GB_WAN 25.2582701276988
2020-06-26 23:30:23 desc eth0
2020-06-28 10:47:07 idle 95
2020-06-26 23:30:23 ifHCInOctets 303101290592
2020-06-26 23:30:23 ifHCOutOctets 27120861038
2020-06-26 23:30:23 ifInOctets 2453579872
2020-06-26 23:30:23 ifOutOctets 1351057262
2020-06-26 23:30:23 ifSpeed 1000000000
2020-06-28 10:47:07 load 0.03
2020-06-26 23:30:23 name ubnt
2020-06-28 10:47:07 state 0.03 0.07 0.12
2020-06-28 10:47:07 system 1
2020-06-28 10:47:07 uptime 44 days, 12:56:39.87
2020-06-28 10:47:07 user 1
2020-06-26 23:30:23 wanIP 192.168.178.20
filesystems:
helper:
bm:
SYSSTAT_Attr:
cnt 3
dmx -1000
dtot 0
dtotcnt 0
mTS 28.06. 10:42:55
max 0.00328683853149414
tot 0.00527596473693848
mAr:
set
TrafficUnifiWan
snmpCommunity
public
SYSSTAT_Get:
cnt 23
dmx -1000
dtot 0
dtotcnt 0
mTS 28.06. 10:29:56
max 0.488898992538452
tot 3.63300490379333
mAr:
HASH(0x558595dd9808)
TrafficUnifiWan
update
Attributes:
armbiantemperature 1
event-on-change-reading .*
group Performance
icon it_router
room Network
snmp 1
snmpCommunity public
snmpVersion 2
sortby 3
stat 1
stateFormat {'download: '.round(ReadingsVal($name,'EmpfangenHeute',''),2).' GB</br>
upload: '.round(ReadingsVal($name,'GesendetHeute',''),2).' GB'}
uptime 1
userReadings RX_GB_WAN {ReadingsVal($name,'ifHCInOctets','-1')/1024/1024/1024},
TX_GB_WAN {ReadingsVal($name,'ifHCOutOctets','-1')/1024/1024/1024},
GesendetHeute monotonic {ReadingsVal($name,'TX_GB_WAN',0)},
EmpfangenHeute monotonic {ReadingsVal($name,'RX_GB_WAN',0)}
verbose 5
Viele Grüße Gisbert
Hallo zusammen,
mein Problem ist gelöst, wobei ich aber echt überfragt bin, warum es zu diesem "Aussetzer" beim Backup gekommen ist.
Ich hatte ein Fhem-Backup eingespielt mit einem Status, an dem der UniFi-Controller nicht lief.
Die Definition dieses Backups führte beim SYSSTAT-Modul zu Schwierigkeiten, die ich bei anderen Modulen nicht gesehen habe.
Ich hab mir dann ein etwas älteres Backup angeschaut, und die Definition von dort in mein laufendes Fhem übernommen.
Damit läuft das Modul und das Atrribut mibs ist auch wieder vorhanden.
Problem gelöst, aber warum die Definition des Devices sich bei ausgestiegenem Controller geändert hat - keine Ahnung.
Viele Grüße Gisbert