This project aims to build a monitoring and reporting system for the Network and Internet Status.
The personal devices we use have their own network diagnostics tools built in. And the apps running on those devices use those tools for a confirmed network status.
This project aims to do the same for the entire network, where instead of apps, there are people and devices across multiple rooms and floors.
This project can be helpful for realising that the Internet is down before my devices or someone in my house complains about the outage. The script is aimed at running on a Raspberry Pi so that I can use LEDs connected to its GPIOs for informing humans around it about the network status. I will add an API so the machines on my network can use this as well.
You can see a YT video of an RPi running this here.
$ python main.py --pinout
ACTIVITY LED:
Yellow LED Pin: 18
STATUS LED:
Red LED Pin: 17
Green LED Pin: 27
Blue LED Pin: 26
- Clone the repo on your RPi using this command:
git clone https://github.com/Ativerc/rpi-network-monitor.git
cd
into the downloaded repo folder.- Setup an environment and activate it.
- Install the requrirements from requirements.txt:
pip install -r requirements.txt
- Execute the
main.py
file.
- Read the help message
- Connect the LEDs to the RPI's GPIO as per the pinout
See Issues
- Check which network interface the device is connected to.
- Rewrite the code to support any network interface its connected to.
- [Fix]Improve the messages to STDOUT
- Run as a daemon (Already have figured it out, I want to improve the STDOUT before doing this)
- Running as a User Service
- Add logging
- Add a way to print the default pinout, so endusers can easily connect the LEDs and get started.
- Check Wifi Status
- Add STATUS LED Support
- Add WIFI LED Support
- Add ACTIVITY LED Support
- Add MQTT support (direnv for constants)
- Fix:
- Standardize STATUS CODES to be sent over MQTT
- The timings for ACTIVITY LED and STATUS LED
- MQTT topic names for network status and device status