Short Answer: Check the Remote Path, the Phone Permissions, and the Tracker Assigned to the Person

If a Home Assistant person or device_tracker is stuck at Home or Away, the fastest diagnostic order is simple: make sure the companion app can still reach Home Assistant away from your LAN, make sure the app has true background location access, make sure the right device tracker is assigned to the person, and make sure the location sensors and zone tracking are actually enabled.

If the companion app's own location screen looks correct but the person entity is wrong, the issue is usually tracker precedence or a stale extra tracker. If nothing updates until you open the app, the issue is usually remote access, permissions, or battery and data restrictions on the phone.

Tara's presence rule: get one phone working cleanly end to end before you add router trackers, BLE trackers, or clever occupancy logic on top of it.

Why This Question Keeps Coming Up

This is not a niche one-off problem. A Home Assistant Community thread on March 29, 2024 described companion app location updating while the person entity stayed stuck at home. Another thread on September 11, 2024 showed an Android phone appearing to update correctly while the wrong tracker or person mapping kept the state wrong. On February 4, 2026, an iPhone thread repeated the same question almost verbatim: the phone was always reported as home even though location permissions looked correct.

GitHub issues reinforce that not every failure is user error. An iOS app issue opened on February 23, 2024 reported location updating in the app but not making it into Home Assistant correctly, and a Home Assistant Core issue opened on March 6, 2025 described the device_tracker staying Home even when manual location updates clearly showed the phone away from home. Reddit threads from the last year kept describing two homeowner-visible symptoms: presence only updates when the app is opened, or arrival is recognized several minutes too late to feel reliable.

The practical takeaway is useful: there are real bugs sometimes, but the repeating causes are still remote connectivity, permissions, throttling, or tracker design. Eliminate those first so you know whether you are dealing with configuration or an actual regression.

How Home Assistant Decides If You Are Home

Home Assistant's Person integration does not just blindly trust one source. It merges the device trackers assigned to that person. The official docs say the state is chosen in this order:

  1. If a stationary non-GPS tracker such as a router or Bluetooth tracker says home, the most recently updated one wins.
  2. If there are GPS trackers, the most recently updated GPS tracker wins.
  3. Otherwise, the latest tracker with state not_home wins.

This is the most surprising part of Home Assistant presence for many people. A wall tablet, old phone, router tracker, or BLE tracker that never really leaves the house can keep a person at home even when the companion app on the actual phone is reporting the right GPS location.

Home Assistant dashboard showing rooms, devices, and map-based context
Presence problems usually live in one of three layers: the phone app, the device tracker entity, or the person entity that merges multiple trackers.

1. Check the Exact Entity That Is Wrong

Before changing settings, figure out whether the broken layer is the phone app, the device_tracker, or the person.

  • Open Settings > Devices & services > Mobile App and select the phone that is supposed to be tracked.
  • Find the device_tracker entity created by that phone.
  • Compare that tracker's state to the matching person entity.

If the phone's own device_tracker is wrong, fix the mobile app path first. If the phone tracker is correct but the person is wrong, fix the assigned trackers and precedence first. The Android community thread from September 11, 2024 is a perfect example: the app appeared to be updating, but the debugging advice was to make sure the user was looking at the correct device tracker entity and not a different one attached to the person.

If you use multiple Home Assistant servers in the companion app, also confirm the right server has the location sensors enabled. The official troubleshooting page explicitly calls that out because it is easy to think a phone is updating when it is actually reporting to a different server entry.

2. Make Sure the Phone Can Reach Home Assistant Away From Home

Home Assistant's companion troubleshooting starts with a point many people underestimate: enable remote access for your server. If the phone cannot send updates when it is off your home Wi-Fi, Home Assistant will just keep the last successful state longer than you expect.

The current getting-started docs say the app can be set up from any location if your server is configured for remote access, and they explicitly recommend Home Assistant Cloud for secure remote access. The same docs also warn against relying on Trusted Networks for the app login because that can make the app behave as if it only works on the trusted network.

There is another modern gotcha here. The companion app's connection-security documentation says that starting with version 2025.11, if you use an unencrypted internal URL and choose Most secure, background activity is blocked whenever a secure connection cannot be established away from the home network. That is the correct behavior from a security perspective. It also means a presence setup based on a local HTTP URL and no working secure remote path can look "random" while actually being blocked by design.

The quick homeowner test is still useful: turn off Wi-Fi and see whether the app can still load your Home Assistant instance and update the device. A 2022 community reply pointed directly to this check, and it remains one of the fastest ways to tell whether the problem is networking rather than GPS.

3. Fix Permissions and Phone Throttling

Once the remote path exists, make sure the phone is allowed to do its part in the background.

iPhone and iPad

The current companion docs say iOS needs location permission set to Always and Precise for background function to work correctly. During onboarding, the docs describe the practical path as selecting Allow While Using the App first and then Allow Always on the follow-up prompt.

The iOS community threads are useful because they show how this fails in real homes. Multiple replies in the long-running "always home or away" thread reported phones silently ending up back on While Using, which immediately makes background presence unreliable. Also check Background App Refresh while you are there.

Android phones

The official troubleshooting checklist is blunt here:

  • Set location permission to Allow all the time.
  • Keep Precise location enabled when Android offers it.
  • Make sure the phone's location service is on.
  • Disable battery optimizations and other manufacturer power-saving modes for Home Assistant.
  • Allow unrestricted data if Data Saver is on.

If you did not install from the Play Store, the troubleshooting docs also say to verify you are using the full Android flavor. And if you expect driveway-fast updates, calibrate your expectations a bit: the Android location docs say background updates typically arrive every 1-3 minutes, though they can be more frequent during navigation.

4. Verify Location Sensors and Zone Tracking

Presence can also fail because the companion app is installed correctly but the actual tracking sensors are not enabled.

The current troubleshooting page says to enable these companion sensors:

  • Background location
  • Location zone
  • Single accurate location

On Android, the location docs also say Zone Based Tracking must be enabled in the app configuration. On iOS, the app sets up geofences for all zones in your Home Assistant configuration and sends enter and exit notifications automatically.

If you are debugging, simplify aggressively. Use the default Home zone first. If you created extra zones, renamed things, or disabled iOS tracking with track_ios: false in a zone definition, you can end up debugging the zone model instead of the phone.

5. Read Location History Before You Rebuild Anything

The official troubleshooting docs recommend enabling Location history under Settings > Companion app > Troubleshooting > Location tracking. That gives you the last 48 hours of location updates the app received.

This is the most important debugging branch:

  • If the history is sparse or empty, the problem is usually permissions, battery, or OS throttling.
  • If the history shows updates but they fail to reach Home Assistant, the problem is usually the remote path, connection security, or webhook failures.
  • If the history shows successful updates and the device_tracker changes correctly, but the person is still wrong, the problem is usually tracker precedence or a stale tracker attached to the person.
  • If everything looks correct but the server state is still wrong, you may be hitting a real bug and should compare your behavior against recent GitHub issues.

The app's event log is also worth checking because community debugging threads frequently surface webhook or update errors there even when the map view looks fine.

6. Keep the Person Entity Simple

The cleanest presence stack for most homeowners is not the busiest one.

A good starting point is:

  • one phone-based GPS tracker per person
  • optionally one secondary home-confirmation tracker only if you understand the precedence rules
  • no always-at-home tablets, old phones, or test devices attached to the person
Symptom Likely cause Check first
The phone app map looks right, but the person is still home A stationary tracker or stale extra tracker is winning precedence Open the person and remove tablets, router trackers, or old phone trackers you do not trust
Presence only updates when the app is opened Remote path failure or background restrictions Test away-from-home access, then review permissions, battery settings, and Data Saver
Android is always home Location sensors or zone-based tracking are not fully enabled Check Background location, Location zone, Single accurate location, and the zone-tracking toggle
Logs show exits and enters, but Home Assistant still says home Tracker merge issue or a real regression Compare the exact phone tracker to the person entity and then check current GitHub issues
Arrival is recognized minutes late Normal mobile background cadence or a Wi-Fi-only design Use a grace period and stop expecting front-door precision from a background phone tracker alone

People often make presence worse by adding too many "helpful" signals. Router trackers and Wi-Fi presence can be excellent supporting signals, but because stationary home trackers take priority over GPS in the Person docs, they can also be the reason you never seem to leave.

7. Make Your Automations Resilient

Even a healthy phone-tracking setup is still a background mobile system, not an industrial badge reader. Build automations accordingly.

  • Use the person entity for most household home and away logic after you have cleaned up its trackers.
  • Add a short grace period for arrivals and departures so a late update does not flap the home state.
  • Use secondary confirmation for safety-critical actions such as locks, alarms, or garage doors.

For comfort automations such as lights, climate, and media, a one- to two-minute buffer is usually reasonable. For security automations, do not let a single delayed or missing phone update become the only thing that unlocks, disarms, or opens anything important.

If you want to refine a setup that is already healthy, Home Assistant's notification-command docs support advanced options such as requesting a location update from the phone, and on Android they also support temporarily switching high-accuracy background mode. Those are refinements, not substitutes for fixing connectivity and permissions first.

Do not design locks, alarms, or garage access around one flaky phone edge. Presence is a great comfort and context signal. It is a weak safety signal unless you deliberately confirm it.

Tara's Take

A Tara-style local home treats phone presence as one layer of context, not the whole truth. The reliable pattern is a clean remote path, one clearly owned phone tracker per person, sane grace periods, and room-level sensors for what happens once someone is actually inside.

That approach is less magical, but it is far easier to support. When presence is flaky, fix the architecture before adding more helpers, more trackers, or more automations that depend on bad data.

If this presence issue is really a remote-access, network-design, or whole-home reliability question in disguise, these guides help with the next step.

FAQ

Do I need Home Assistant Cloud for phone presence tracking to work?

No. You do need a reliable secure way for the phone to reach Home Assistant when it is away from home. Home Assistant Cloud is the easiest supported path, but a well-maintained HTTPS reverse proxy or VPN can also work.

Why does my person stay home even when my phone tracker changed?

Because Home Assistant merges trackers. The official Person docs say stationary trackers that report home take priority before GPS trackers. If a router tracker, tablet, or stale home-only tracker is attached to the person, it can pin the person at home.

Why is arrival sometimes delayed by a few minutes?

Because presence from a phone is a background mobile workflow, not constant live telemetry. The Android docs say background location updates typically arrive every one to three minutes, and battery or data restrictions can extend that.

Can I use Wi-Fi or router presence by itself?

You can, but it is better as a confirmation that someone is home than as your only away signal. Wi-Fi and router tracking can be late to drop, can miss sleeping phones, and can confuse the Person merge if you attach too many trackers.

Should I arm alarms or unlock doors from one phone tracker?

Usually no. For lights and thermostat changes, phone presence is great. For locks, alarms, and garage doors, use confirmation, delays, or a more deliberate arrival flow.