Skip to content

plgonzalezrx8/ISP-Speed-Notifier

Repository files navigation

# ISP Speed Notifier An automated tool to monitor, record, and alert you about your Internet Service Provider's (ISP) performance inconsistencies. ## Why this exists? I'm extremely annoyed at my ISP! Their service has been extremely inconsistent, speeds fluctuating drastically through the day, so I decided to create this tool in order to document how inconsistent their service is. ## Features - **Automated Speed Tests**: Runs periodically to check your download, upload, and ping speeds. - **Historical Data Logging**: Saves all test results to a local SQLite database (`speed_history.db`) for tracking performance over time. - **Discord Alerts**: Automatically sends a webhook notification to a Discord channel if your speeds drop below your configured minimum thresholds. - **Rich Notifications**: Discord alerts include an image of the speed test result, specific metrics, and which server was used. - **Configurable**: Easily adjust minimum thresholds and testing intervals via a `.env` file. ## Prerequisites - Python 3.8+ - [Discord Webhook URL](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks) (Optional, for alerts) ## Setup Instructions 1. **Clone the repository** (if you haven't already): ```bash git clone https://github.com/yourusername/ISP-Speed-Notifier.git cd ISP-Speed-Notifier ``` 2. **Install dependencies**: ```bash pip install -r requirements.txt ``` 3. **Configure the application**: - Copy the example environment file: ```bash cp .env.example .env ``` - Edit the `.env` file with your specific requirements: - `MIN_DOWNLOAD_SPEED`: The minimum acceptable download speed in Mbps before an alert is triggered. - `MIN_UPLOAD_SPEED`: The minimum acceptable upload speed in Mbps. - `TEST_INTERVAL`: How often the test should run (in minutes). - `DISCORD_WEBHOOK_URL`: Your Discord channel webhook URL. ## Usage ### Run as a Background Service To run the automated scheduler that will periodically test and monitor your speeds: ```bash python main.py ``` This will initialize the database, perform an immediate speed test, and then continue running based on your configured `TEST_INTERVAL`. ### Run a Single Manual Test If you just want to run a one-off test without the scheduler or alerting system: ```bash python speed_test.py ``` ## Reviewing Historical Data All results are stored locally in `speed_history.db`. You can use any standard SQLite viewer (like [DB Browser for SQLite](https://sqlitebrowser.org/)) to open this file and view, graph, or export your historical speed data.

About

Keep tabs on your ISP. Perform speed test through the day and perform different actions when the speed goes below a predetermined threshold.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages