P218 23:31:30 13 FEB
MONITORING DEVICES ON MY HOME NETWORK
13 JUN 2026

My router gives me a basic view of the devices currently connected to my network, but it does not expose historical information. I started this project to fill that gap: a small Raspberry Pi service that scans the LAN, records which devices it sees, and shows that data in a dashboard.

Implementation

The service periodically runs arp-scan to discover devices on the local network, then stores the results in a database with both the current device state and a history of online/offline events. That split lets the system track when a device first appeared, when it was last seen, and how its presence changed across a day or week.

I deployed it as a continuously running systemd service on one of the Pis in my Raspberry Pi home lab. It now sits on the network, quietly building a long-term picture of the devices around my home.

The app includes several FastAPI endpoints and a locally served dashboard for viewing recent activity. The dashboard also lets me set custom names for each device, which is especially useful for devices that do not expose helpful hostnames.

The locally served device monitoring dashboard showing network device activity

For simplicity I initially used SQLite as my store but I later migrated to PostgreSQL. This allowed the database to be added as a data source in my Grafana observability stack (app logs are exported there too). For there I created a Grafana dashboard for exploring historical device data. This lets me rely on the polished Grafana UI for browsing across devices rather than making my own dashboard more complex than it needs to be.

The Grafana dashboard showing historical device monitoring data

Reflection

I like projects that capture and visualise data from ordinary day-to-day life. Tracking when my own phone is connected to the router gives me a rough signal for my own comings and goings, and for guests joining the Wi-Fi. Of course, I would not expose it directly to the internet, but on a trusted LAN it gives me much better visibility into what is happening at home.

View the project on GitHub