DEV Community

Cover image for I Built a Bot to Try and Get Money Back From My Internet Provider

I Built a Bot to Try and Get Money Back From My Internet Provider

Andrew Healey on August 22, 2019

In my contract with my ISP, they gave me a range of speeds to expect but also a speed that was the guaranteed minimum. If they aren't able to keep ...
Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Now we need some AI to read contracts and look for sweet bits of info like this!

Collapse
 
healeycodes profile image
Andrew Healey

Automate all the things! 😊

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Absolutely! But actually a contract reading AI would be fantasticly useful and I would pay for that sort of service.

Thread Thread
 
phlickey profile image
Phil

This would be tremendously empowering for marginalized communities that have historically received the short end of the stick when it comes to Ts&Cs. Could potentially be a powerful tool to democratize the legaleese.

Thread Thread
 
adam_cyclones profile image
Adam Crockett 🌀

I love this angle Phil, really interesting! It's so tempting to go away and build this, if anyone has a crack I'd love to checkout your work. I could imagine you would ask the AI for positive or negative traits within a document. How could this AI become a consumer product, some sort of Phone app. Perhaps it's more of an API like Amazon lex powers poly to make "Alexa".

Collapse
 
sarafian profile image
Alex Sarafian

I'm wonder how is the minimum guaranteed and compensated when your speed test depends on a 3rd party. The only way to 100% now what is your speed is to download/upload files from your ISPs servers and that is also not 100% concrete because the network could be fine but the host not. In other words, even if you found the dips manually or automated, doesn't your ISP have the best "get out of jail" free card in the world?

I'm not trying to undermine your effort I'm just wondering how does your ISP define minimum speed.

Collapse
 
healeycodes profile image
Andrew Healey

Hi Alex, that’s a great question.

I went and scanned the terms and conditions last night and the ISP have their own private speed test for their customers. It takes longer and is presumably logged on their end.

The result of their test matches the graph’s results.

My intentions with this project is for the graph to show me if I have any issues, and at what times, so that I can go and follow up in a more official manner.

I agree that they would not accept this graph as evidence.

Collapse
 
phlickey profile image
Phil

This was niggling at me. Thanks for clarifying, and congratulations on a very cool project.

Collapse
 
sarafian profile image
Alex Sarafian

Admirable. If I understand correctly, does your isp publish their speed test results? Which country and ISP if in may ask? Is it a national regulation?

Collapse
 
clairmont32 profile image
Matthew Clairmont • Edited

I've thought about doing this with Fios but never followed through. I got the idea from my first IT job where we requested refunds due to outages or low bandwidth supported by a Nagios graph. Did you have any positive results from reporting the slowness to your ISP? Getting a few bucks back off of them would be a good win and worth the setup time if you expanded it to email them with each dip below minimums.

Collapse
 
healeycodes profile image
Andrew Healey

It turns out that there weren't any problems with my bandwidth so I've had no contact.

If the graph showed a pattern, I would perform any official ISP speed-tests at the now-predictable slow parts.

I like that automation idea though. Perhaps a Twitter bot!

Collapse
 
clairmont32 profile image
Matthew Clairmont

I like it!! Twitter is usually a good way to get the fast attention of customer support reps from bigger companies!

Collapse
 
sameerul97 profile image
Sameerul

Inspiring post, i have Raspberry Pi lying in my home. Going to implement this project. I also live in UK but which ISP provides this discount deal, from my experience i haven't heard about ISP offering discounts if the speed limit isn't consistent. Would love to get some discount since my internet tends to be slow quiet regularly.

Collapse
 
healeycodes profile image
Andrew Healey

My ISP requires you to run their speed test in order to be eligible for the discount. But this project might tell you at which times to run it.

My graph tends to dip in the afternoon until morning.

Let me know if you have any issues with the project! 😁

Collapse
 
martinwheeler profile image
Martin Wheeler

Hey Andrew, great article and great work on the tool, I'll have to get something similar setup soon! Just a couple of questions:

  1. Does this cause any dips in network speed when the test is running? I.e. do you feel the test running when you are browsing or doing other things on the internet, or is the test pretty quick to finish?
  2. Why did you opt for 30 minute intervals?
Collapse
 
healeycodes profile image
Andrew Healey

Either test doesn’t affect browsing, I've been playing games that rely on low latency and haven’t seen any spikes. On very slow connections (~5Mbps? Perhaps the test would be felt).

I felt that any speed issues that lasted shorter than half an hour would be ‘blips’ and I wouldn’t mind missing them. I haven’t put too much thought into the 30 minute timing interval.

Thanks for your questions! 😊

Collapse
 
thomasghenry profile image
Thomas G Henry

Nice! Is it worth being more unpredictable from their perspective? I might vary the interval or even just offset it a bit to come out of phase with itself day after day (every 29 mins instead of 30, let's say), as well as stick a VPN in there to ensure the ISP is not prioritizing speed test traffic. Varying the speed test host might not be a bad idea either if you can find others.

Collapse
 
healeycodes profile image
Andrew Healey

Every 29 minutes is a great idea!

Quite a few interesting ideas here. I know that speedtest-cli accepts --list which displays a list of speedtest.net servers sorted by distance. Presumably, there are further configuration options.

There are a few ways to make this project more real-world and reliable.

Thanks for the insightful comment.

Collapse
 
healeycodes profile image
Andrew Healey

Very! Right down to the nice engineer who hooked up our line.

Here in the UK, ISPs tend to be quite customer-oriented (in my experience).

Collapse
 
healeycodes profile image
Andrew Healey

I mentioned this in another comment, that the aim of this project is to serve as a kind of ‘bandwidth canary’ so that more official complaint steps can be taken.

I thought about automating the process with just my ISP but wanted to provide a more general tool 😊

Thanks!

Collapse
 
hephalump profile image
Jason S

This is the best thing I've read all day.

Collapse
 
banidrum profile image
Daniel Brum

That is a great idea, pretty cool.

Collapse
 
healeycodes profile image
Andrew Healey

Thanks Daniel!

Collapse
 
fultonbrowne profile image
Fulton Browne

I know what I am doing saturday! :]

Collapse
 
joflixo profile image
Joflix Ooko

This is cool man,

Collapse
 
stiakov profile image
Santiago Torres

Great! I'm writing my own in NodeJS.
I'll post my results here.

Collapse
 
stiakov profile image
Santiago Torres • Edited

Thank you @healycodes, very inspiring! 🚀.

Here is the result, it's enhanced with a telegram bot, and send relevant notifications about changes in data points.
Bandwidth Checker and Logger built with NodeJS

Collapse
 
codelitically_incorrect profile image
codelitically_incorrect

this man is an engineer.

Collapse
 
libertxyz profile image
Libert S

This is so cool! thanks for sharing

Collapse
 
kamalhm profile image
Kamal

Whoa this is interesting, gonna do this sooner or later

Collapse
 
vinnymac profile image
Vincent Taverna

Idk if this will help you, but I use this CLI tool written in Go on Linux regularly. It is small and really convenient! github.com/ddo/fast/releases

Collapse
 
healeycodes profile image
Andrew Healey

I’ll check it out! Thanks for sharing it Vincent 👍🏻

Collapse
 
rommik profile image
Roman Mikhailov • Edited

#keepemhonest

Collapse
 
mpissanos profile image
Manuel Pissanos

Cool!! Nice idea for a side project this weekend. Thanks for sharing...

Collapse
 
engmms profile image
engmms • Edited

in my country , they will tell you in aggressive way ,How you can debunk our Service ???