[OH3] New Binding - Speedtest

@ bhomeyer
Thanks for the binding - it is working quite well.
During configuration of the bridge I cannot set the serverID - following warning message:

2021-02-02 12:53:21.309 [WARN ] [re.config.core.internal.ConfigMapper] - Could not set field value for field ‘serverID’: Can not set java.lang.String field org.openhab.binding.speedtest.internal.speedtestConfiguration.serverID to java.math.BigDecimal

If it is blank there is no warning.
Thanks for any advice.
Georg

Today I updated the binding to make use of that new trigger channel you talked about. Maybe I’m just blind, but I can’t see any new channels that would allow me to trigger the speedtest.

These are the channels that are available with the latest version (0.4)

String    SpeedtestBinding_Server              "Server"                  ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:server" }               
// Number SpeedtestBinding_Jitter              "Jitter"                  ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:ping_jitter" }          
Number    SpeedtestBinding_Latency             "Latency"                 ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:ping_latency" }         
Number    SpeedtestBinding_DownloadBandwidth   "Download Bandwidth"      ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:download_bandwidth" }   
// Number SpeedtestBinding_DownloadBytes       "Download Bytes"          ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:download_bytes" }       
// Number SpeedtestBinding_DownloadElapsedTime "Download Elapsed Time"   ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:download_elapsed" }     
Number    SpeedtestBinding_UploadBandwidth     "Upload Bandwidth"        ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:upload_bandwidth" }     
// Number SpeedtestBinding_UploadBytes         "Upload Bytes"            ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:upload_bytes" }         
// Number SpeedtestBinding_UploadElapsedTime   "Upload Elapsed Time"     ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:upload_elapsed" }       
String    SpeedtestBinding_ISP                 "ISP"                     ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:isp" }                  
// String SpeedtestBinding_InterfaceInternal   "Interface Internal"      ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:interface_internalIp" } 
// String SpeedtestBinding_InterfaceExternal   "Interface External"      ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:interface_externalIp" } 
String    SpeedtestBinding_ResultURL           "Result URL"              ["Point"]  { channel="speedtest:speedtest:f4e64cd6a6:result_url" }

You’ve shown us an items file, but the channel won’t show up there until you define an item for it.

Go to the Speedtest binding in the UI, and open the Channels tab. Then click “Advanced” to see all of the channels. It’s at the bottom.

It is the items file that is autogenerated from the equipment configuration which holds all available channels - so it’s the same as the UI Things → Channels tab

Have you removed and re-added the Speedtest thing? I suspect you need to do that to get the new channel.

1 Like

That did the trick, TY!

Hi!
I removed and recreated the Speedtest thing - but after setting the serverID I get an error message

Thing ‘speedtest:speedtest:a283538465’ changed from ONLINE to OFFLINE (CONFIGURATION_ERROR): Speedtest is not returning valid results.

Don’t know what to change further.
Thanks for help
Georg

You are running the Ookla version of speedtest, right?

Yes, I do.

Speedtest by Ookla 1.0.0.2 (5ae238b) Linux/arm-linux-musleabihf 5.4.83-v7l+ arm/armv7l

on Raspberry 4 B

Georg

Found the error - used the wrong Server-ID (used (Server List) 4 instead of 4087).

Changed the Server-ID to the correct - it is working now without errors.

Thanks for the update!

HI @bhomeyer

Thanks for putting the work into this addon. I tried in vain to get the Network binding speedtest to work. It just wasn’t successful as I’m not a network guy.

I run OH3.1 snapshot on an old Windows 10 laptop as a server. I installed the Ookla Cli .exe file as documented and this runs as expected. I got the standard GDPR stuff initially but it doesn’t require this again ater the initial run.

image

On installing the addon I have tried to configure the Binding without success. Once pointed to the path on my laptop I get the following:

image

The strange thing is that the local servers are being picked up?

image

The Thing initially goes green and online for about 1 second before the “configuration error” is displayed. Any thoughts?

Yea, just based on that I’m going to have to think that the user that OH runs at possbily does not have permissions to run the speedtest?

I tested this here, and you can get the servers list without elevated permissions but the speedtest will fail.

Thanks for the reply @bhomeyer. I can run the .exe without issue but the same issue with the speedtest communication in the binding.

image

My .exe file is set to run with administrator access - no change I’m afraid. Any other thoughts?

Is openHAB running as your user, or a different user account?

Same user.

What does the log look like if you put the binding into debug or trace mode?

can you guys help me with this issue. i am running openHAB in a Docker, Synology DS218+, i installed the speedtest binding and ookla speedtest. I test it and it is running well:

image

but the binding is giving me this error message:

getting one step closer:

EDIT: i got this sorted. It was the GDPR issue, if i run this in the docker instance it runs with root and not openhab. changing the user to openhab, run the speedtest and accepting the license agreement did the trick.