Fritzbox-TR064 binding - wrong dsl stats

Hi,
I’m using Openhab 2.2 and have some problems with the dsl-stats of the TR-064 binding.
When I was still on OH2.1 the value

fritzboxtr064="dslDownstreamCurrRate"

was not defined - it seems to be with the version of the binding included in OH2.2 but it does not return the current DSL rate but the synced Maximum rate.
I use TR064 for presence detection and would like to use it as well to show my current down- and upstream.

Any ideas on how to solve this?

Best regards,
Florian

I have the same issue… and no idea…

UPDATE: I updated my openHAB and all packets on my pi - now it seems to be work finally well.:

Are the two values DSL Upstream Current and DSL Downstream Current reflect your actual Downstream/Upstream or do they show the currently synced DSL rates?
In my case all values were static so I switched over to a python-script that I run through the Exec-Binding every 10 seconds.

Flo, you are right! These are only the static DSL rates and NOT the real live one depending on actual down- or upload stream. I also used to use severel month ago the python fritzconnection to get live values every 2 seconds. How exactly do you get your live down- and upstream rates - may you share some code snippets? regards Dirk

I put together pieces of Information I found troughout the net and came up with this Python-scipt:

#!/usr/bin/python3
from pysimplesoap.client import SoapClient

location = 'http://fritz.box:49000/igdupnp/control/WANCommonIFC1'
namespace = 'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1'
action = 'urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1#'

debug = False  # display http/soap requests and responses

client = SoapClient(location, action, namespace, trace=debug)

# response = client.GetCommonLinkProperties()
# upspeed = int(response.GetCommonLinkPropertiesResponse.NewLayer1UpstreamMaxBitRate)
# downspeed = int(response.GetCommonLinkPropertiesResponse.NewLayer1DownstreamMaxBitRate)

response2 = client.GetAddonInfos()
# newbytesendrate = int(response2.GetAddonInfosResponse.NewByteSendRate) / 1024
newbytereceiverate = int(response2.GetAddonInfosResponse.NewByteReceiveRate) / 1024


#print('{"Down":', round(newbytereceiverate, 2), "}")
print(round(newbytereceiverate, 2))

It uses pysimplesoap wich can be installed trough pip3 which is part of python3 (which is the only component preinstalled on openhabian). So installed these componentes with these commands:

sudo apt-get install python3-setuptools
sudo easy_install3 pip
sudo pip3 install pysimplesoap

Then, finally thing & item definition:

Thing exec:command:fbstatdown [command="/etc/openhab2/scripts/dlnew.py", interval=30, timeout=5]
String FBDown "Down: [%s]" (fbstat) {channel="exec:command:fbstatdown:output" }

I basically did the same for upstream as I don’t know by now how to split a scripts output to two different items. There certainly is an easy way to do this - thus I just don’t now it. So if anybody can shed some light on this I’d be able to save one script execution every 30 seconds… :slight_smile:

Best regards,
Flo