Home Assistant Companion App, iOS and Android Setup Guide
This post may contain affiliate links. As an Amazon Associate we earn from qualifying purchases. Disclosure.
The Home Assistant Companion app turns your phone into both a control panel and a sensor hub for your smart home. I've been running it daily on iOS 17 and Android 14, here's everything that actually matters.
The Home Assistant Companion app is free on both the App Store and Google Play. It's also one of the most underused parts of Home Assistant, most people install it, point it at their server, and stop there. That's leaving a lot on the table.
Home Assistant setup basics
TL;DR: The HA Companion app handles remote access, push notifications, location-based automations, NFC tags, widgets, Siri Shortcuts, and Apple Watch, all free. Remote access requires either Nabu Casa ($7/month) or a self-hosted reverse proxy. App sensors like battery level and WiFi SSID can drive automations that your smart home reacts to automatically.
How Do You Set Up Remote Access?
Remote access is the first thing you need to configure, because without it, the app only works on your home Wi-Fi. As of Home Assistant 2024.6, the two main paths are Nabu Casa and a self-hosted reverse proxy.
Nabu Casa costs $7/month (or $65/year). You get an automatically managed SSL certificate, a relay subdomain at https://YOUR-ID.ui.nabu.casa, and no port-forwarding required. Setup takes about three minutes: go to Settings > Home Assistant Cloud, sign in, done. I use this myself because the maintenance overhead is genuinely zero.
Self-hosted reverse proxy costs nothing beyond your existing hardware. NGINX Proxy Manager is the most popular option for beginners, it has a GUI and handles Let's Encrypt certificates automatically. You do need a domain name (around $10-15/year) and you'll need to open port 443 on your router. More work upfront, but no recurring fee.
Once remote access is working, open the companion app, enter your external URL, and the app handles local vs remote switching automatically. When you're home on Wi-Fi, it hits your local IP. Away from home, it routes through your cloud or proxy URL.
Architecture context
Push Notifications From Automations
This is where the app earns its keep. You can send rich push notifications from any Home Assistant automation using the notify.mobile_app_YOUR_PHONE service.
A basic notification looks like this in YAML:
action: notify.mobile_app_alexs_iphone
data:
title: "Front door opened"
message: "Motion detected at 10:34 PM"
On iOS, you can attach a camera snapshot directly to the notification, it appears as an expandable thumbnail without unlocking your phone. Add data.image: /api/camera_proxy/camera.front_door to the service call. Android handles this slightly differently through data.image with a full URL.
Actionable notifications let the user tap a button that triggers another action. You define the action in your configuration.yaml under ios: > push: > categories: on iOS, or through data.actions on Android. I use this for "Did you leave the garage door open?", two buttons: Close It and Dismiss.
Dashboard customization
Location Tracking and Presence Detection
The companion app reports your phone's location to Home Assistant, which creates a device_tracker entity. This powers presence-based automations, lights on when you arrive, heating up before you get home, alarm arm when everyone leaves.
Should you use it? Honestly, it depends on your household. Single person with a predictable schedule: yes, it's fantastic. Multiple people, shared devices, guests: the logic gets complicated fast.
Two accuracy modes exist:
- Significant Location Changes, uses cell tower data, lower battery cost, updates only when you travel 500+ meters
- High Accuracy, GPS-based, frequent updates, noticeably higher battery drain
For most arrival/departure automations, Significant Location Changes is accurate enough. The 500-meter radius doesn't matter when your home is a fixed point.
The app also supports zones, you define geographic areas (home, office, gym) and HA tracks which zone you're in. Your device_tracker state becomes home, office, or not_home.
NFC Tags, Widgets, and Shortcuts
NFC Tag Actions
The app can scan NFC tags and trigger any HA action. Buy a 10-pack of NFC215 stickers for about $8 online. In the companion app, go to NFC Tags > Create Tag, assign any service call or script, write to the sticker. I have one stuck inside my front door, tapping it runs a "leaving home" scene that locks the door, sets the thermostat to eco mode, and arms the alarm.
iOS Widgets and Android Shortcuts
On iOS 16+, the companion app ships with interactive widgets for the Lock Screen and Home Screen. You can show any sensor value (temperature, door state, last motion time) or add a button that triggers a script. The widget updates every 15 minutes or when the app runs in the background.
Android supports Quick Settings tiles, you can add HA toggle buttons directly to the notification shade pulldown. No need to unlock your phone to turn off a light.
Siri Shortcuts and Google Assistant
On iOS, Siri Shortcuts connect to HA actions through the companion app. You create a shortcut, add the "Call Service" or "Fire Event" action from the HA app, record a Siri phrase, and that's it. "Hey Siri, start movie mode" will trigger whatever scene you mapped.
Google Assistant integration on Android works through the Home Assistant Cloud (Nabu Casa) or a self-hosted Google Assistant integration. Without Nabu Casa, the Google route requires an Actions on Google project, considerably more setup.
Apple Watch and CarPlay
The companion app includes a watchOS app with complications (small data displays on your watch face) that show sensor values. You can also trigger scripts directly from the watch. In my setup, I show outdoor temperature and whether the garage is open.
CarPlay support landed in the companion app in late 2023. You get a simplified dashboard on your car's display, useful for triggering "I'm almost home" automations while driving.
App Sensors, The Hidden Superpower
Every phone running the companion app can publish its own sensor data back to Home Assistant. These show up as entities you can use in any automation.
Useful app sensors include:
- Battery level and charging state
- Screen on/off state
- Wi-Fi SSID (which network you're connected to)
- Volume level
- Current activity (walking, driving, stationary) on supported devices
The Wi-Fi SSID sensor is particularly useful. When your phone connects to your home network, the SSID sensor shows your router's network name. You can use this as a secondary presence trigger, faster and more reliable than GPS for "arrived home" detection, because it fires the moment your phone connects to Wi-Fi.
Smart home overview
An automation that combines SSID + device_tracker gives you a two-factor presence check: you're "home" only when both agree. This eliminates most false positives from GPS drift in urban areas.
The companion app is one of the few pieces of the Home Assistant ecosystem that genuinely improves on every platform update. The iOS and Android teams ship new features consistently, and the sensor list keeps growing. Install it, configure remote access properly, and then spend fifteen minutes exploring the sensors section, you'll find at least two automations you didn't know you wanted.
Troubleshooting Common Problems
This guide wouldn't be complete without covering the issues people actually run into. Here are the ones I see come up repeatedly in the Home Assistant forums.
App can't connect remotely but works on local Wi-Fi. Nine times out of ten this is an SSL certificate problem. If you're self-hosting, your Let's Encrypt cert may have expired (they renew every 90 days and renewal jobs fail silently). Run certbot renew --dry-run to check. If you're on Nabu Casa, force a reconnect by signing out and back in from Settings > Home Assistant Cloud.
Notifications stopped arriving on iOS. Apple's push notification service occasionally drops devices after an iOS update. Go to Settings > Companion App > Notifications and tap "Reset Push ID." Home Assistant will register a new push token. If that doesn't fix it, check that the notify.mobile_app_ service name in your automation still matches your device name, because it changes if you rename your phone.
Location tracking not updating on Android. Samsung, Xiaomi, and Huawei devices all have aggressive battery optimization that kills background location. Go to Settings > Apps > Home Assistant > Battery > Allow Background Activity. On Samsung One UI specifically, also disable "Sleeping Apps" for the companion app. This is the single most common Android complaint and the fix is almost always the same.
App sensors showing "unavailable." This happens after reinstalling the app or restoring from backup. The device entity still exists in HA but the push token is stale. Delete the old device under Settings > Devices & Services > Mobile App, then re-open the app and it will re-register automatically.
The official companion app documentation covers every sensor, notification parameter, and platform-specific quirk in detail. It's maintained by the same team that builds the app, so it stays current with each release.
One thing most people skip: enable the "App Loaded" and "App Background" sensors. These tell you exactly when someone picked up their phone and when the app moved to background. Combined with presence detection, you can build automations that respond to "person just woke up and opened their phone," which is a much better trigger for a morning routine than a fixed time alarm.
If you take one thing from this guide, make it the sensors. The Companion app's real value isn't remote control, it's the stream of presence, battery, and connectivity data your phone quietly feeds back to Home Assistant. Turn on the sensors you actually plan to use, skip the rest to save battery, and your automations gain a sense of where you are without a single extra device on the wall.
Frequently Asked Questions
Does the Home Assistant Companion app work without Nabu Casa?
Yes, but you need to configure your own remote access. The most common approaches are a reverse proxy using NGINX or Caddy, or a WireGuard VPN tunnel. Nabu Casa at $7/month handles the SSL certificate and relay infrastructure for you, without it, you're responsible for that setup. Local access inside your home network works out of the box without any subscription or extra configuration. The app auto-detects local vs remote and switches connections automatically once both are configured.
How much does location tracking drain the phone battery?
In my testing on an iPhone 14 Pro, the background location updates added roughly 3-6% extra battery drain per day with the default "Significant Location Changes" mode. Switching to high-accuracy mode (which polls GPS more frequently) pushed that closer to 10-12%. Android behavior varies by manufacturer, Samsung One UI aggressively kills background processes, so you may need to disable battery optimization for the companion app under Settings > Battery > Background Usage Limits. The tradeoff is real; only enable high accuracy if your presence automations truly need fast response.
Can I use Siri to control Home Assistant devices?
Yes. The companion app on iOS 16.4 and later lets you create Siri Shortcuts that trigger any Home Assistant action, scripts, scenes, input booleans, or full service calls. You record a voice phrase in the Shortcuts app and it maps to an HA action. This isn't the same as native HomeKit Siri control, but it works for any entity in HA regardless of whether the device supports HomeKit. For HomeKit-native Siri commands, you'd need the HomeKit Bridge integration running separately.