All Projects → healeycodes → Bandwidth Checker

healeycodes / Bandwidth Checker

Licence: mit
⚡ Test and graph your internet bandwidth over time

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Bandwidth Checker

Nowify
A Spotify 'Now Playing' screen designed for Raspberry Pi
Stars: ✭ 68 (-10.53%)
Mutual labels:  raspberry-pi
Batterymonitor
Python code to monitor and log battery data
Stars: ✭ 70 (-7.89%)
Mutual labels:  raspberry-pi
Swiftygpio
A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.
Stars: ✭ 1,188 (+1463.16%)
Mutual labels:  raspberry-pi
Chromium os Raspberry pi
Build your Chromium OS for Raspberry Pi 3B/3B+/4B and Pi400
Stars: ✭ 1,156 (+1421.05%)
Mutual labels:  raspberry-pi
Homekitcam
A project to make a Raspberry Pi driven, HomeKit Enabled camera.
Stars: ✭ 69 (-9.21%)
Mutual labels:  raspberry-pi
Dspi
Digital Signal Processing (or Pi). Adventures in making my Raspberry Pi 3 realtime, and running audio DSP.
Stars: ✭ 71 (-6.58%)
Mutual labels:  raspberry-pi
Client
An Opensource Alternative to the Elgato Stream Deck for the Raspberry Pi
Stars: ✭ 67 (-11.84%)
Mutual labels:  raspberry-pi
Raspberrypi Cpuminer
CPUMiner for RaspberryPi Zero, Pi 3, Pi 2, B+, A+
Stars: ✭ 75 (-1.32%)
Mutual labels:  raspberry-pi
Raspberry Pi Diy Projects
Collection of Do-It-Yourself Projects on Raspberry Pi 2 / 3 & Zero W with diverse HATs and pHATs.
Stars: ✭ 70 (-7.89%)
Mutual labels:  raspberry-pi
Mabel
MABEL is a feature-packed, open-source, legged balancing robot based off of the Boston Dynamics Handle robot.
Stars: ✭ 72 (-5.26%)
Mutual labels:  raspberry-pi
Rpi Vk Driver
VK driver for the Raspberry Pi (Broadcom Videocore IV)
Stars: ✭ 1,160 (+1426.32%)
Mutual labels:  raspberry-pi
Mic hat
2 Mic Array for Raspberry Pi
Stars: ✭ 69 (-9.21%)
Mutual labels:  raspberry-pi
Clj Gpio
A basic library for reading, writing and watching GPIO signals on a Raspberry PI, in a REPL-friendly way.
Stars: ✭ 71 (-6.58%)
Mutual labels:  raspberry-pi
Pi ina219
This Python library supports the INA219 voltage, current and power monitor from Texas Instruments with a Raspberry Pi using the I2C bus. The intent of the library is to make it easy to use the quite complex functionality of this sensor.
Stars: ✭ 68 (-10.53%)
Mutual labels:  raspberry-pi
Gopigo3
The GoPiGo3 is a Raspberry Pi Robot!
Stars: ✭ 74 (-2.63%)
Mutual labels:  raspberry-pi
Raztot
A simple DIY, browser controlled, RPi + WebRTC video streaming rover
Stars: ✭ 67 (-11.84%)
Mutual labels:  raspberry-pi
Yin Yang Ranch
Distributed Computer Vision Software & Raspberry Pis to help manage a farm
Stars: ✭ 71 (-6.58%)
Mutual labels:  raspberry-pi
Screenly Ose
The most popular digital signage project on Github!
Stars: ✭ 1,196 (+1473.68%)
Mutual labels:  raspberry-pi
Auto car
基于深度学习的自动避障智能小车
Stars: ✭ 74 (-2.63%)
Mutual labels:  raspberry-pi
Inkyshot
Get a daily random inspirational quote delivered direct to your desk with Inkyshot. Build multiple Inkyshots and share the inspiration with your friends, family and loved ones ❤️
Stars: ✭ 72 (-5.26%)
Mutual labels:  raspberry-pi

⚡ Bandwidth Checker ⚡

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


preview image

 

Some ISPs promise money back if your bandwidth goes below a certain level.

This project includes two automated methods of testing download speed.

  • Speedtest's CLI.
  • Headless Chromium browser via Netflix's fast.com.

A Node server displays a scatter graph of the recent bandwidth results via Chart.js.

I run my own setup on a Raspberry Pi connected to my router via ethernet.

 

Install

Client

cd client

pip install requests

and one of the following

Speedtest CLI:

pip install speedtest-cli

Headless browser:

pip install selenium

Server

cd server

npm install

 

Run

Client

Setup a cron job to run either version.

Speedtest CLI:

cd client
python clitest.py 'https://server-location/save' 'password'

Where the arguments are:

  • Path to the endpoint to save the results.
  • Password for that endpoint.

Headless browser:

python browsertest.py '/usr/lib/chromium-browser/chromedriver' 'https://server-location/save' 'password'

Where the arguments are:

  • Path to the ChromeDriver executable (watch out for version clashes).
  • Path to the endpoint to save the results.
  • Password for that endpoint.

Server

Setup password, and port (default: 3000):

Unix Bash (Linux, Mac, etc.):
$ export SECRET=hello
$ export PORT=3000

Windows CMD:
> set SECRET=hello
> set PORT=3000

Windows PowerShell:
> $env:SECRET = "hello"
> $env:PORT = "3000"
cd server
npm start

Visit the root path / to view bandwidth results.

Bandwidth results are stored by the client via /save

 

Contributing

Feel free to raise any issues and submit any reasonable pull requests.

 

License

MIT (see LICENSE.md).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].