Hi,
da ich etwas Probleme mit meinem DSL an der Fritzbox habe, "überwache" ich es FHEM.
(Fhem läuft auf Rasberry Pi)
Voraussetzung: "Statusinformationen über UPnP" in der Fritzbox enablen : "Heimnetz->Netzwerk->Tab: Programme"
* Folgende Definitionen anlegen
# fritzbox Link
define FB_Link dummy
define FileLog_FB_Link FileLog ./log/FB-Link-%Y-%m.log FB_Link
attr FB_Link room Test
define FB_Link_SVG SVG FileLog_FB_Link:Interface:CURRENT
attr FB_Link_SVG alias Fritzbox DSL
attr FB_Link_SVG label "Fritzbox DSL Link: Uplink: $data{currval1} DownLink: $data{currval2} kbit/s"
attr FB_Link_SVG room Test
# fritzbox Traffic
define FB_Traffic dummy
define FileLog_FB_Traffic FileLog ./log/FB-Traffic-%Y-%m.log FB_Traffic
define FB_Traffic_SVG SVG FileLog_FB_Traffic:Interface:CURRENT
attr FB_Traffic_SVG alias Fritzbox Traffic
attr FB_Traffic_SVG label "Fritzbox DSL Traffic: Uplink: $data{currval1} DownLink: $data{currval2} kbit/s"
attr FB_Traffic_SVG room Test
Damit werden 2 dummys + filelog + SVG graphic erzeugt. Auf die beiden dummys FB_Link und FB_Traffic werden mit externen programmen (cronjobs siehe unten) die aktuelle DSL Geschwindigkeit und der DSL Traffic geschrieben. "/opt/fhem/fhem.pl 7072 set FB_Traffic Up: 217 Down: 311"
* Die beiden python scripte aus dem Anhang über einen cronjob starten
# m h dom mon dow command
*/5 * * * * python /opt/fhem/fhem_fritz_link.py
*/5 * * * * python /opt/fhem/fhem_fritz_traffic.py
Die beiden python scripte fragen über upnp Informationen von der Fritzbox ab. Die 5 min sind willkürlich gewählt. (je nach bedarf anpassen)
* Die gplot Datei Interface.gplot nach /opt/fhem/www/gplot/ kopieren
Über Anregungen und Verbesserungen freue ich mich und wenn es ok ist, stelle ich es auch gerne ins wiki.
BTW: Nachdem ich das DSL Monitoring in FHEM "installiert" habe ist mein DSL Link stabil :)
(http://forum.fhem.de/index.php?action=dlattach;topic=26070.0;attach=18055)
Mfg. esk
Hallo,
finde diese Idee echt klasse.
Leider funktioniert es bei mit nicht. Wenn ich in der Konsole "python /opt/fhem/fhem_fritz_link.py" zum starten eingebe,
kommt lediglich "Can't connect to local host: 7072" :-[. Vielleicht könntest du mir dabei helfen.
Hi,
Auf der cmd-line sollte
/opt/fhem/fhem.pl 7072 "set FB_Link Up: 637 Down: 5819"
erst mal funtionieren, sonst ist der Telnet Port von fhem nicht offen.
Deine fhem config sollte einen telnet zugang enthalten
define telnetPort telnet 7072 global
Man kann dann via
"telnet localhost 7072" oder "telnet IP_des_FHEM_Servers 7072" mit fhem kommunizieren.
esk
Bei mir funktionierts leider auch nicht.
Ich habe eine Fritzbox 7490 mit neuester Firmware FRITZ!OS 06.20 :
*** Outgoing SOAP ******************************************************
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
<SOAP-ENV:Body>
<ns1:GetResponse xmlns:ns1="urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1">
</ns1:GetResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
************************************************************************
*** Incoming SOAP ******************************************************
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>401</errorCode>
<errorDescription>Invalid Action</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
************************************************************************
Problem to get info from FritzBox via upnp.
Da scheint sich was geändert zu haben!
Gruß
Carlos
Zunächst Danke für die Skripte, die Überwachung der Internetanbindung stand bei mir auch noch auf der Todo-Liste.
Ich habe die Skripte für DBLog angepasst und übergebe Up und Down als getrennte Readings.
Hier die Defines für die cfg
# fritzbox Link
define LTE_Link dummy
attr LTE_Link room Technik
define LTE_Link_SVG SVG mydblog:bandbreite:HISTORY
attr LTE_Link_SVG label "LTE Link Up: $data{currval1} kbit/s, Down: $data{currval2} kbit/s"
attr LTE_Link_SVG plotfunction LTE_Link
attr LTE_Link_SVG room Technik
# fritzbox Traffic
define LTE_Traffic dummy
attr LTE_Traffic room Technik
define LTE_Traffic_SVG SVG mydblog:bandbreite:HISTORY
attr LTE_Traffic_SVG label "LTE Traffic: Up: $data{currval1} kbit/s, Down: $data{currval2} kbit/s"
attr LTE_Traffic_SVG plotfunction LTE_Traffic
attr LTE_Traffic_SVG room Technik
Hallo,
vielen Dank für die schnelle Hilfe. Der Fehler lag tatsächlich in dem nicht definierten Telent Port in FHEM.
Grüße
50er
Hallo,bis zum letzten Update von "Fhem" lief das wirklich prima bei mir...
Doch jetzt kommt bei den ausführen von den Python Sripten folgender Fehler:
Ausgabe des Befehls /opt/fhem/fhem_fritz_link.py ..
Traceback (most recent call last):
File "/opt/fhem/fhem_fritz_link.py", line 27, in <module>
fhem_set("FB_Link", "Up: " + repr(NewLayer1UpstreamMaxkBitRate) + " Down: " + repr(NewLayer1DownstreamMaxkBitRate) )
File "/opt/fhem/fhem_fritz_link.py", line 8, in fhem_set
subprocess.call(['/opt/fhem/fhem.pl', '7072', 'set '+ var +' ' + value])
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
Ausgabe des Befehls /opt/fhem/fhem_fritz_link.py ..
Traceback (most recent call last):
File "/opt/fhem/fhem_fritz_link.py", line 27, in <module>
fhem_set("FB_Link", "Up: " + repr(NewLayer1UpstreamMaxkBitRate) + " Down: " + repr(NewLayer1DownstreamMaxkBitRate) )
File "/opt/fhem/fhem_fritz_link.py", line 8, in fhem_set
subprocess.call(['/opt/fhem/fhem.pl', '7072', 'set '+ var +' ' + value])
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
Hat jemand einen Tip wo da der Fehler ist? Wie schon geschrieben,es lief vorher ohne Propleme bis ich heute ein Update von Fhem gemacht hatte.
Schon mal vielen dank im voraus,
MfG
Falkes
Die Zugriffsrechte von /opt/fhem/fhem.pl haben sich wohl geändert...
bitte:
subprocess.call(['/opt/fhem/fhem.pl', '7072', 'set '+ var +' ' + value])
nach
subprocess.call(['perl','/opt/fhem/fhem.pl', '7072', 'set '+ var +' ' + value])
ändern
Super..vielen dank,jetzt geht es wieder :)
MfG
Falkes
Hallo esk,
klasse, genau das, was ich gesucht habe. :)
Bekomme aber leider bei Testaufruf von:
/opt/fhem/fhem_fritz_link.py
und
/opt/fhem/fhem_fritz_traffic.py
jeweils folgenden Fehler:
Problem to get info from FritzBox via upnp.
Beide .py Dateien habe ich über die Dateiberechtigungen als ausführbar gesetzt (755)
Den Fix aus #7 (http://forum.fhem.de/index.php/topic,26070.msg198244.html#msg198244) habe ich in die fhem_fritz_link.py eingetragen.
SOAPpy habe ich über
sudo apt-get install python-lxml python-fpconst python-soappy
nachinstalliert.
Ich lasse die Scripte von einem Raspi gegen eine Fritz!Box 6360 (FRITZ!OS 06.04) laufen. "Änderungen der Sicherheitseinstellungen über UPnP gestatten" ist eingeschaltet.
Benötige ich auf der FB noch weitere Module/Komponenten?
Bitte lass mich einfach wissen, was ich tun kann, um dem Problem auf die Spur zu kommen.
Velen Dank und Grüße,
Andreas
Weitere Infos mit den in der "fhem_fritz_link.py" auskommentierten Zeilen
server.config.dumpSOAPOut = 1
server.config.dumpSOAPIn = 1
erscheint als Ausgabe:
*** Outgoing SOAP ******************************************************
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>
<SOAP-ENV:Body>
<ns1:GetResponse xmlns:ns1="urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1">
</ns1:GetResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
************************************************************************
*** Incoming SOAP ******************************************************
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>401</errorCode>
<errorDescription>Invalid Action</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
************************************************************************
Problem to get info from FritzBox via upnp.
Also als Response der Fritz!Box ein "401: Invalid Action"?
Weitere Rechercheergebnisse:
Laut einem ähnlichen Problem (klick mich) (http://kb.paessler.com/en/topic/59909-fritz-box-sensor-shows-401) verlangt die Fritz!Box für diese Arte der Abfrage nun die Anmeldeinformationen (Fritz!Box User/Passwort).
Wo könnte ich diese in den Python-Scripts hinterlegen?
Andreas
Hallo zusammen,
nach weiterer Recherche (klick mich) (https://de.manjaro.org/index.php?topic=806.msg9428#msg9428) habe ich nun herausgefunden, dass AVM die UPNP-Implementation geändert hat.
In der "fhem_fritz_link.py" und der "fhem_fritz_traffic.py" muss die SOAP-Proxy-Server Angabe von
proxy='http://fritz.box:49000/upnp/control/WANCommonIFC1'
in
proxy='http://fritz.box:49000/igdupnp/control/WANCommonIFC1'
geändert werden.
Damit läuft's bei mir. :)
Ich bin so frei und hänge die beiden nun bei mir funktionierenden Dateien an.
Andreas
Hi,
auch gerade gefunden
http://blog.sytra.de/2014/09/internet-nutzungsstatistiken-von-der-fritzbox-unter-fritzos-6-20/
(Mein fritzbox hat (leider) kein 6.20 OS)
esk
Bei mir kommt immer ein Fehler.
Traceback (most recent call last):
File "W:\ELV\fhem_fritz_link_dblog.py", line 3, in <module>
from SOAPpy import SOAPProxy
ImportError: No module named 'SOAPpy'
Was muss ich tun?
Gruß
Lothar
SOAPpy fehlt:
sudo apt-get install python-soappy
(auf raspberry)
Seid einigen Tagen geht meine DSL Monitor nicht mehr.
Habe schon das ganze System geupdatet. Telnet ist auch aktiviert an der Fritzbox. Der FB_CALLMONITOR funktioniert auch.
Hat auch jemand das Problem? Hat jemand eine Lösung?
Auszug aus der fhem.cfg
# fritzbox Link
define FileLog_FB_Link FileLog ./log/FB-Link-%Y-%m.log FB_Link
attr FileLog_FB_Link group Fritzbox DSL
attr FileLog_FB_Link room Logs
define FB_Link_SVG SVG FileLog_FB_Link:Interface:CURRENT
attr FB_Link_SVG alias Fritzbox DSL
attr FB_Link_SVG group DSL
attr FB_Link_SVG label "Fritzbox DSL Link: Uplink: $data{currval1} DownLink: $data{currval2} kbit/s"
attr FB_Link_SVG room Telefon_DSL
# fritzbox Traffic
define FB_Traffic dummy
attr FB_Traffic alias Fritzbox DSL Traffic
attr FB_Traffic fm_type state
attr FB_Traffic group DSL
attr FB_Traffic room Telefon_DSL
define FileLog_FB_Traffic FileLog ./log/FB-Traffic-%Y-%m.log FB_Traffic
attr FileLog_FB_Traffic group Fritzbox DSL
attr FileLog_FB_Traffic room Logs
define FB_Traffic_SVG SVG FileLog_FB_Traffic:Interface:CURRENT
attr FB_Traffic_SVG alias Fritzbox Traffic
attr FB_Traffic_SVG group DSL
attr FB_Traffic_SVG label "Fritzbox DSL Traffic: Uplink: $data{currval1} DownLink: $data{currval2} kbit/s"
attr FB_Traffic_SVG room Telefon_DSL
Hallo wie kann ich die zeit fürs aktualisieren der werte ändern von 5 min auf so etwa 2,5 min ? und was ist für unterschied zwischen für Fritzbox DSL Link und Fritzbox DSL Traffic bei mir zeigt Fritzbox DSL Link nichts an sorry bin neu hier kann mir jemand helfen ?
Wenn ich in die Konsole eingebe python /opt/fhem/fhem_fritz_link.py kommt folgender Fehler
Use of uninitialized value in numeric gt (>) at /opt/fhem/fhem.pl line 385.
An was liegt das?
Danke
Zitat von: freak1983 am 07 Januar 2015, 12:18:59
Hallo wie kann ich die zeit fürs aktualisieren der werte ändern von 5 min auf so etwa 2,5 min ? und was ist für unterschied zwischen für Fritzbox DSL Link und Fritzbox DSL Traffic bei mir zeigt Fritzbox DSL Link nichts an sorry bin neu hier kann mir jemand helfen ?
die Pollzeiten kann man im crontab andern
*/2 * * * * python /opt/fhem/fhem_fritz_link.py
*/2 * * * * python /opt/fhem/fhem_fritz_traffic.py
bedeutet das alle 2 minuten die Daten abgerufen werden. 2,5 Minuten ist etwas schwierig, da cron immer minütlich startet.
fhem_fritz_link.py gibt die aktuelle (max) Geschwindigkeit des DSL Anschlusses an. fhem_fritz_traffic.py zeig den momentanen Traffic über den DSL Link an, je nachdem wie viel du gerade runter/hoch lädts.
Zitat von: Koppl am 10 Januar 2015, 13:01:47
Wenn ich in die Konsole eingebe python /opt/fhem/fhem_fritz_link.py kommt folgender Fehler
Use of uninitialized value in numeric gt (>) at /opt/fhem/fhem.pl line 385.
An was liegt das?
Danke
Bitte mal das #print in function fhem_set einkommentieren und output posten.
Zitat von: Koppl am 10 Januar 2015, 13:01:47
Wenn ich in die Konsole eingebe python /opt/fhem/fhem_fritz_link.py kommt folgender Fehler
Use of uninitialized value in numeric gt (>) at /opt/fhem/fhem.pl line 385.
Hallo,
probier mal die beiden angehängten Module. Bei mir funktionieren sie bei einer 7272 und OS 6.20.
Grüße Jörg
Hallo zusammen,
kann ich das Ganze auch zum Laufen bekommen, wenn der Telnet-Port passwort-geschützt ist?
Gruß
Rainer
Hi dora71,
der Zugang erfolgt über upnp. Das unabhängig von telnet. Der upnp Zugang muss aber in der Fritzbox freigeschaltet werden.
Auf Fritzbox: "Heimnetz->Netzwerk->Tab: Programme"
Sönke
super Sache. Konnte damit schon ein regelmäßiges Sync Problem sehn. Nein nicht die Zwangstrennung.
Muss ich mal nachforschen.
Mir ist eben aufgefallen das der IPTV Traffic nicht mitgelogt wird.
Obwohl gerade ein IPTV Strom reinkommt (ca. 4Mbit/s) zeigt der Graph 0 an.
Hallo, Fhem zeigt diesen Fehler an........
Error messages while initializing FHEM:
configfile: FB_Traffic: unknown attribute fm_type. Type 'attr FB_Traffic ?' for a detailed list.
und Putty diesen Fehler
pi@raspberrypi ~ $ python /opt/fhem/fhem_fritz_link.py
Problem to get info from FritzBox via upnp.
habe aber an upnp in meiner Fritbox einen Hacken......
Zitat von: hotwebnet am 02 Februar 2015, 07:57:40
Hallo, Fhem zeigt diesen Fehler an........
Error messages while initializing FHEM:
configfile: FB_Traffic: unknown attribute fm_type. Type 'attr FB_Traffic ?' for a detailed list.
und Putty diesen Fehler
pi@raspberrypi ~ $ python /opt/fhem/fhem_fritz_link.py
Problem to get info from FritzBox via upnp.
habe aber an upnp in meiner Fritbox einen Hacken......
Schau mal in die beiden Script rein. Evtl. muss du die Parameter wie hier:
http://forum.fhem.de/index.php/topic,26070.msg203878.html#msg203878 (http://forum.fhem.de/index.php/topic,26070.msg203878.html#msg203878)
beschrieben ändern.
Bye
mikeljo
Hatte ein paar Posts vorher die falschen Dateien gegriffen. Hier nun die, die bei mir laufen.
Grüße Jörg
Danke, aber die gehen bei mir nicht........aber diese gehen.........
Spannend, das sie sich nicht unterscheiden :)
Zitat von: esk am 01 Februar 2015, 09:57:18
Hi dora71,
der Zugang erfolgt über upnp. Das unabhängig von telnet. Der upnp Zugang muss aber in der Fritzbox freigeschaltet werden.
Auf Fritzbox: "Heimnetz->Netzwerk->Tab: Programme"
Sönke
Hallo Sönke, hallo Forum,
erstmal Sorry für die späte Antwort, aber nun zum Problem:
Der upnp-Zugang ist auch nicht das Problem. Mein Problem liegt darin, dass die Python-Scripte ja per telnet die Infos nach FHEM schieben, was aber nur funktioniert, solange der telnet-Zugang nicht mit Paßwort geschützt ist. Und da war die Frage, ob man das irgendwie da mit einbauen kann bzw, ob das schon irgendwie integriert wurde. Habe in der commandref nichts dazu gefunden.
Hier die entsprechende Code-Zeile, um die es in den beiden Scripten geht:
subprocess.call(['perl', '/opt/fhem/fhem.pl', '7072', 'set '+ var +' ' + value])
Gruß
Rainer
PS: Mit abgeschaltetem Paßwort (!) laufen die Scripte und die Darstellung in FHEM perfekt. Möchte aber gerne wieder ein Paßwort auf meien Telnet-Zugang haben.
Hallo Forum,
konnte mir die Antwort selber geben bzw. habe es doch in der Command reference gefunden:
ZitatNote: if this attribute is set, you have to specify a password as the first argument when using fhem.pl in client mode:
perl fhem.pl localhost:7072 secret "set lamp on"
Habe mich mal drangesetzt, die beiden Scripte zu erweitern. Herausgekommen sind die beiden Dateien im Anhang, wobei natürlich das Paßwort gegen das eigene Telnet-Paßwort zu ersetzen ist.
Viel Freude beim Testen!
Gruß
Rainer