Get an iPhone Alert When Home Assistant Goes Offline

By Paul Snyman · Published · 7 min read

Short version. Home Assistant cannot notify you that it has stopped, because the thing that would send the notification is the thing that stopped. You need a watcher outside it, and which one depends on how you reach your instance. If it has a public hostname, a Nabu Casa address or your own domain, PingKit's Uptime Watch checks it hourly from Cloudflare and pushes to your iPhone when it stops answering and again when it recovers. One URL is free, permanently. Guardian watches ten. If the instance is LAN-only, no internet-side checker can see it, and the answer is a Mac on the same network running the free PingKit Agent.

A Monitor Inside the Thing Being Monitored Is Not a Monitor

Home Assistant has excellent notification support, and people quite reasonably try to use it to tell them when Home Assistant is unhealthy. It works right up to the failure that matters: the container stops, the SD card dies, the Pi loses power, the host reboots into a broken state. Then nothing sends anything, and the first you know is when a light does not come on.

The fix is structural, not clever. Something outside the instance has to check it and alert you. There are two shapes of that, and the right one depends entirely on whether your instance is reachable from the internet.

Option 1: Your Instance Has a Public Hostname

This covers Nabu Casa Home Assistant Cloud, a DuckDNS or other dynamic DNS name with a port forwarded, a reverse proxy on your own domain, or a Cloudflare Tunnel.

Uptime Watch in PingKit Agent for Mac, listing four monitored URLs with the current state of each and when it was last checked. One is down.
Uptime Watch with a target down. The check itself ran on Cloudflare, so the result is independent of whether your phone or your Mac was awake.

In PingKit, open the Monitor tab and add the address to Uptime Watch. What happens then is worth knowing precisely rather than vaguely:

One URL is free, permanently. Guardian watches ten. One target is enough for a single Home Assistant instance; ten is what you want once you are also watching a NAS web interface, a reverse proxy, a status page and a personal site.

Two things to understand before you trust it. Hourly means the worst case between the failure and the alert is about an hour; this is a "tell me it broke" service, not a one-minute pager. And because it follows redirects and accepts anything under 400, a login page that answers correctly counts as up. That is usually what you want, since it proves the web server and the tunnel are alive, but it does mean Uptime Watch is telling you "the address answers", not "Home Assistant is healthy".

Uptime Watch is free for one URL, permanently, push notifications included. Get PingKit for iPhone

Option 2: Your Instance Is LAN-Only

If Home Assistant lives at a private address with no port forwarding and no tunnel, no internet-side checker can reach it, and that includes Uptime Watch. There is no way around this: a private address is not routable from Cloudflare, and it should not be.

What can see it is something on the same network. The free PingKit Agent for Mac scans the network every five minutes and keeps a device list. When the machine running Home Assistant has been unseen for fifteen minutes, the Agent marks it offline, raises a Device Offline alert and records a timeline entry. Device Offline alerts are off by default: turn the Device Offline toggle on in the Agent's Settings under Device Alerts and, until the next Agent update, set Offline scans before alert, one section below under Alert Debouncing, to 1. With PingKit Guardian that alert reaches your iPhone through your own private iCloud.

The distinction to keep straight is what each one proves. The Agent proves the host is present on the network. Uptime Watch proves the service answers an HTTP request. A host that is up with Home Assistant crashed will pass the first and fail the second, which is a good argument for using Uptime Watch even on a LAN-only setup if you can give it any public hostname at all.

Option 3: Both, Which Is What Most People Should Do

If your instance is reachable publicly, run both. They fail differently, and between them they cover the three outages that actually happen:

What brokeUptime WatchAgent Device Offline
The host lost power or crashedReports downReports offline
Home Assistant stopped, host still runningReports downNothing, the host is still there
Your home internet droppedReports down, correctly, since the service is unreachableNothing about the host, but the Agent raises Internet Down separately

That third row is the reason to have the Agent's Internet Down alert as well: it is what distinguishes "my server died" from "my broadband died", and without it every outage looks the same from outside.

Setting It Up

  1. Install PingKit on the iPhone. Open the Monitor tab.
  2. Under Uptime Watch, add your instance's public address. Give it a label you will recognise in a notification at 3am.
  3. Allow notifications when iOS asks. Without that permission there is nothing to deliver.
  4. If you have a Mac that stays on, install the free PingKit Agent, let it scan once, then turn the Device Offline toggle on under Device Alerts in its settings and set Offline scans before alert, under Alert Debouncing, to 1.
  5. Test it honestly: stop the container or unplug the host, and wait. Uptime Watch will report on its next hourly check; the Agent needs fifteen minutes of absence and then a scan at the threshold you set, so allow twenty minutes before deciding it did not work.

Honest Limits

Frequently Asked Questions

How do I get notified when Home Assistant goes down?

Use something outside the instance. If it has a public hostname, PingKit's Uptime Watch checks it hourly from Cloudflare and pushes to your iPhone when it stops answering and when it recovers, with one URL free permanently. If it is LAN-only, a Mac running the free PingKit Agent notices the host leaving the network and, with Guardian, sends that to your phone.

Can Home Assistant notify me that it is offline?

Not reliably, because the notification would have to be sent by the instance that has stopped. Internal watchdogs catch degraded states; they cannot catch a crash, a power cut or a dead SD card.

Does Uptime Watch work with a Nabu Casa URL?

Yes. Any public HTTPS address works, including Home Assistant Cloud, a DuckDNS name or your own domain through a reverse proxy. The check follows redirects and treats any final status from 200 to 399 as up, so a login page answering correctly counts as up.

How quickly will I know that Home Assistant is down?

Uptime Watch checks hourly, so worst case is about an hour. The Agent marks a host offline after fifteen minutes unseen, and then needs one scan at a threshold of 1 or three at the default, so roughly twenty to thirty minutes. Neither is a sub-minute pager, and neither claims to be.

Can I monitor a Home Assistant instance that is not exposed to the internet?

Not from the internet, by definition. A private address is not reachable from Cloudflare. Use a Mac on the same network running the free PingKit Agent, which watches the LAN and, with Guardian, delivers the alert to your iPhone once Device Offline alerts are turned on, which they are not by default.

Be told when your instance stops answering.

One URL is free, permanently. Guardian watches ten. Guardian is $2.99 a month or $24.99 a year, with a 1-week free trial.

Download PingKit for iPhone

Get the free PingKit Agent for Mac

Related Articles