FHEM Forum

FHEM - Hardware => FRITZ!Box => Thema gestartet von: Shadow3561 am 25 Juni 2017, 17:15:53

Titel: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Shadow3561 am 25 Juni 2017, 17:15:53
Moin,
ist es irgendwie möglich die Online Zähler Statistiken im Modul anzeigen zu lassen?
Besonders interessieren mich hier die Monatsverbräuche von Up,- und Download.

MfG
Titel: Antw:FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 26 Juni 2017, 13:14:43
Moin,

ich denke unter folgendem Link findest du etwas brauchbares:
https://waschto.eu/traffic (https://waschto.eu/traffic)

Habe es ebenfalls umgesetzt.

Gruß Christian
Titel: Antw:FritzBox Online Zähler auslesen
Beitrag von: Shadow3561 am 26 Juni 2017, 17:46:09
Danke ChristianR

Das ist leider nicht was ich suche.
Ich habe es bereits probiert und muss sagen, die Tagesverbräuche benötige ich nicht in FHEM.
Ich möchte schon genau die Daten haben die auch in dem WebUI der Fritzbox und Monatsverbrauch stehen.
Falls es nicht möglich ist, ist es nicht so tragisch, dann versuche ich halt mein Glück mit Httpmod.

MfG
und danke für deine Hilfe
Titel: Antw:FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 26 Juni 2017, 20:35:06
Vielleicht reden wir auch aneinander vorbei und ich habe es noch nicht gemerkt...  ;)

Bei mir schaut es derzeit auf der Fritzbox so aus (Bild Fritzbox)
Und in FHEM sieht es so aus (Bild FHEM)
Das Feintuning steht noch aus, aber vom Prinzip läuft es erstmal.

Da ich es Mitte des Monats erst eingerichtet habe, stimmt der Monatswert noch nicht überein. Wenn ich es richtig verstanden habe wird der Tageswert jeweils addiert. Demnach müsste es ab dem 01.07. mit der Fritzbox übereinstimmen...

Wie gesagt, vielleicht habe ich dich aber auch einfach nicht richtig verstanden...

Gruß Christian
Titel: Antw:FritzBox Online Zähler auslesen
Beitrag von: Shadow3561 am 27 Juni 2017, 18:09:21
Wenn es so klappt ist ja alles so wie ich es haben möchte.
Ich lese aber nirgends, dass am Monatswechsel auf null gestellt wird.
Für mein Verständnis zeigt der eine Wert den Tagesverbrauch und der andere den Gesamtverbrauch seit der Einrichtung in FHEM.

MfG
Titel: Antw:FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 28 Juni 2017, 12:57:49
Jetzt wo du es sagst.
Da habe ich "monotonic" wohl etwas anders interpretiert...  ::)

Folgendes at (ungetestet) werde ich heute Abend mal einbauen und testen:

define Fritzbox_Empfangen_Reset at *00:01:00 {if ($mday == 1){fhem("setreading Empfangen Empfangen_ges 0")}}

Update:
Hat soweit funktioniert!
Titel: Antw:FritzBox Online Zähler auslesen
Beitrag von: Shadow3561 am 29 Juni 2017, 19:13:26
Habe es jetzt so von dir übernommen und mir noch einen Dummy gebastelt um den Up,- und Download zusammen zu fassen.
Danke
MfG






Internals:
   CFGFN
   NAME       Fritzbox_ges_Verbrauch
   NR         94088
   STATE      164.94 gb
   TYPE       dummy
   Helper:
     Dblog:
       State:
         Logdb:
           TIME       1498756007.18252
           VALUE      164.944095602
   Readings:
     2017-06-29 19:06:47   state           164.944095602
Attributes:
   room       Server
   stateFormat {sprintf("%.2f gb",ReadingsNum($name,"state","?"))}



{
my $empfangen=ReadingsNum("Empfangen","Empfangen_ges",0);;
my $gesendet=ReadingsNum("Gesendet","Gesendet_ges",0);;
my $gesamt=$empfangen+$gesendet;;
fhem("set Fritzbox_ges_Verbrauch $gesamt");;
}

Titel: Antw:!!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 29 Juni 2017, 22:31:26
Und ich habe es auch nochmal angepasst.  ;D
Erstmal nur als Basis, in der TabletUI wird es schöner...

Gruß Christian
Titel: Antw:!!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Fixel2012 am 29 Juni 2017, 22:35:32
hi,
ich habe eine kurze Frage:
attr global showInternalValues 1


Wird durch dieses Attribut noch andere Readings in anderen Devices sichtbar die stören könnten?

Danke,
Fixel
Titel: Antw:!!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 29 Juni 2017, 22:45:20
Hi Fixel,

bei mir schon, aber es ist ja auch ein globales Attribut.
Mal habe ich .* Einträge in den Internals mal in den Readings. Mich stört es derzeit nicht und ich denke es kommt auf die verwendeten Module an.
Aber vielleicht kann da noch jemand mehr zu sagen...

Gruß Christian
Titel: Antw:!!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Shadow3561 am 30 Juni 2017, 05:35:06
Ich habe das globale Attribut wieder gelöscht und die readings in der FB bleiben erhalten. Sie stehen jetzt in den Readings.

TabletUi habe ich schon angepasst, bin aber nocht nicht ganz zufrieden.
MfG

Titel: Antw:!!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Wernieman am 30 Juni 2017, 08:06:57
Ich finde Deiner erste Übersicht gut .. wie hast Du die Onlinezeit der Geräte rausbekommen?
Titel: Antw:!!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 30 Juni 2017, 11:21:49
Zitat von: Wernieman am 30 Juni 2017, 08:06:57
Ich finde Deiner erste Übersicht gut .. wie hast Du die Onlinezeit der Geräte rausbekommen?

Ich habe in der Fritzbox für ausgewählte Geräte die Kindersicherung aktiviert. Damit tauchen Sie in dem Fritzbox Device als neue Readings auf.
Eine wirkliche Begrenzung der Onlinzeit muss dabei nicht erfolgen. Habe es auf 24/7 gesetzt, weil ich wie gesagt nur die Readings haben wollte.

Gruß Christian
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: en-trust am 08 Februar 2024, 10:42:42
Zitat von: ChristianR am 26 Juni 2017, 13:14:43Moin,

ich denke unter folgendem Link findest du etwas brauchbares:
https://waschto.eu/traffic (https://waschto.eu/traffic)

Habe es ebenfalls umgesetzt.

Gruß Christian

Gibt es noch ne Anleitung ? Der Link ist tot.
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: ChristianR am 08 Februar 2024, 11:20:17
Moin en-trust,

du hast schon gesehen, dass der letzte Eintrag 6 1/2 Jahre her ist?  ;)
Jedenfalls funktioniert die E-Mail Benachrichtigung noch und ich habe mein Passwort nicht vergessen...

Zu deiner Frage, nein, ich habe leider keine weitere Anleitung dazu.
Da die Domain aber grundsätzlich noch erreichbar ist, schlage ich vor du schreibst den Daniel einfach mal an.
Vielleicht kann er dir den Artikel nochmal zur Verfügung stellen.
Ich kann es leider nicht!

Viel Erfolg und Gruß,
Christian
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 08 Februar 2024, 14:04:51
Hallo,

wenn ich mich richtig erinnere wurde unter waschto.eu/traffic nur gezeigt, wie man den Traffic der FB auslesen kann. Dafür gibt es im FRITZBOX Modul mittlerweile eigene Readings.

Pro Netzwerkgerät geht das auch, aber dafür müsste ich im FRITZBOX Modul etwas entsprechendes hinterlegen.

Grüße Jörg
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 08 Februar 2024, 14:28:02
Hallo,

morgen mit dem Update kommt folgende Erweiterung:

Bei "get <name> lanDeviceInfo <number>" wird bei vorhandener Kindersicherung, nur dann wird gemessen, zusätzlich folgendes ausgegeben:

USEABLE: Zuteilung in Sekunden
UNSPENT: nicht genutzt in Sekunden
PERCENT: in Prozent
USED: genutzt in Sekunden
USEDSTR: ss:mm von Kontingent ss:mm

Beispielausgabe:
MAC:28:56:5A:44:E3:58 IPv4:192.168.0.113 UID:landevice2975 NAME:HPLaserJet ACCESS:limited USEABLE:61200 UNSPENT:38040 PERCENT:37.84 USED:23160 USEDSTR:06:26 von 17:00 Stunden DEVTYPE:wlan STATE:CONNECTED ONLINE:ONLINE REALTIME:0
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 08 Februar 2024, 15:50:25
Hallo,

falls Du das nun auswerten möchtest, hier ein Beispiel:

Zunächst einen Dummy:
defmod HPLaserOnline dummy
attr HPLaserOnline readingList Useable Unspent Percent Used UsedStr

Nun ein at:
defmod get_HPLaser_Info at 2024-02-08T23:58:00 {\
  my $hpInfo = fhem("get FritzBox lanDeviceInfo 2975", 1);;\
\
  my ($data) = ($hpInfo =~ /USEABLE:(\d+).UNSPENT/);;\
  fhem("set HPLaserOnline Useable $data", 1);;\
  \
  ($data) = ($hpInfo =~ /UNSPENT:(\d+).PERCENT/);;\
  fhem("set HPLaserOnline Unspent $data", 1);;\
\
  ($data) = ($hpInfo =~ /PERCENT:(\d+\.?\d+).USED/);;\
  fhem("set HPLaserOnline Percent $data", 1);;\
\
  ($data) = ($hpInfo =~ /USED:(\d+).USEDSTR/);;\
  fhem("set HPLaserOnline Used $data", 1);;\
  \
  ($data) = ($hpInfo =~ /USEDSTR:(.*?).DEVTYPE/);;\
  fhem("set HPLaserOnline UsedStr $data", 1);;\
}

Dann kannst Du auf HPLaserOnline noch ein Log setzen und schon bekommst Du den täglichen Online-Konsum in Sekunden.

Grüße Jörg
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Aurel_B am 21 August 2025, 10:22:28
Als Nachtrag da ich auch die tägliche Datenmenge erfassen wollte: habe bei archive.org eine archivierte Version abgerufen (https://web.archive.org/web/20181222100934/https://waschto.eu/traffic/ (https://web.archive.org/web/20181222100934/https://waschto.eu/traffic/)), das hat wunderbar geklappt. Ich hänge zur Sicherheit hier noch eine PDF Kopie an.
Ich habe es so wie in der Anleitung beschrieben umgesetzt und dann für meine Bedürfnisse angepasst. Es funktioniert alles tiptop!
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Aurel_B am 21 August 2025, 10:26:54
Ah vielleicht noch interessant an dieser Stelle: die aktuellen MBit/s Werte (box_rateDown/box_rateUp) liefern bei mir sehr komische Werte und scheinen auch nur eine Momentaufnahme zu sein. Ich ermittle daher die gemittelten Werte über 60s (bei mir das Ausleseintervall für die Fritzbox), hier der relevante Code falls das jemand auch so einbauen möchte:

attr global showInternalValues 1
attr FritzBox stateFormat {sprintf("Down: %.1f MBitS, %.0f MB today<br />\
Up:  %.1f fMBitS, %.0f MB today<br />\
IP: %s<br />\
uptime: %s<br />", ReadingsVal($name, 'DownMBitS', 0), ReadingsVal($name, 'DownMB_Today', 0), ReadingsVal($name, 'UpMBitS', 0), ReadingsVal($name, 'UpMB_Today', 0), ReadingsVal($name, 'box_ipv4_Extern', 0), ReadingsVal($name, 'box_uptimeConnect', 0))}
attr FritzBox userReadings DownMBitS { sprintf("%.1f", (ReadingsVal($name, 'DownMB_Today', 0) - ReadingsVal($name, 'DownMB_Today_OldVal', 0))*8/60)},\
UpMBitS { sprintf("%.1f", (ReadingsVal($name, 'UpMB_Today', 0) - ReadingsVal($name, 'UpMB_Today_OldVal', 0))*8/60)}

attr FritzBox userReadings DownMBitS { sprintf("%.1f", (ReadingsVal($name, 'DownMB_Today', 0) - ReadingsVal($name, 'DownMB_Today_OldVal', 0))*8/60)},\
UpMBitS { sprintf("%.1f", (ReadingsVal($name, 'UpMB_Today', 0) - ReadingsVal($name, 'UpMB_Today_OldVal', 0))*8/60)}


defmod n_FritzBox notify FritzBox:box_dsl_downStream:.* {\
my $fritzbox = 'FritzBox';;\
my $oldVal = ReadingsVal($fritzbox, 'DownMB_Today', 0);;\
my $d = ((ReadingsVal($fritzbox,".box_TodayBytesReceivedLow",0) / (1024 * 1024) ) + ( ReadingsVal($fritzbox,".box_TodayBytesReceivedHigh",0) * 4294967296 / (1024 * 1024) ) );;\
fhem("setreading $fritzbox DownMB_Today $d");;\
fhem("setreading $fritzbox DownMB_Today_OldVal $oldVal");;\
 \
$oldVal = ReadingsVal($fritzbox, 'UpMB_Today', 0);;\
my $e= ((ReadingsVal("FritzBox",".box_TodayBytesSentLow",0) / (1024 * 1024) ) + ( ReadingsVal("FritzBox",".box_TodayBytesSentHigh",0) * 4294967296 / (1024 * 1024) ) );;\
fhem("setreading $fritzbox UpMB_Today $e");;\
fhem("setreading $fritzbox UpMB_Today_OldVal $oldVal");;\
}
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 21 August 2025, 11:43:37
Hallo,

Du kannst Dir gerne mal die javascript API der FritzBox ansehen.

Grüße Jörg
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 21 August 2025, 13:32:09
Hallo,

hier noch eine Aufschlüsselung:

get <name> javaScript [json] monitor/online
gibt die Devices zurück, für die in der FB Weboberfläche unter Internet/Online-Monitor/Einzelne Geräte Devices zur Überwachung ausgewählt worden sind.

[monitor/online/5 ... monitor/online/0] beinhaltet die 10 Minuten Zeitreihen der 5 Sekunden Daten, wobei 5 für die ältesten und 0 für die aktuellsten Werte steht. Es werden also 50 Minuten in fünf 5 Sekunden Zeitreihen zur Verfügung gestellt.

Durch den optionalen Parameter [json] erfolgt die Rückgabe als plain JSON und kann entsprechend in eigenen Verarbeitungen genutzt werden.

Grüße Jörg

PS: Steht allerdings frühestens ab FritzOS 8.00, bei Cable ab 8.04, zur Verfügung. Da ich keine Box mehr habe mit FritzOS < 8.00 kann ich nicht prüfen, ob eine entsprechende Funktion dort vorhanden war.
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Aurel_B am 21 August 2025, 17:02:07
Oh danke dir, das würde ich gerne ausprobieren. Allerdings liefert bei mir

get FritzBox javaScript [json] monitor/online
ein

Result of data = monitor/online
----------------------------------------------------------------------
ERROR: Bad Request

72_FRITZBOX.pm ist in der neusten Version, Fritbox OS ist VERSION 08.20.00

Gibt es da einen Trick? Habe in der Dokumentation leider nix gefunden.
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 21 August 2025, 17:36:13
Hallo,

bitte die [] Klammern weglassen. Die zeigen in der generischen Schreibweise nur an, dass es sich um einen optionalen Parameter handelt.
get FritzBox javaScript json monitor/online

Grüße Jörg
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Aurel_B am 25 August 2025, 09:26:26
Danke dir für deine rasche Antwort, das mit den Klammern macht voll Sinn ....  Leider geht der Befehl immer noch nicht, er liefert

{"Error":"Bad Request","ResetSID":"1"}
Im Log steht nix bei "verbose 5". Ich habe zum Testen unmittelbar vorher ein "set FritzBox update" gemacht, gewartet, bis nach ein paar Sekunden die Readings aktualisiert wurden und dann den javaScript Befehl abgeschickt. Hat leider auch nix bewirkt. Weisst du, wo das Problem sein könnte?
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 25 August 2025, 10:53:04
Zitat von: Aurel_B am 25 August 2025, 09:26:26Weisst du, wo das Problem sein könnte?

Hm,

also entweder an der FritzBox, welche hast Du, oder (sorry) vor dem Bildschirm.

Bitte einmal verbose im FritzBox Device auf 4 setzten und dann den Befehl noch einmal ausführen. Den Log-Ausschnitt dann bitte posten.

Grüße Jörg
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Aurel_B am 26 August 2025, 08:55:03
Kann gut sein, dass da auf meiner Seite her irgendwas nicht so läuft wie es sollte. Log sagt:

2025.08.26 08:52:03.077 3: [FritzBox | 7530 | 164.08.02 | Get.3690] - BASIC:get FritzBox javaScript [2] json monitor/online
2025.08.26 08:52:03.077 4: [FritzBox | 7530 | 164.08.02 | Get.3701] - EXPANDED:get FritzBox javaScript monitor/online
2025.08.26 08:52:03.077 4: [FritzBox | 7530 | 164.08.02 | open_Web_Connection.13993] - EXPANDED:checking HOST -> 192.168.1.254
2025.08.26 08:52:03.079 4: [FritzBox | 7530 | 164.08.02 | open_Web_Connection.14033] - EXPANDED:using old SID from 08:51:47
2025.08.26 08:52:03.080 4: [FritzBox | 7530 | 164.08.02 | call_javaScript.14550] - EXPANDED:Request data via API javaScript.
2025.08.26 08:52:03.080 4: [FritzBox | 7530 | 164.08.02 | call_javaScript.14554] - EXPANDED:URL: http://192.168.1.254/api/v0/monitor/online
2025.08.26 08:52:03.114 4: [FritzBox | 7530 | 164.08.02 | call_javaScript.14567] - EXPANDED:Response: {"errors":[{"message":"bad path: \/online.","code":3002}]}
2025.08.26 08:52:03.114 4: [FritzBox | 7530 | 164.08.02 | call_javaScript.14571] - EXPANDED:
Bad Request
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: JoWiemann am 26 August 2025, 09:02:54
Hallo,

Du hast eine FB 7530 mit FritzOS 8.02. Da funktioniert das nicht. Du könntest die aktuelle Labor aufspielen, dann bist Du dabei.

Leider kann man über das FritzOS nicht sauber abgrenzen, ob die Abfrage funktioniert oder nicht. Ist halt auch FB abhängig.

Grüße Jörg
Titel: Aw: !!Gelöst!! FritzBox Online Zähler auslesen
Beitrag von: Aurel_B am 26 August 2025, 10:42:46
Ok alles klar, das macht Sinn. Ich kann mit meiner Lösung von https://forum.fhem.de/index.php?msg=1346638 (https://forum.fhem.de/index.php?msg=1346638) gut leben und schaue in ein paar Monaten, ob mit einer neuen FritzBox Version alles klappt. Danke!