Three of those Items use UoM. The error appears to be having some sort of problem with the %unit% conversion for the Number:DataTransferRate Items, not the Speedtest_Progress Items so I don’t think the link you went to is related to your problem.
It looks like it is not properly interpreting the %unit% which essentially means “the default units”. Instead it is trying to read it as %u as the unit which doesn’t exist.
@sihui, since it’s working for you, can you print what units these two Items are showing on your sitemap or events.log? The DataTransferRate units are not in the docs yet (I opened an Issue for that) and it will be easier if someone to post what they are seeing rather than guessing.
For those of you how got this to work, how did you find a speedtest URL and, more importantly, the name of the file?
The Network binding now implements the speedtest natively so you don’t have to use the Exec binding and the speedtest-cli any more. Assuming you can figure out how to configure it. But the Network binding requires the Items use UoM and that seems to be the root of the problem.
It works but it doesn’t actually help us figure out if there is a regression bug that has been recently introduced in how the %unit% is handled. You’ve avoided the error by eliminating the UoM but there is still something wrong with the UoM and the %unit% play holder.
Overall this binding works well for me, assuming I stick with the example server and filename given in the binding documentation. BUT, that server’s in France, so not that meaningful for me. I’d like to use a closer server as a better benchmark of my up/down speeds.
Hej @Dave_Baldwin - I ended up with the same question, when I shifted from speedtest-cli to the binding based network speedtest. The latter shows lower up/download capacity, than speedtest, which seems to automatically choose the closest server (in my case Stockholm)
Could you solve your problem and would you share your solution here?
My entry to this was though the webpage of an internet provider http://speedtest4.tele2.net/ , which expolians nicely the underlying concept of the speedtest servers.
The network.things file has to point at an anycast server address, which automatically connects to the closest servers, and one can choose from a range of files in different sizes in order to test the connection.
This is my working definition:
Nice binding, very usefull.
For the speedtest, i try the basic thing and it works, but result is very strange as it says my bandwidth is between 2.3 - 2.4Mbit/s (DL).
Problem is that i have a 1Gbits connexion (tested and effective at 950Mbits).
When i do a WGET on the same file with the server, i have more than 900Mbits for bandwidth.
Any clue why the binding speedtest is so slow ?
No one else has the same problem ?
Forgot to mention my system : raspberry PI4 (1gb interface) with raspbian.
After a reboot for another reason, my results are now : 40mb/s (DL) 25 mb/s (UL), still far from real bandwidth.
Thank you @mdnx, the suggested server works fine for me and the numbers seem realistic compared to other (web based) speedtests!
However, I got a problem with the returned text from the binding:
2021-02-10 11:14:47.733 [WARN ] [e.internal.SseItemStatesEventBuilder] - Exception while formatting value '91.4568805736 Mbit/s' of item SpeedTest_DownloadRate with format '%d %unit%': d != java.math.BigDecimal
But I don’t really get the problem? The number seems to fit into BigDecimal and there is a space separating it from the unit. What’s failing here?