Autor Thema: Fritzbox Internet Traffic auslesen um es zu loggen  (Gelesen 10485 mal)

Offline Shojo

  • Developer
  • Full Member
  • ****
  • Beiträge: 380
  • Wie, Was, Wo?
    • DER BASTELBUNKER / Meine kleinen Projekte…
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #30 am: 30 Juli 2018, 18:33:28 »
Das kann ich leider nicht nutzen da die Variable bei mir nicht um Mitternacht geleert wird.

Habe mir mit diesem DOIF beholfen
([FritzBox:box_TodayGigaBytesTotal] > [?$SELF:_helperDayGigaBytesTotal])
(
set $SELF _helperDayGigaBytesTotal [FritzBox:box_TodayGigaBytesTotal],
set $SELF DayGigaBytesTotal {([$SELF:offsetDayGigaBytesTotal] + [FritzBox:box_TodayGigaBytesTotal])}
)
DOELSEIF([FritzBox:box_TodayGigaBytesTotal] < [?$SELF:_helperDayGigaBytesTotal])
(
set $SELF offsetDayGigaBytesTotal  {([$SELF:_helperDayGigaBytesTotal] + [$SELF:offsetDayGigaBytesTotal])},
set $SELF DayGigaBytesTotal {([$SELF:offsetDayGigaBytesTotal] + [FritzBox:box_TodayGigaBytesTotal])},
set $SELF _helperDayGigaBytesTotal [FritzBox:box_TodayGigaBytesTotal]
)
DOELSEIF([00:10:01])
(
set $SELF MonthGigaBytesTotal {([$SELF:MonthGigaBytesTotal] + [$SELF:DayGigaBytesTotal])},
set $SELF YearGigaBytesTotal {([$SELF:YearGigaBytesTotal] + [$SELF:DayGigaBytesTotal])},
set $SELF YearTeraBytesTotal {(sprintf('%.3f',([$SELF:YearGigaBytesTotal] / 1024)))},
set $SELF _helperDayGigaBytesTotal 0,
set $SELF offsetDayGigaBytesTotal 0,
set $SELF DayGigaBytesTotal 0
)
DOELSEIF($mday == 1 and [00:10:02])
(
set $SELF MonthGigaBytesTotal 0
)
DOELSEIF($yday == 0 and [00:10:03])
(
set $SELF YearGigaBytesTotal 0
)
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

Offline SmiL3

  • Newbie
  • Beiträge: 2
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #31 am: 09 Februar 2020, 18:00:58 »
Hallo

vielleicht hilft euch das weiter.  :)


https://waschto.eu/traffic/

mfg
wolfgang

Hallo,
leider ist die Seite offline.
Könnte zufällig jemand eine Anleitung Posten um es nach zu bauen?

Danke
MfG Matti

Offline ThomasMagnum

  • Full Member
  • ***
  • Beiträge: 144

Offline SmiL3

  • Newbie
  • Beiträge: 2
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #33 am: 11 Februar 2020, 00:01:57 »
Danke hat geklappt

Offline Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 3720
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #34 am: 11 Februar 2020, 09:06:50 »
Hat aber einen Fehler, Umrechnung KB / MB / GB wird mit 1024 gerechnet, nicht mit 1000.

Das solltest im at anpassen, sonst stimmen die Werte nicht

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2793
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #35 am: 11 Februar 2020, 09:25:55 »
Sorry, aber 1024 ist schon richtig. Hier sind 2er Potenzen die Grundlage.

1024 KByte = 1 MByte
1024 MByte = 1 GByte
1024 GByte = 1 TByte
usw.


Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Offline Frank_Huber

  • Hero Member
  • *****
  • Beiträge: 3720
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #36 am: 11 Februar 2020, 09:28:19 »
Sorry, aber 1024 ist schon richtig. Hier sind 2er Potenzen die Grundlage
Sag ich doch. :-)
Im Link wird mit 1000 gerechnet.

Offline JoWiemann

  • Tester
  • Hero Member
  • ****
  • Beiträge: 2793
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #37 am: 11 Februar 2020, 11:49:33 »
Wer lesen kann... Sorry


Gesendet von iPhone mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 14902
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #38 am: 11 Februar 2020, 13:18:57 »
Falls mal wieder jemand auf diesen Thread stösst und das Archiv schon wieder archiviert ist :)

Ich habe das mal zusammengefasst, ich hoffe man darf das bei so archivierten Webseiten.
Also der Original Artikel in einer Raw Def zusammengefasst. Mit der Anmerkung:
* das die Rechnung falsch ist.
* man die versteckten Readings nicht sichtbar machen muss, um sie auszulesen :)
# Inhalt aus https://web.archive.org/web/20190309062949/https://waschto.eu/traffic/

attr global showInternalValues 1

define atTraffic at +*00:01:00 {\
  my $d= ((ReadingsVal("FritzBox",".box_TodayBytesReceivedLow",0) / (1000*1000) ) / 1000 + ( ReadingsVal("FritzBox",".box_TodayBytesReceivedHigh",0) * 4294967296 / (1000*1000) ) / 1000);;\
  fhem("setreading Empfangen Empfangen $d");;\
  my $e= ((ReadingsVal("FritzBox",".box_TodayBytesSentLow",0) / (1000*1000) ) / 1000 + ( ReadingsVal("FritzBox",".box_TodayBytesSentHigh",0) * 4294967296 / (1000*1000) ) / 1000);;\
  fhem("setreading Gesendet Gesendet $e")\
}

define Empfangen dummy
attr Empfangen userReadings Empfangen_ges monotonic { ReadingsVal("Empfangen","Empfangen",0)}
attr Empfangen stateFormat {sprintf("%.2f GB - %.2f GB",ReadingsVal("Empfangen","Empfangen",0),ReadingsVal("Empfangen","Empfangen_ges",0))}
attr Empfangen icon control_arrow_down@green

define Gesendet dummy
attr Gesendet userReadings Gesendet_ges monotonic { ReadingsVal("Gesendet","Gesendet",0)}
attr Gesendet stateFormat {sprintf("%.2f GB - %.2f GB",ReadingsVal("Gesendet","Gesendet",0),ReadingsVal("Gesendet","Gesendet_ges",0))}
attr Gesendet icon control_arrow_up@red

define FileLog_Traffic_Empfangen FileLog ./log/Traffic_Empfangen-%Y-%m.log Empfangen
define FileLog_Traffic_Gesendet FileLog ./log/Traffic_Gesendet-%Y-%m.log Gesendet


Da mir die Original Rechnung komisch gestaltet ist, habe ich mir einfach zwei UserReadings mit klaren Formeln gemacht (für die Raw Def:

2**32 -> 2^32           -> 4294967296 (Faktor für das "High" Double Word)
2**30 -> 1024*1024*1024 -> 1073741824 (GB)
2**20 -> 1024*1024      -> 1048576 (MB)
2**10                   -> 1024 (kB)

attr FritzBox userReadings todayReceived {(ReadingsVal($name,".box_TodayBytesReceivedLow",0) + ReadingsVal($name,".box_TodayBytesReceivedHigh",0) * 2**32) / 2**30},\
todaySent {(ReadingsVal($name,".box_TodayBytesSentLow",0) + ReadingsVal($name,".box_TodayBytesSentHigh",0) * 2**32) / 2**30}
Wer auf dem Land lebt (so wie ich  ::) ), kann die Werte auch in MB darstellen und den Teiler umstellen: 2**20

Oder macht das im Original Artikel verwendete Konstrukt (Wert /(1000*1000)/1000) irgendeinen tieferen Sinn? Genauigkeit? Geschwindigkeit?

Gruß Otto
« Letzte Änderung: 11 Februar 2020, 13:37:44 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266
Gefällt mir Gefällt mir x 3 Informativ Informativ x 1 Liste anzeigen

Offline dombar

  • New Member
  • *
  • Beiträge: 24
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #39 am: 19 Februar 2020, 21:33:42 »
Die Frage die Ich mir stelle ist warum wird das als ein Intervall gemacht?
Warum nicht auf ein Notify wenn die Readings von der FB kommen?
1x FB7490, 2x FBDECT200, 1x RPI als Öltankanzeige mit TEK603, 1x Synology NAS, 1xCUL FS20, 2x CCU3, 1xFS20DWT , 1x FS20 DI22-4, 1x FS20IR, 3x FS20ST, 1 x KS300, 3x HM-LC-Sw1PBU-FM, 6x HM-ES-PMSw1-Pl,  Siemens S7 CPU 315 für Stromzähler auf S0 Basis uvm.

Offline Otto123

  • Hero Member
  • *****
  • Beiträge: 14902
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #40 am: 20 Februar 2020, 12:28:38 »
Warum nicht auf ein Notify wenn die Readings von der FB kommen?
Oder einfach UserReadings - siehe mein vorhergehender Post. ;) Und geloggt wird einfach ins vorhandene FritzBox Log.

Man braucht kein einziges zusätzliches Devices.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline dombar

  • New Member
  • *
  • Beiträge: 24
Antw:Fritzbox Internet Traffic auslesen um es zu loggen
« Antwort #41 am: 20 Februar 2020, 18:42:16 »
Stimmt da hast du auch recht! Habe Ich nicht drüber nachgedacht! ???
1x FB7490, 2x FBDECT200, 1x RPI als Öltankanzeige mit TEK603, 1x Synology NAS, 1xCUL FS20, 2x CCU3, 1xFS20DWT , 1x FS20 DI22-4, 1x FS20IR, 3x FS20ST, 1 x KS300, 3x HM-LC-Sw1PBU-FM, 6x HM-ES-PMSw1-Pl,  Siemens S7 CPU 315 für Stromzähler auf S0 Basis uvm.