Datenrate als Reading bei 7590 & 6890

Begonnen von mi.ke, 03 November 2020, 00:35:42

Vorheriges Thema - Nächstes Thema

mi.ke

Hallo zusammen,
ich hab mehrere Fritzboxen (unter anderem 7590 und 6890) am laufen, bei denen ich gerne die Datenrate als Reading auslesen würde.

Gibt es mit dem 72_FRITZBOX.pm Modul oder den FritzBoxUtils.pm die Möglichkeit die Datenrade auszulesen?
Ich hab leider im im Forum und im Wiki nichts dazu gefunden.

Was ich suche ist die:
Datenrate:Empfangsrichtung in kbit/s
Datenrate:Senderichtung in kbit/s
Jeweils für DSL und Mobilfunk

Für jede Idee dankbar.

cheers and power up
MI/KE
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

amenomade

Zitat von: CommandRefbox_rateDown - Download-Geschwindigkeit des letzten Intervals in kByte/s
box_rateUp - Upload-Geschwindigkeit des letzten Intervals in kByte/s
https://fhem.de/commandref_DE.html#FRITZBOX
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

mi.ke

Zitat von: amenomade am 03 November 2020, 01:18:20
https://fhem.de/commandref_DE.html#FRITZBOX

Dank Dir, aber das meinte ich nicht.
Bei jeder Verbindung mit der Gegenstelle wird eine max. Verbindung ausgehandelt, die bei LTE Verbindungen recht unterschiedlich in der Höhe ausfällt.
Ich hänge mal Scressnshots an, dann wird es vermutlich deutlicher was ich meine...
Im wesentlichen bin ich an der LTE Datenrate interessiert.
cheers
MI/KE
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Christoph Morrison

Zeig mal ein List deines FritzBox-Devices.

Frank_Huber

für DSL sollte es mit diesem UserReading funktionieren. Geht bestimmt auch ähnlich für Mobilfunk:
box_DownstreamVDSLRate:box_ipExtern. { my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;$resp =~/'NewDownstreamCurrRate' => '(.*)'/;;return $1;;},
box_UpstreamVDSLRate:box_ipExtern. {   my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;$resp =~/'NewUpstreamCurrRate' => '(.*)'/;;return $1;;},

mi.ke

Zitat von: Frank_Huber am 03 November 2020, 11:11:46
für DSL sollte es mit diesem UserReading funktionieren. Geht bestimmt auch ähnlich für Mobilfunk:

DSL kann ich abfragen, funktioniert auch sehr gut bei der 7590
get <DEVIVE> tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo

DSL ist aber bei der 6890LTE nicht angeschlossen, also kommt wie erwartet:
Service='WANDSLInterfaceConfig:1'   Control='wandslifconfig1'   Action='GetInfo'
----------------------------------------------------------------------
$VAR1 = {
          'GetInfoResponse' => {
                               'NewUpstreamMaxRate' => '0',
                               'NewDownstreamAttenuation' => '0',
                               'NewUpstreamPower' => '500',
                               'NewDownstreamMaxRate' => '0',
                               'NewATURVendor' => '41564d00',
                               'NewUpstreamNoiseMargin' => '0',
                               'NewUpstreamCurrRate' => '0',
                               'NewStatus' => 'Up',
                               'NewDownstreamPower' => '500',
                               'NewATURCountry' => '0400',
                               'NewUpstreamAttenuation' => '0',
                               'NewDownstreamNoiseMargin' => '0',
                               'NewDownstreamCurrRate' => '0',
                               'NewDataPath' => 'Fast',
                               'NewEnable' => '0'
                             }
        };


Überhaupt scheint bei dem TR-064 Protokoll internes LTE gar nicht vorgesehen zu sein.
Ist eigentlich auch nicht überraschend, da es ja überhaupt nur zwei Fritzboxen dieser Art gibt.

Ich hab mal interessehalber in die 7590 einen USB-LTE-Stick gesteckt. Die ist aber tief im Keller und dort gibt es kein GSM-Signal, somit konnte ich hier nichts ausprobieren.

Trotzdem Danke für Eure Hilfe

cheers
MI/KE
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Frank_Huber

Ich hab einen Backup Stick an meiner 7590, kann ja mal schauen morgen am PC.
Am Handy ist mir das zu fummelig. 😉

mi.ke

Zitat von: Frank_Huber am 03 November 2020, 22:17:58
Ich hab einen Backup Stick an meiner 7590, kann ja mal schauen morgen am PC.
Am Handy ist mir das zu fummelig. 😉

...und, konntest Du was rausfinden?

cheers'n power up
MI/KE
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Frank_Huber

#8
Zitat von: mi.ke am 27 November 2020, 02:10:08
...und, konntest Du was rausfinden?

Schande über mich. Hatte ich vergessen.

DSL getrennt, über LTE verbunden. (in der Config auch auf "Dauer-LTE" eingestellt)
Die Ausgebe von "get TR064 SrviceList" ist im Anhang. (Box-IP geändert)

finde da aber nicht wirklich etwas hilfreiches.



mi.ke

Vielen Dank für den Test.

Habe leider auch nichts Entscheidendes gefunden.
Aber nochmals, vielen Dank für Deine Unterstützung.
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Manos

Es ist etwas OT, ich habe ein "Anwender-Problem"  :(

Zitat von: Frank_Huber am 03 November 2020, 11:11:46
für DSL sollte es mit diesem UserReading funktionieren. Geht bestimmt auch ähnlich für Mobilfunk:
box_DownstreamVDSLRate:box_ipExtern. { my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;
$resp =~/'NewDownstreamCurrRate' => '(.*)'/;;
return $1;;},
box_UpstreamVDSLRate:box_ipExtern. {   my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;
$resp =~/'NewUpstreamCurrRate' => '(.*)'/;;
return $1;;},


Die UserReading Formel funktioniert wunderbar!
Ich wollte aber das Ergebnis in MBits/s (anstatt Kbits/sec).
Brauche ich nur die Zahl mit 1024 zu dividieren dachte ich, kinderleicht!

Aber das addieren der Formel $resp =$resp/1024 bringt nicht das erhoffte Ergebnis  :-[

box_DownstreamVDSLRate:box_ipExtern. { my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;
$resp =~/'NewDownstreamCurrRate' => '(.*)'/;;
$resp =$resp/1024;;
return $1;;},

funktioniert nicht.

Ich war gezwungen, mein Problem auf StateFormat Ebene zu loesen:

{sprintf ("Max. Down.:%.0f Mbit/s Up.:%.0f Mbit/s",
(ReadingsVal($name,"box_DownstreamVDSLRate","error")/1024),
(ReadingsVal($name,"box_UpstreamVDSLRate","error")/1024)  )}


schoene Gruesse
Manos
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Otto123

#11
Hi,

box_DownstreamVDSLRate:box_ipExtern. { my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;
$resp =~/'NewDownstreamCurrRate' => '(.*)'/;;
$resp =$resp/1024;;
return $1;;},
Weil dein Ergebnis nicht mehr in $1 steht (der Wert den Du willst stand im Original nicht in $resp) sondern nach Deiner Änderung in $resp

box_DownstreamVDSLRate:box_ipExtern. { my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;
$resp =~/'NewDownstreamCurrRate' => '(.*)'/;;
$resp =$1/1024;;
return $resp}


Oder gleich so
{ my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);; $resp =~/'NewDownstreamCurrRate' => '(.*)'/;; return $1/1024}
Edit: Fehler korrigiert $return -> return
Wie schon an andere Stelle gesagt: probier es einfach immer in der FHEM Kommandozeile aus, da siehst Du was passiert :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Manos

#12
Zitat von: Otto123 am 01 Dezember 2020, 15:48:44

Weil dein Ergebnis nicht mehr in $1 steht (der Wert den Du willst stand im Original nicht in $resp) sondern nach Deiner Änderung in $resp
Oder gleich so
{ my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);; $resp =~/'NewDownstreamCurrRate' => '(.*)'/;; return $1/1024}

[facepalm]  $resp anstatt $1 ! Oh man!!!!!

Vielen Dank Otto  :D

Zitat von: Otto123 am 01 Dezember 2020, 15:48:44
Wie schon an andere Stelle gesagt: probier es einfach immer in der FHEM Kommandozeile aus, da siehst Du was passiert :)
Genau das fehlt mir bei FHEM, ich kann nie direkt probieren.
Dann habe ich deine anderen Vorschlaege {my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ tr/:/_/;;return $MAC}, {my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ s/:/_/g;;return $MAC},{my $MAC='AA:BB:CC:DD:EE:FF';;$MAC =~ s/:/_/;;return $MAC} in der FHEM Kommandozeile probiert und siehe da, ich bekam sogar Antworten!
Ich dachte ich traeume....
Dann habe ich dieses probiert
{ my $resp=fhem("get FritzBox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);; $resp =~/'NewDownstreamCurrRate' => '(.*)'/;; return $1/1024}
(Edit: korrigiert $return -> return)
...und prompt kamm die Fehlermeldung  ;D
Global symbol "$return" requires explicit package name (did you forget to declare "my $return"?) at (eval 339477) line 1.
syntax error at (eval 339477) line 1, near "$return $1"

Ich weiss nie mit FHEM, wann ich etwas in der Kommandozeile probieren kann, und wann nicht... :'(
HP Microserver GEN8 XEON, Ubuntu 22.04, FHEM, ConBee II, CCU2, CUL433, Tradfri, Luxtronik2, Volkszaehler (und wenig Ahnung...)

Otto123

#13
Naja mein Fehler, hab ich extra gemacht um Dich zu fordern :)
$return ist falsch muss return heissen, Ich habe es oben korrigiert, also nicht wundern!
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz