Let a QNAP NAS monitor a UPS connected to a Raspberry Pi over SNMP.
Feed live UPS battery and power status into Home Assistant or Prometheus dashboards.
Get MQTT notifications and a web dashboard for UPS status and power flow.
| skull-candy/pug | 0xustaz/streamgate | a-bissell/unleash-lite | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | Python | Python | Python |
| Setup difficulty | moderate | hard | hard |
| Complexity | 3/5 | 4/5 | 4/5 |
| Audience | ops devops | developer | researcher |
Figures from each repo's GitHub metadata at analysis time.
Needs a UPS connected via apcupsd or NUT, and root or capability grants to bind the privileged SNMP port.
PowerPi UPS Gateway, called PUG, turns a Raspberry Pi or other Linux machine into a bridge between an uninterruptible power supply and devices that expect a specific network protocol to check its status. Many UPS units are easy for a Raspberry Pi to read directly, but appliances like QNAP network storage boxes only understand SNMP messages formatted the way old APC Smart-UPS units send them. PUG solves this gap: a single collector process reads the real UPS status, either through apcupsd, through NUT (Network UPS Tools), or through a built in simulator for testing, then stores that status in one shared object in memory. Every other part of the program reads from that same shared state instead of talking to the UPS again, so the UPS itself is only asked once no matter how many other systems want to know its status. From that shared state, PUG offers the status through several different doors at once: it pretends to be an APC Smart-UPS over SNMP so devices like QNAP accept it, and it also serves the same data as REST JSON, as Prometheus metrics for monitoring dashboards, as Home Assistant discovery messages for smart home setups, over MQTT for automation tools, and through a built in web dashboard. The web dashboard is the main way a person interacts with PUG day to day. It shows a live diagram of how power is flowing, from the wall, from the battery, or in bypass mode, lets an administrator start or cancel battery self tests and calibration runs, tail recent logs, edit settings, and check for and install updates, all without needing to reload the page. Setup involves installing apcupsd or NUT on the same Raspberry Pi or Linux box, cloning the repository, installing it as a Python package, and optionally registering it as a system service so it starts automatically and restarts on changes. Running the SNMP server on the standard port needs elevated privileges on Linux, though a higher port can be used for local testing without that requirement.
A Raspberry Pi tool that reads UPS status and re-serves it as SNMP, REST, MQTT, Prometheus, and a web dashboard so devices like QNAP can monitor your battery backup.
Mainly Python. The stack also includes Python, SNMP, MQTT.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly ops devops.
This repo across BitVibe Labs
Verify against the repo before relying on details.