How to Build a Power Outage Alert That Reaches You
An outage alert is only useful if it fires before the network dies and arrives over a path that survives the outage. This guide compares four detection paths — UPS/NUT, energy-monitoring smart plugs, the cloud-lost heuristic, and a standalone cellular alarm — with copyable Home Assistant automations and an honest status label for each.
A power-outage alert has one job: reach you while there is still something useful to do. The weak version is everywhere — a smart device notices trouble, then tries to send a push notification through the router, modem, fiber ONT, and cloud path that just lost power. By the time the app says the home is “offline,” that may only mean the house stopped talking.

The useful test is two-layered. First, what detects the outage before the local network collapses? Second, what delivers the alert over a path that does not depend on the home connection being alive? Router and modem backup can keep internet service alive during some outages, but the ordinary failure path is still simple: home networking gear needs power, and when that path is gone, cellular becomes the more independent way to reach a phone [1][2].
This is worth solving before the next long outage, not after it. U.S. electricity customers averaged 11 hours of power interruptions in 2024, according to the U.S. Energy Information Administration [3]. That average does not tell you what will happen on your street, but it is enough to separate a nice dashboard from an alert path you would actually trust.
The two-layer rule

Do not start with the device category. Start with the failure path. A UPS can detect utility loss, but only if the Home Assistant host can still read it. A smart plug can expose a dead outlet, but only if the hub or coordinator that receives that signal is still powered. A cloud dashboard can tell you the home disappeared, but it cannot prove the lights went out. A cellular alarm avoids the home WAN entirely, but then you are trusting a standalone device and its subscription.
| Detection path | Status label | What it can honestly prove | Main dependency that still has to survive |
|---|---|---|---|
| UPS + Network UPS Tools in Home Assistant | Workaround — built from official Home Assistant NUT entities and documented automation patterns | The UPS changed to battery power, and later that the battery charge crossed a threshold [4] | Home Assistant host, UPS connection, and any delivery hardware you still need |
| Energy-monitoring Zigbee, Z-Wave, or Thread plug | Workaround — protocol-aware detector that must be tested with your plug and coordinator | A normally powered load dropped toward zero, or the plug stopped reporting; that is strong local evidence when the monitored circuit should be live [5] | Home Assistant host plus the Zigbee/Z-Wave/Thread coordinator or border router |
| Cloud-lost or device-offline heuristic | Partial signal — useful for triage, not a power detector | The home, hub, camera, or cloud service became unreachable | A third-party cloud path and the assumption that outage equals power loss |
| Standalone cellular power alarm | Vendor-stated independent option | The alarm says it can send SMS, call, or email without home power or Wi-Fi [6] | Cellular coverage, the device battery, and the subscription or alert plan |
Path A: UPS + NUT in Home Assistant
This is the cleanest Home Assistant path when it is wired honestly. Home Assistant’s Network UPS Tools integration exposes UPS data including status and battery charge, and the official documentation shows automations for a UPS status changing to “On Battery, Battery Discharging” and for battery charge dropping below 25% [4]. That is exactly the information an outage alert should use: not a cloud guess, not a camera disappearing, but the battery-backed power device reporting that it is now carrying the load.

The catch is not optional: the Home Assistant host must be on the UPS. If the Raspberry Pi, mini PC, NAS, or Home Assistant Green dies at the same moment as the lights, no automation will run. If you also expect the alert to travel through your home internet connection for a while, the router, modem, switch, and any fiber ONT must be on backed-up power too. NestGrid’s storm prep recipe and battery-backup guide are the prerequisites here; this recipe starts after the UPS is already carrying the right hardware.
Automation: UPS changed to battery
Status: Workaround. The trigger and low-battery pattern come from the official Home Assistant NUT documentation; the entity names and notify service below are placeholders you must replace with your own. Check Developer Tools → States for the exact status string your UPS reports before trusting the automation.
alias: Power outage - UPS on battery
mode: single
trigger:
- platform: state
entity_id: sensor.office_ups_status
to: "On Battery, Battery Discharging"
condition: []
action:
- service: notify.sms_primary
data:
title: "Power outage"
message: "Home UPS is on battery. Utility power is likely out. Home Assistant is still running on backup power."
Use the first alert for awareness, not panic. A short flicker, a breaker problem, and a real neighborhood outage can all push a UPS onto battery. The value is that the message fires while Home Assistant is still alive, which is the moment most “smart” outage alerts miss.
Automation: UPS battery is getting low
The second alert is the one I would make louder. Home Assistant’s NUT documentation uses a battery-charge threshold example below 25% [4]. That threshold is not a universal shutdown plan; it is a warning that the backed-up stack is running out of time.
alias: Power outage - UPS battery low
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.office_ups_battery_charge
below: 25
condition:
- condition: state
entity_id: sensor.office_ups_status
state: "On Battery, Battery Discharging"
action:
- service: notify.sms_primary
data:
title: "UPS battery low"
message: "Home UPS battery is below 25% while on battery. Internet and Home Assistant may stop soon."
If your SMS provider supports escalation, send the low-battery alert to more than one person or use voice for the second message. If the UPS is only backing up Home Assistant and not the router, do not pretend this path can use normal app push after the WAN is gone. It can still trigger local actions — shut down nonessential loads, save state, turn off automations that will thrash on recovery — but the remote alert needs another delivery path.
Path B: a non-Wi-Fi energy-monitoring plug
An energy-monitoring plug gives you a different kind of evidence: a device that should always draw power has stopped drawing power, or the plug itself has stopped reporting. How-To Geek describes using energy-monitoring smart plugs for actions based on power draw, and specifically notes that Zigbee, Z-Wave, and Matter-over-Thread models can work without depending on Wi-Fi [5]. That protocol detail matters during an outage. A Wi-Fi plug that needs the same dead router as your notification path is a weak detector.

There are two honest versions of this recipe. In the first, you monitor power draw from something that should not be off under normal conditions. If the measured wattage drops below your chosen floor, Home Assistant treats that as a local power problem or device failure. In the second, the plug is on a non-backed-up outlet while Home Assistant and the radio coordinator are on the UPS; if the plug becomes unavailable, that tells you the outlet or circuit it lived on went dead.
The coordinator is the quiet dependency. A Zigbee or Z-Wave plug does not need Wi-Fi, but it still needs a powered coordinator and a powered Home Assistant host. A Thread plug still needs a working Thread path and border-router arrangement. For a broader map of which devices keep working during an outage, use the device-survival guide as context before you assume any particular radio stack will be alive.
Automation: watched plug drops out or reports near zero
Status: Workaround. The mechanism is supported by energy-monitoring plug behavior; the automation is synthesized and must be tested with your exact plug, hub, coordinator, and entity names. The threshold below is a starting point, not a claim about your appliance.
alias: Power outage - watched outlet lost power
mode: single
trigger:
- platform: numeric_state
entity_id: sensor.utility_room_plug_power
below: 1
for: "00:01:00"
id: power_near_zero
- platform: state
entity_id: sensor.utility_room_plug_power
to: "unavailable"
for: "00:02:00"
id: plug_unavailable
condition: []
action:
- choose:
- conditions:
- condition: trigger
id: power_near_zero
sequence:
- service: notify.sms_primary
data:
title: "Power loss detected"
message: "The watched load is reporting near-zero power. Check whether utility power or the monitored device failed."
- conditions:
- condition: trigger
id: plug_unavailable
sequence:
- service: notify.sms_primary
data:
title: "Watched outlet offline"
message: "The energy-monitoring plug stopped reporting. If Home Assistant is still on UPS, the watched outlet or circuit may have lost power."
This path is best when you care about a specific circuit or appliance, not just the whole house. It can also catch partial failures the UPS misses: a tripped breaker, a dead freezer outlet, or a pump circuit that is off while the networking rack still looks fine. The tradeoff is false positives. Someone can unplug the device. A firmware update can make an entity unavailable. A coordinator can reboot. Test the alert by physically cutting power to the watched outlet, then test it again by restarting the coordinator, so you know which message you get in each failure.
Path C: cloud-lost is a clue, not a detector
A cloud-lost alert is what many people already have by accident. A camera app says the camera is offline. A hub dashboard says the home cannot be reached. A router-monitoring service stops seeing pings. That may be useful, but it proves connectivity loss, not power loss.
Use this path for triage. If the UPS says it is on battery and the cloud path is gone, you probably have a real outage plus a collapsed WAN. If the cloud path is gone but the UPS is still on line power, you may have an ISP outage, router crash, DNS problem, or cloud-side issue. NestGrid’s WAN-outage troubleshooting guide is a better place for that distinction than a power-outage recipe.
Automation: only use cloud-lost as corroboration
Status: Investigating. This is only safe if you already maintain a reliable WAN or cloud-reachability sensor. The entity below is deliberately generic; do not copy it until you know what creates that binary sensor and how it behaves during router restarts.
alias: Power outage - WAN lost while UPS on battery
mode: single
trigger:
- platform: state
entity_id: binary_sensor.home_wan_reachable
to: "off"
for: "00:02:00"
condition:
- condition: state
entity_id: sensor.office_ups_status
state: "On Battery, Battery Discharging"
action:
- service: notify.sms_primary
data:
title: "Power outage plus WAN loss"
message: "Home Assistant reports the UPS is on battery and the WAN is no longer reachable. Remote access may fail soon or may already be down."
If the cloud-lost signal is the only thing you have, label it honestly in the message. “Home unreachable” is accurate. “Power is out” is a guess.
Path D: a standalone cellular alarm
The standalone cellular alarm is the least Home Assistant-ish answer and, for some homes, the most honest one. iSocket describes a power-outage alarm that sends SMS, call, and email alerts without home power and without Wi-Fi; the same vendor page states a device price around $189 and a base plan around $3.99 per month plus per-alert fees [6]. Treat those as vendor-stated claims, not independently verified performance numbers.
The appeal is obvious: detection and delivery do not need your router. A cabin, sump-pump room, freezer in an outbuilding, or elderly relative’s house may not be the right place to maintain Home Assistant, NUT, a coordinator, and an SMS integration. The tradeoff is that you now depend on cellular coverage, device battery behavior, vendor service terms, and subscription billing. For a reader who only wants one text when the power fails, that may still be a better bargain than a fragile smart-home chain.
Delivery: push is convenient, SMS and voice are the outage path
Delivery deserves its own decision because a good detector can be wasted by a bad route. Push notifications are fine when the router, modem, ISP path, cloud service, and phone data path are all healthy. During the exact event you care about, that is too many assumptions.
| Delivery method | Use it for | Outage weakness |
|---|---|---|
| Home Assistant app push | Convenient secondary alert while the home WAN still works | Depends on internet reachability from the home and on the phone receiving app push |
| SMS | Primary remote alert when the home WAN may be dead | Still depends on your phone being charged and having cellular service |
| Voice call | Escalation for low-battery or high-consequence alerts | More intrusive, and still depends on the phone and cellular network |
| Logging and secondary notification | Easy to miss and often delayed compared with SMS or voice |
The phone-battery caveat is boring and real: an SMS alert only helps if your phone is charged and has service. That is still a different failure path from the house losing power. The whole point is not perfection; it is avoiding a single dead router becoming both the problem and the messenger.
For emergency-adjacent automations, it also helps to keep the message plain. “UPS on battery” is better than “Power outage confirmed” unless you truly have confirmation. “Watched outlet offline” is better than “Freezer failed” unless you have a temperature or appliance fault sensor saying the same thing. NestGrid’s earthquake alert automations use the same discipline: the message should say what the system actually knows.
Pick the path by what you are willing to maintain
Use UPS/NUT if the Home Assistant box is on the UPS and you can also keep enough network or SMS-delivery hardware alive to send the message. It is the best inspectable Home Assistant recipe because the UPS is reporting its own state.
Use a Zigbee, Z-Wave, or Thread energy-monitoring plug when you want local evidence from a specific outlet, circuit, or always-on load, and when your Home Assistant host plus radio path are backed up. Avoid treating a Wi-Fi plug as the outage detector if the router is part of the outage.
Use cloud-lost only as a weak corroborating signal. It is good for “the home is unreachable” and useful when paired with UPS data. By itself, it is not a power sensor.
Use a standalone cellular alarm when the alert must survive without the home network at all, or when the site is not worth turning into a Home Assistant maintenance project. For safety devices that must keep working during outages, separate the alert recipe from the device’s own backup requirements; the power-outage safety guide is the better checklist for detectors, locks, and security gear.
References
- Power Outage? Here's How to Keep Your Internet on Like a Pro; CNET
- How to keep your internet on during a power outage; Allconnect
- U.S. electricity customers averaged 11 hours of power interruptions in 2024; U.S. Energy Information Administration
- Network UPS Tools (NUT); Home Assistant
- Neat Things You Can Do With an Energy-Monitoring Smart Plug; How-To Geek
- Power Outage Alarm; iSocket
