One-liner Internet speedtest, Linux CLI, Node-Red, Home Assistant
We’ve been using Mobile Broadband for several years and have always been keen to measure the speed from our Internet Service Provider (ISP).
I’ve posted several variants, mostly Node-RED(NR) flows and programs that often use Python. I’m now slowly converting to Home Assistant(HA), and was glad there was an integration, Speedtest, to do the job. But I couldn’t get it to work since HA didn’t like that the test took more than 10 seconds,
Then I tried a Speedtest NR node, but it didn’t install because it needed Python dependencies...... (NR was installed as a HA "Add-on")
HA OS
Just a comment on HA OS. It is not a regular Linux distribution and therefore some standard Linux "things" don't work. In this case I'm using the Linux commands "wget" and "curl" which are available.
Node-RED
If not yet installed, in HA, here is a how to.
The inspire link
So after some Googling i found this nice post.
Some ISPs, like Tele2, offer simple utilities to test your internet connection. The mentioned post shows a script
t=$(date +”%s”); wget http://speedtest.tele2.net/100MB.zip -O ->/dev/null ; echo -n ”MBit/s: ”; expr 8 \* 100 / $(($(date +”%s”)-$t))
which will give you your download speed.
The command works for any file, but the math is for a 100MB file. If you want other sites with test files, search for ”download 100mb.zip” on Google.
Code
CLI commands
With command
t=$(date +"%s"); wget -q http://speedtest.tele2.net/100MB.zip -O ->/config/files/100MB.zip ; echo -n ; expr 8 \* 100 / $(($(date +"%s")-$t))
i got the download speed. There are some changes to the original code
- "wget" is using quiet mode
- the downloaded file is stored in "/config/files/"
Tele2 also have a service checking the upload speed so the stored file is uploaded with command
t=$(date +"%s"); curl -s -T /config/files/100MB.zip http://speedtest.tele2.net/upload.php -O /dev/null ; echo -n; expr 8 \* 100 / $(($(date +"%s")-$t))
Node-RED
The flow uses "exec" nodes to run the commands, a "function" node makes the value numeric and "sensor" nodes creates the entities for HA. The file used for the speedtest are then deleted and a ping test is executed.
Flow found here.
Comments
Post a Comment
Feel free to leave a comment ! ... but due to a lot of spam comments I have to moderate them. Will reply ASAP !