Out-of-band power alerting for a homelab

You almost certainly have a UPS, and this is not an argument against one. A UPS buys runtime and, wired to NUT, shuts things down cleanly. What it does not do is tell you — and the tools that would tell you are running on the hardware that just lost power.

The gap, stated precisely

Mains fails at 14:20 on a Tuesday. The UPS takes the load. Twelve minutes later the battery is low, NUT does its job, everything shuts down cleanly and the rack goes dark. Nothing is damaged and nothing is corrupt. You find out at 19:00 when you get home, because every part of that sequence was correct and none of it involved you.

The notification paths people assume cover this, and where each breaks:

The pattern is one thing: everything that could tell you depends on something the outage removed, or cannot say what actually happened.

What a phone adds

An Android phone on a charger in the closet is an out-of-band mains sensor with its own battery and, with a prepaid data SIM, its own transit. It watches the charger's power feed rather than the battery level, so it reports in seconds rather than when the phone eventually drains.

Where it sits alongside what you run

QuestionAnswered by
How long until the batteries go?NUT / apcupsd. Not us — we read nothing from the UPS.
Shut the hosts down cleanlyNUT. We notify people; we do not act on machines.
Is the service up?Uptime Kuma, or an external check.
Why is it down?This — mains specifically, rather than "unreachable".
Tell me while I am outThis, over cellular, out of band.
Tell me if the monitor itself diesThis — silence is treated as the alert.

A sensible setup

What it does not do

No SNMP, no USB, no UPS telemetry of any kind: it does not know your battery level, load or runtime estimate. No shutdown hooks and no API to script against. No SMS and no phone calls — alerts arrive as push notifications in the app, and by email to anyone else. No iPhone version. And it is not a certified life-safety system; if you are protecting something where that matters, this is not the product.

Questions

I already have a UPS. Why would I need this?

A UPS gives you runtime and, with NUT or apcupsd, a clean shutdown. Neither of those tells a person who is not in the building. If the outage lasts longer than the battery, the rack goes down gracefully and silently, and you find out when you next look. This is the notification half, and it is the half that runs on something the outage cannot take down.

Doesn't NUT or apcupsd already email me when mains fails?

It sends mail through the network. Whether that mail leaves the building depends on the modem or ONT and the switch between it and the server being on the UPS too, which is a common gap — people put the server and the NAS on battery and leave the ONT on a wall socket. When that is the layout, the notification dies with the link.

Can't Uptime Kuma or an external monitor tell me?

An external check tells you the service is unreachable, which is genuinely useful and genuinely ambiguous: an ISP fault, a crashed host, a failed switch and a blackout all look identical from outside. A phone on a charger reports that mains power specifically has failed, which turns an ambiguous alert into a decision about whether to drive home. Uptime Kuma running inside the rack cannot report the rack being down at all.

Does it talk to my UPS over SNMP or USB?

No. It reads nothing from the UPS and knows nothing about battery level, load, or estimated runtime. It watches whether the wall socket its own charger is plugged into is delivering power. If you want battery telemetry, NUT is the right tool and this does not replace it.

Can it trigger a graceful shutdown?

No. It notifies people; it does not act on machines. There is no API to hook into a shutdown script, and the phone is not on your network in any privileged way.

What about the far end — how do I know the alert got out?

Put a cheap prepaid data SIM in the monitoring phone and the report leaves over the cellular network, entirely out of band from anything in the rack. If the phone cannot reach us at all, our servers notice its check-ins stopped and alert your people anyway, which takes about seventeen minutes rather than three.