{"id":239,"date":"2020-09-18T12:40:18","date_gmt":"2020-09-18T10:40:18","guid":{"rendered":"https:\/\/blog.jungle-bbs.de\/?p=239"},"modified":"2020-09-18T12:41:48","modified_gmt":"2020-09-18T10:41:48","slug":"fritzbox-mit-fhem-auslesen","status":"publish","type":"post","link":"https:\/\/blog.jungle-bbs.de\/?p=239","title":{"rendered":"Fritzbox mit fhem auslesen"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Online-Z\u00e4hler (Traffic) der FritzBox auslesen<\/h1>\n\n\n\n<p>Das Modul&nbsp;<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/http:\/\/waschto.eu\/index.php\/fritzbox\/\" target=\"_blank\" rel=\"noreferrer noopener\">FritzBox<\/a>&nbsp;stellt neben den bekannten Readings (Anrufe, \u2026.) auch Readings zur Verf\u00fcgung die in der Standartkonfiguration von FHEM nicht direkt angezeigt werden. Zu diesen versteckten Readings z\u00e4hlt auch der Online-Z\u00e4hler. In diesem Beitrag erkl\u00e4re ich euch wie ihr diese Readings sichtbar macht und in FHEM den Tagesverbrauch und den Gesamtverbrauch plottet.SALE<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/www.amazon.de\/AVM-Router-Modem-MU-MIMO-DECT-Basis\/dp\/B01KKJFJ92?psc=1&amp;SubscriptionId=AKIAINT4O2BZSU3ZGDLQ&amp;tag=waschtoeu-21&amp;linkCode=xm2&amp;camp=2025&amp;creative=165953&amp;creativeASIN=B01KKJFJ92\" rel=\"noreferrer noopener\" target=\"_blank\">AVM FRITZ!Box 7580 WLAN AC + N Router&#8230;<\/a>AVM &#8211; Zubeh\u00f6r<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/www.amazon.de\/product-reviews\/B01KKJFJ92?SubscriptionId=AKIAINT4O2BZSU3ZGDLQ&amp;tag=waschtoeu-21&amp;linkCode=xm2&amp;camp=2025&amp;creative=12738&amp;creativeASIN=B01KKJFJ92\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a><s>289,00 EUR<\/s>&nbsp;&#8211; 46,92 EUR&nbsp;<strong>ab 242,08 EUR<\/strong>&nbsp;SALE<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/www.amazon.de\/AVM-Router-DECT-Basis-geeignet-Deutschland\/dp\/B00EO777DI?psc=1&amp;SubscriptionId=AKIAINT4O2BZSU3ZGDLQ&amp;tag=waschtoeu-21&amp;linkCode=xm2&amp;camp=2025&amp;creative=165953&amp;creativeASIN=B00EO777DI\" rel=\"noreferrer noopener\" target=\"_blank\">AVM FRITZ!Box 7490 WLAN AC + N Router (VDSL\/ADSL, 1.300&#8230;<\/a>AVM &#8211; Zubeh\u00f6r<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/www.amazon.de\/product-reviews\/B00EO777DI?SubscriptionId=AKIAINT4O2BZSU3ZGDLQ&amp;tag=waschtoeu-21&amp;linkCode=xm2&amp;camp=2025&amp;creative=12738&amp;creativeASIN=B00EO777DI\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a><s>219,00 EUR<\/s>&nbsp;&#8211; 59,01 EUR&nbsp;<strong>ab 159,99 EUR<\/strong>&nbsp;SALE<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/www.amazon.de\/AVM-High-End-MU-MIMO-VDSL-Supervectoring-DECT-Basis\/dp\/B071W8R4PS?psc=1&amp;SubscriptionId=AKIAINT4O2BZSU3ZGDLQ&amp;tag=waschtoeu-21&amp;linkCode=xm2&amp;camp=2025&amp;creative=165953&amp;creativeASIN=B071W8R4PS\" rel=\"noreferrer noopener\" target=\"_blank\">AVM FRITZ!Box 7590 High-End WLAN AC + N Router (VDSL-\/ADSL,&#8230;<\/a>AVM &#8211; Zubeh\u00f6r<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/www.amazon.de\/product-reviews\/B071W8R4PS?SubscriptionId=AKIAINT4O2BZSU3ZGDLQ&amp;tag=waschtoeu-21&amp;linkCode=xm2&amp;camp=2025&amp;creative=12738&amp;creativeASIN=B071W8R4PS\" rel=\"noreferrer noopener\" target=\"_blank\"><\/a><s>249,00 EUR<\/s>&nbsp;&#8211; 14,11 EUR&nbsp;<strong>ab 234,89 EUR<\/strong><\/p>\n\n\n\n<p>Letzte Aktualisierung am 8.03.2019 \/ Affiliate Links \/ Bilder von der Amazon Product Advertising API<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Einrichtung in FHEM<\/h2>\n\n\n\n<p>Um in FHEM auch die versteckten Readings anzeigen zu lassen, bedarf es ein globales Attribut<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>attr global showInternalValues 1<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Nun werden auch die versteckten Reading angezeigt.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/i2.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/Traffic_reading.png\"><img decoding=\"async\" src=\"https:\/\/web.archive.org\/web\/20190309062949im_\/https:\/\/i2.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/Traffic_reading.png?resize=556%2C186\" alt=\"Traffic_reading\" class=\"wp-image-253\"\/><\/a><\/figure>\n\n\n\n<p>Wie man erkennt, gibt es vier Readings die etwas mit dem Traffic zu tun haben. Es gibt je zwei f\u00fcr die Empfangenen und f\u00fcr die Gesendeten Daten. Diese sind noch jeweils in HIGH und LOW unterteilt. Den Gesamtwert erh\u00e4lt man durch folgende Gleichung:<\/p>\n\n\n\n<p><strong>LOW + HIGH * 2^32<\/strong><\/p>\n\n\n\n<p>Die Readings geben jeweils die Werte f\u00fcr den aktuellen Tag wieder. Den Gesamtverbrauch muss man innerhalb von FHEM selber ermitteln. Mehr dazu weiter unten.<ins><\/ins><\/p>\n\n\n\n<p>Um mit diesen Werten arbeiten zu k\u00f6nnen, ist es am einfachsten, diese mit Hilfe von einem at-Befehl an einen dummy zu schicken. Dazu definieren wir uns zun\u00e4chst einen&nbsp;<a href=\"https:\/\/web.archive.org\/web\/20190309062949\/http:\/\/www.fhemwiki.de\/wiki\/At\" target=\"_blank\" rel=\"noreferrer noopener\">at-Erweiterungsmodul<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>define atTraffic at +*00:01:00 xx<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Als auszuf\u00fchrender Befehl geben wir erstmal den Platzhalter \u201exx\u201c an. Sp\u00e4ter im Editor f\u00fcgen wir dann den endg\u00fcltigen Befehl ein. Als Zeitangabe habe ich 1 Minute gew\u00e4hlt. Man sollte jedoch darauf achten, dass es hier nichts bringt, den Befehl alle 5 Sekunden auszuf\u00fchren, obwohl das Modul FritzBox nur jede Minute aktualisiert wird.<\/p>\n\n\n\n<p>Anschlie\u00dfend noch je einen Dummy f\u00fcr Empfangen und Gesendet:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>define Empfangen dummy<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>define Gesendet dummy<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Nun wird es Zeit den eigentlichen Befehl von atTraffic zu definieren. Dazu \u00f6ffnen wir den DEF-Editor von atTraffic und f\u00fcgen folgenden Befehl ein:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1234567<\/td><td>+*00:01:00 {my $d= ((ReadingsVal(&#8222;FritzBox&#8220;,&#8220;.box_TodayBytesReceivedLow&#8220;,0) \/ (1000*1000) ) \/ 1000 + ( ReadingsVal(&#8222;FritzBox&#8220;,&#8220;.box_TodayBytesReceivedHigh&#8220;,0) * 4294967296 \/ (1000*1000) ) \/ 1000);fhem(&#8222;setreading Empfangen Empfangen $d&#8220;); my $e= ((ReadingsVal(&#8222;FritzBox&#8220;,&#8220;.box_TodayBytesSentLow&#8220;,0) \/ (1000*1000) ) \/ 1000 + ( ReadingsVal(&#8222;FritzBox&#8220;,&#8220;.box_TodayBytesSentHigh&#8220;,0) * 4294967296 \/ (1000*1000) ) \/ 1000);fhem(&#8222;setreading Gesendet Gesendet $e&#8220;);}<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/i1.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/FHEM_FritzBox_Traffic_at.png\"><img decoding=\"async\" src=\"https:\/\/web.archive.org\/web\/20190309062949im_\/https:\/\/i0.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/FHEM_FritzBox_Traffic_at-1024x283.png?resize=640%2C177\" alt=\"FHEM Traffic Fritzbox\" class=\"wp-image-1055\"\/><\/a><\/figure>\n\n\n\n<p>Da die Readings die Werte in Bytes ausgeben, nehme ich noch einige mathematische Spielereien vor um die Werte in GigaByte zu erhalten. Einmal das Umwandeln in MB (geteilt durch 1000*1000) und anschlie\u00dfend noch das Umrechnen in GigaByte (geteilt durch 1000).<\/p>\n\n\n\n<p>Die eingetragene Definition erstellt&nbsp;die Variablen \u201ed\u201c und \u201ee\u201c und setzt das entsprechende dummy.<\/p>\n\n\n\n<p>Die Dummys Gesendet und Empfangen erhalten nun jede Minute einen aktuellen Wert. Den gesamten Traffic erhalten wir nun durch ein userReading, welches wir wie folgt definieren<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>attr Gesendet userReadings Gesendet_ges monotonic { ReadingsVal(&#8222;Gesendet&#8220;,&#8220;Gesendet&#8220;,0)}<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Das gleiche entsprechend f\u00fcr den Empfangen-Dummy. Der Zusatz monotonic bewirkt, dass das Reading \u201eGesendet\u201c (der t\u00e4gliche Traffic) dem userReading Gesendet_ges dazu addiert wird. Sollte sich also das Reading \u201eGesendet\u201c&nbsp;beim Tageswechsel wieder auf 0 setzen, f\u00e4ngt \u201eGesendet_ges\u201c nicht auch bei 0 an, sondern z\u00e4hlt weiter hoch.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/i2.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/FHEM_FritzBox_Traffic_Daten.png\"><img decoding=\"async\" src=\"https:\/\/web.archive.org\/web\/20190309062949im_\/https:\/\/i2.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/FHEM_FritzBox_Traffic_Daten.png?resize=640%2C68\" alt=\"FHEM_FritzBox_Traffic_Daten\" class=\"wp-image-1058\"\/><\/a><\/figure>\n\n\n\n<p>Die Readings lassen sich nun in ein LogFile schreiben:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>define FileLog_Traffic_Gesendet FileLog .\/log\/Traffic_Gesendet-%Y-%m.log Gesendet<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Wichtig ist es, darauf zu achten, Gesendet und Empfangen jeweils in ein getrenntes LogFile zu schreiben, da wir zwei getrennte Plots erstellen wollen.<\/p>\n\n\n\n<p>\u00dcber den Plot-Editor erstellen wir uns nun den Plot:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/i2.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/createSVG.png\"><img decoding=\"async\" src=\"https:\/\/web.archive.org\/web\/20190309062949im_\/https:\/\/i2.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/createSVG.png?resize=353%2C118\" alt=\"create SVG Traffic\" class=\"wp-image-258\"\/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/i1.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/SVGTraffic-1.png\"><img decoding=\"async\" src=\"https:\/\/web.archive.org\/web\/20190309062949im_\/https:\/\/i1.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/SVGTraffic-1-1024x390.png?resize=640%2C244\" alt=\"SVG Traffic\" class=\"wp-image-1422\"\/><\/a><\/figure>\n\n\n\n<p>Wir erhalten nun eine grafische Darstellung des Online-Z\u00e4hlers der FritzBox. Der Vorteil gegen\u00fcber dem direkten Zugriff \u00fcber die FritzBox ist der, dass man den Verbrauch auch \u00fcber einen l\u00e4ngeren Zeitraum verfolgen kann. Der Online-Z\u00e4hler der FritzBox zeigt nur den Verbrauch vom aktuellen und letzten Monat an.<\/p>\n\n\n\n<p>Zum Schluss kann man noch ein paar optischen Anpassungen vornehmen. Zu einem das stateFormat:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>attr Empfangen stateFormat {sprintf(&#8222;%.2f GB &#8211; %.2f GB&#8220;,ReadingsVal(&#8222;Empfangen&#8220;,&#8220;Empfangen&#8220;,0),ReadingsVal(&#8222;Empfangen&#8220;,&#8220;Empfangen_ges&#8220;,0))}<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>F\u00fcr Gesendet entsprechend anpassen.<\/p>\n\n\n\n<p>Und das Hinzuf\u00fcgen eines Symbols:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>attr Empfangen icon control_arrow_down@green<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>bzw.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>1<\/td><td>attr Gesendet icon control_arrow_up@red<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/web.archive.org\/web\/20190309062949\/https:\/\/i0.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/Traffic_ges.png\"><img decoding=\"async\" src=\"https:\/\/web.archive.org\/web\/20190309062949im_\/https:\/\/i0.wp.com\/waschto.eu\/wp-content\/uploads\/2016\/02\/Traffic_ges.png?resize=539%2C579\" alt=\"Traffic FritzBox Plot\" class=\"wp-image-256\"\/><\/a><\/figure>\n\n\n\n<p>Jetzt einfach nur noch warten und sich wundern wie viel man so in 10 Jahren aus dem Internet herunterl\u00e4dt &#x1f609;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Beitrags-Navigation<\/h2>\n","protected":false},"excerpt":{"rendered":"<p>Online-Z\u00e4hler (Traffic) der FritzBox auslesen<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[10],"tags":[11,12],"class_list":["post-239","post","type-post","status-publish","format-standard","hentry","category-fhem","tag-fhem","tag-fritzbox"],"_links":{"self":[{"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=239"}],"version-history":[{"count":2,"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions"}],"predecessor-version":[{"id":241,"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions\/241"}],"wp:attachment":[{"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jungle-bbs.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}