Unreliable home zone detection in iOS

Not sure when it started, but for the past few weeks we’ve been having daily problems with our phones getting detected in the home zone. It’s making a mess of our existing automations we’ve been running for years.

It’s as if HA struggles to detect our iOS devices in the home zone. When we are genuinely home, it only detects that state about 70% of the time. When it does not it thinks our devices are several hundred feet outside of that zone. When I check GPS data in Find My, it shows is as being right on top of our house. We’ve already been through all of our settings on our phones many times. Everything for high precision is set.

This seems to have started when we upgraded our iPhones from 13 to 15, but not sure. What do we have to do to restore precision with our location in HA? Again, iOS always shows our location with high accuracy. Why is HA not relaying that?

I also find it frustrating that I cannot modify the home zone. So to workaround the problem, I need to create a new zone and then update all automations to point to the new one.

Have you tried dragging your home icon on the map? Does that work?

You can modify the home zone. You just need to use yaml.

# Example configuration.yaml entry
zone:
  # This will override the default home zone
  - name: Home
    latitude: 32.8793367
    longitude: -117.2474053
    radius: 100
    icon: mdi:account-multiple
1 Like

Hello,
We have been having the same problems for a while now. My Iphone 6s with IOS 15.x.x is recognized perfectly and the position is updated. The housekeeper’s Iphone 12 pro with IOS 17.1.x is not tracked correctly. However, everything is tracked correctly in the HA companion app under Location / Location history. It seems that the tracking data is just not being sent to HA completely and promptly. However, this problem already occurred with her under IOS 16.x.x (the latest versions).
I have now installed ICloud 3 and after setting the update period to 2min your phone is correctly displayed in HA.
So it seems to be due to the data transfer.

It’s completely locked down for that zone. Figure it’s a built-in thing. @phio made a suggestions on how to modify it in YAML which I will try to do as well.