Not really hub related but advice on how to monitor internet speed

Not really Hubitat related but there are some smart people here that might be able to help me with this.

I have a gigabit fibre optic Internet plan. When everything is working properly I can get over 900mbit/s download speeds on a wired internet connection.

However, periodically, this slows to a craw at 40mbit/s and I have to restart my ISP provided modem to get back to full speeds.

Is there a relatively simple way to monitor and log my internet speed? Even better would be to notify me if it drops below a certain speed.

1 Like

There is a single run app, SpeedTest that is good at determining speed. I do not know of any periodic testing apps (they would be intrusive to operations if run to frequently).

That being said, you are on the road to a problem with your ISP. They provided the modem (usually $10US per month) - but it is not always the best.

I have a speedtest docker that runs a test hourly and writes the data to influxdb.

I do this via node-red. I get notified if the speed drops below what I consider reasonable.

1 Like

Based on this original post, I went looking for an option with Node Red and found node-red-contrib-speedtest-updated. Is that what you are using?

2 Likes

Yup. Works great. I monitor speed four times a day.

2 Likes

Google Wifi automatically checks the speed daily if you're interested in getting a mesh system.

1 Like

I just wish Google WiFi would let you setup the primary mesh router in bridge mode. It'll make it easy to integrate it behind a firewall like opnsense or pfsense.

I agree, that's the #1 thing I hate about it! I have real trouble getting a VPN setup to allow me into my HE because of the way Google Wifi creates its own subnet!

1 Like

Agreed. Frankly, that is pretty much the only thing I really dislike about it ..... other than that it's a great system. Easy to mix wired/wireless pucks. Management is simple, and it is more than adequate for the 150/10 (down/up) cable internet that I purchase from Cox.

Fingbox...does daily internet speed tests and keeps stats for you.

Fingbox | Fing

S.

1 Like

Could you share that flow? Thanks!

Of course.

Here you go (I pay for 150/10 - so I get notified if the download is less than 150 mpbs). The link-out node goes to an email node that I use to get SMS via email.

Speedtest

[{"id":"a87fa3b6.c36538","type":"change","z":"3943b86.98c64c8","name":"Speed Test","rules":[{"t":"set","p":"topic","pt":"msg","to":"Speed Test","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":1460,"wires":[["ead4398e.516fa"]]},{"id":"de252549.4ee6d8","type":"speedtest","z":"3943b86.98c64c8","name":"Cox","serverId":"","maxTime":"120000","x":290,"y":1460,"wires":[["a87fa3b6.c36538"]]},{"id":"ead4398e.516fa","type":"switch","z":"3943b86.98c64c8","name":"down < 150","property":"payload.speeds.download","propertyType":"msg","rules":[{"t":"lt","v":"150","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":630,"y":1460,"wires":[["f551581a.ba8058"]]},{"id":"de7574c1.624538","type":"bigtimer","z":"3943b86.98c64c8","outtopic":"","outpayload1":"","outpayload2":"","name":"Speedtest","comment":"","lat":"29.977091","lon":"-90.143000","starttime":"120","endtime":"480","starttime2":"840","endtime2":"1200","startoff":0,"endoff":0,"startoff2":0,"endoff2":"","offs":0,"outtext1":"","outtext2":"","timeout":1440,"sun":true,"mon":true,"tue":true,"wed":true,"thu":true,"fri":true,"sat":true,"jan":true,"feb":true,"mar":true,"apr":true,"may":true,"jun":true,"jul":true,"aug":true,"sep":true,"oct":true,"nov":true,"dec":true,"day1":0,"month1":0,"day2":0,"month2":0,"day3":0,"month3":0,"day4":0,"month4":0,"day5":0,"month5":0,"day6":0,"month6":0,"day7":"","month7":"","day8":"","month8":"","day9":"","month9":"","day10":"","month10":"","day11":"","month11":"","day12":"","month12":"","d1":"","w1":"","d2":"0","w2":0,"d3":0,"w3":0,"d4":0,"w4":0,"d5":0,"w5":0,"d6":0,"w6":0,"xday1":0,"xmonth1":0,"xday2":0,"xmonth2":0,"xday3":0,"xmonth3":0,"xday4":0,"xmonth4":0,"xday5":0,"xmonth5":0,"xday6":0,"xmonth6":0,"xd1":0,"xw1":0,"xd2":0,"xw2":0,"xd3":0,"xw3":0,"xd4":0,"xw4":0,"xd5":0,"xw5":0,"xd6":0,"xw6":0,"suspend":false,"random":false,"repeat":false,"atstart":false,"odd":false,"even":false,"x":130,"y":1460,"wires":[[],["de252549.4ee6d8"],[]]},{"id":"f551581a.ba8058","type":"simpletime","z":"3943b86.98c64c8","name":"","x":810,"y":1460,"wires":[["cafb33b5.2ca2a"]]},{"id":"cafb33b5.2ca2a","type":"template","z":"3943b86.98c64c8","name":"SMS","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Internet speed was {{payload.speeds.download}}/{{payload.speeds.upload}} (down/up Mbits/s) at {{mytimes}} on {{mymonthn}}/{{mydom}}. Speedtest server was {{payload.server.sponsor}}.","output":"str","x":970,"y":1460,"wires":[["cdc220c7.3ee598"]]},{"id":"cdc220c7.3ee598","type":"link out","z":"3943b86.98c64c8","name":"SMS-out","links":["67fd4532.52d0e4"],"x":1075,"y":1460,"wires":[]}]

Here's what the SMS looks like (this was triggered quasi-deliberately)

4 Likes

Geez, I totally forgot that my Google Wifi checks daily. I use it to test internet speed to the router manually but totally forgot I can look back at the daily history.

Here's the slowdown mentioned:

Interestingly though, if I hook my desktop directly into the ISP's modem/router, I can get 940 down according to speedtest.net but my google wifi at best reports 685 down. Just a result of the two speed tests using different servers? Checked the cable between my router and main google puck and it is a Cat 5e, thought maybe it was just a Cat 5.

Thank you for mentioning this! I just added this to my "performance" flow tab where I am already monitoring Hubitat performance and other things like hub backup times. Great addition!

3 Likes

How did you find the server ID # near you?

Seems like it’s possible to get a list by running the command line app, is there another way?

1 Like

That's the only way I know.

2 Likes

The information for the node has a link to this export. I just used the browser find to search for my city and chose the closest.
https://www.speedtest.net/speedtest-servers-static.php

1 Like

I use Fing and FingBox, it makes me 4+ times a day reports and aggregates them weekly and monthly, shows speed drops, averages, and downtime, connects to IFTTT so you can use the data wherever you like

Yeah - I have one of those (the original, not the new dual-band one). I've replaced most of its reporting functions with a set of Node-RED sequences. By the end of the month, I hope have the rest of function replaced by a Qotom i5 running OpnSense.

1 Like