How to Enable Tracking in the Home Assistant Mobile App

The Home Assistant mobile app does a lot more than just control your smart home devices remotely β€” it can also send real-time data back to your Home Assistant instance. Location tracking is one of the most powerful features in that direction, turning your phone into a sensor that your automations can actually use. Getting it working correctly, though, involves a few moving parts across both the app and your Home Assistant setup.

What "Tracking" Actually Means in Home Assistant

When people talk about enabling tracking in the Home Assistant app, they're usually referring to device tracker functionality β€” specifically, the app reporting your phone's GPS location back to your Home Assistant server. This creates a device_tracker entity for your device, which can reflect states like home, away, or a specific zone name you've defined.

Beyond location, the mobile app can also report other sensor data: battery level, network connection status, activity state, and more. These are handled through the companion app sensors, which are separate from but related to location tracking.

Prerequisites Before You Enable Tracking πŸ“±

Before diving into settings, a few things need to be in place:

  • Home Assistant is installed and accessible β€” either locally or via Nabu Casa/remote access
  • The Home Assistant Companion App is installed β€” available for both Android and iOS
  • The app is logged in to your Home Assistant instance
  • Location permissions have been granted to the app at the OS level β€” this is a separate step from in-app settings

Location permissions matter more than most people realize. If your phone's operating system hasn't granted the app location access, no amount of in-app configuration will make tracking work.

Step 1: Grant Location Permissions at the OS Level

On iOS

Go to Settings β†’ Privacy & Security β†’ Location Services, find the Home Assistant app, and set it to "Always". Choosing "While Using" will limit background tracking significantly. iOS may also prompt you to allow precise location β€” enable this if you want accurate zone detection rather than approximate positioning.

On Android

Go to Settings β†’ Apps β†’ Home Assistant β†’ Permissions β†’ Location, and select "Allow all the time". On Android 10 and later, background location access requires this explicit "all the time" permission. Some Android manufacturers (Samsung, Xiaomi, OnePlus, etc.) also have battery optimization settings that can kill background app processes β€” you'll want to exempt Home Assistant from those separately.

Step 2: Enable Location Tracking Inside the App

Once OS-level permissions are set, open the Home Assistant app and navigate to:

App Settings (gear icon or sidebar) β†’ Companion App β†’ Location

Here you'll find toggles for:

  • Enable Location Tracking β€” the master switch
  • Background location updates β€” allows the app to report location even when closed
  • Significant location change detection β€” a lower-power mode that triggers on major position shifts
  • Zone-based entry/exit β€” fires updates when you enter or leave a defined Home Assistant zone

Toggle these on based on how frequently you need updates. Enabling all of them gives you the most reliable tracking but has more impact on battery life.

Step 3: Verify the Device Tracker Entity in Home Assistant

After enabling tracking on the app side, head to your Home Assistant instance:

  1. Go to Settings β†’ Devices & Services
  2. Find the Mobile App integration
  3. Select your device β€” you should see a device_tracker entity listed

You can also check Developer Tools β†’ States and search for your device name to confirm the entity exists and is reporting a state.

If you've defined Zones in Home Assistant (Settings β†’ Areas & Zones), the tracker will use those zone names as states when your device is within range. The default home zone is based on the coordinates you set during Home Assistant's initial setup.

What Affects Tracking Reliability

Not all tracking setups behave the same way. Several variables shape the experience:

FactorImpact
iOS vs AndroidiOS has stricter background process limits; Android behavior varies by manufacturer
Battery optimization settingsAggressive power-saving modes can delay or stop location updates
Home Assistant accessibilityExternal access (via Nabu Casa or reverse proxy) is needed for tracking away from home
Zone radius sizeSmaller zones may cause missed entry/exit events depending on GPS accuracy
Update frequency settingMore frequent updates = better accuracy, higher battery drain

Sensor Tracking vs Location Tracking

It's worth separating these two concepts. Location tracking is what creates the device_tracker entity. Sensor tracking β€” enabled separately under the same Companion App settings β€” reports things like battery level, Wi-Fi SSID, and screen state as individual sensor entities.

Both are useful for automations, but they're controlled by different toggles. You can have one without the other, and many users enable sensors without enabling full location tracking.

Why Tracking Might Not Work After Setup

Common reasons tracking fails even after enabling it:

  • "While Using" permission instead of "Always" (most common on iOS)
  • Background App Refresh disabled on iOS
  • Battery optimization killing the app process on Android
  • Home Assistant not reachable externally when the device is away from home
  • Webhook URL mismatch β€” if you've recently changed your Home Assistant URL, the app may be sending updates to an unreachable address (fix this by re-registering the app or updating the webhook URL in app settings)

How Different Setups Land Differently πŸ—ΊοΈ

A user running Home Assistant on a local network only, with no external access configured, will find that location updates only arrive when the device is on the home Wi-Fi β€” the moment they leave, the app has nowhere to send data. Someone using Nabu Casa or a properly configured reverse proxy gets continuous updates anywhere with an internet connection.

Similarly, an iPhone user who hasn't explicitly set location to "Always" and enabled precise location will see delayed or missed zone triggers, while an Android user who's exempted Home Assistant from battery optimization typically gets faster, more consistent updates.

The reliability and usefulness of tracking scales directly with how much of the supporting infrastructure β€” remote access, OS permissions, power settings β€” is configured alongside it. What works well for one setup may behave very differently on another, depending on the combination of device, OS version, network access, and Home Assistant configuration in play.