One of Home Assistant greatest strengths is its ability to run completely offline. With the right setup, your automations, voice control, and device management work flawlessly even when your ISP has an outage. Here is how to build a truly offline-capable smart home.
What Works Offline by Default
- All local integrations (Zigbee, Z-Wave, local MQTT devices)
- Automations and scripts
- The Home Assistant UI (accessible via local IP address)
- Companion app on devices connected to your local Wi-Fi
- Frigate NVR and local cameras
- Local voice assistants (Wyoming/Whisper)
What Requires Internet (and How to Replace It)
Remote Access
The Nabu Casa cloud subscription requires internet. Solution: use Tailscale — install it on your Home Assistant instance and your phone. Tailscale creates an encrypted tunnel directly between devices. When you are away from home, connect to Tailscale and access Home Assistant as if you were on your local network.
Weather Data
Weather integrations pull data from external APIs. For automations that only need sun position (sunrise/sunset), Home Assistant built-in Sun integration is entirely local.
Voice Assistant
Google Assistant and Alexa require cloud connectivity. Solution: run a fully local voice assistant using the Wyoming integration. Install the Whisper add-on (speech-to-text) and Piper add-on (text-to-speech). Combine with a microphone-equipped device running Wyoming satellite software for a 100% offline voice assistant.
Presence Detection
GPS-based presence detection requires internet on the phone. Solution: use local network presence detection — Home Assistant detects when your phone connects to your Wi-Fi network. This is slightly less precise but works 100% offline.
Configuring Your Router for Maximum Offline Reliability
Consider assigning static IP addresses to all smart home devices, creating a dedicated IoT VLAN for smart home devices, and using local API integrations in Home Assistant rather than cloud integrations where available.
Testing Your Offline Setup
The real test: disconnect your router from the internet and verify that your automations still fire, your lights still respond, and your cameras still record. If everything works, you have built a truly resilient smart home.
The hidden failures nobody warns you about
“It works offline” is easy to say and harder to prove, because a few services fail quietly during a real outage — everything looks fine until an automation misfires at the wrong time. These are the four that catch people out:
- Time drift (NTP). Home Assistant syncs its clock over the internet by default. During a long outage the clock can drift, and every time-based automation — lights at sunset, “good night” at 11pm — drifts with it. Fix: point your router or Home Assistant at a local NTP source, or add a real-time clock (RTC) module if you run on a Pi. A mini PC keeps time on its own battery and sidesteps this entirely.
- Name resolution (DNS). If your devices find each other by hostname and your DNS server is external (like 8.8.8.8), that lookup can fail when the internet drops — even though the devices are sitting on the same switch. Fix: use your router’s local DNS, or assign static IP addresses to your Home Assistant server, your Zigbee/Z-Wave coordinator host, and your cameras so nothing depends on a name at all.
- Expiring certificates. If you access Home Assistant over HTTPS with a Let’s Encrypt certificate, that certificate renews over the internet. A multi-week outage can let it lapse, and suddenly the app won’t connect. Fix: keep a plain local HTTP path by IP as a fallback, so a dead certificate never locks you out of your own house.
- Anything Wi-Fi that phones home. Zigbee and Z-Wave devices talk directly to your coordinator and don’t care about the internet. But cloud Wi-Fi gadgets — a Wi-Fi plug tied to a vendor app, a cloud thermostat — often stop responding the moment they can’t reach their server, even for local commands. That’s the whole case for replacing them; see our cloud-to-local replacement guide.
A 10-minute resilience test that actually proves it
Don’t unplug your whole network — that also kills the local Wi-Fi your phone and devices use, so you’d be testing the wrong thing. You want to cut internet while keeping your local network alive. The clean way:
- Unplug the WAN cable from your router (the one going to the modem), or pull the modem’s power. Your home network stays up; only the internet is gone.
- Wait five minutes. Some failures only show up after a service’s cached connection times out — don’t judge in the first thirty seconds.
- Walk the list: Do your lights respond from a wall switch and from the app? Does a motion automation still fire? Do the cameras still record to Frigate? Does a time-based automation trigger on schedule? Can you still reach the dashboard on your local Wi-Fi?
- Check the clock. In Developer Tools, confirm Home Assistant’s time is still correct — this is the one people forget.
- Plug it back in and note anything that failed. Those are your remaining cloud dependencies to fix, one at a time.
Passing this test once a year is what separates a smart home that claims to be local from one that actually is.
The power side of “offline”
Internet outages and power outages often arrive together — a storm takes out both. If resilience is the goal, a small UPS (uninterruptible power supply) on your Home Assistant server, your router, and your Zigbee/Z-Wave coordinator keeps the whole local brain alive through short cuts. It’s an inexpensive addition that turns “works without internet” into “works without anything” for the crucial first hour. If you’re building this from scratch, our local smart home roadmap covers where it fits in the setup order.
Free guide — no signup
Trying to cut the cloud out of your smart home? This is the whole map in one place.