IOS tracking - 20 zone limit?

some months back, I took a stab at using IOS and home assistant companion on my iphone for tracking and if I remember correctly, I found that there was a limit of 20 zones. I would like to do tracking, but with more than 20 zones…and without subscribing to a service ($'s).

Is there a finite limit on zones or is there a way to define 30 or 40 zones?

I don’t believe there’s any limit, I remember someone having way more zones 20, @Mariusthvdb was that you?

There is a limit of 20 tracked regions, but the app will maintain the closest 20 zones in that list. If they’re all roughly close together you’ll run into an issue. The app adds an Event Log entry when it decides to prune the list based on location, so you can see which ones it’s dropping.

Worth noting: zones smaller than 100m turn into 3 regions because of iOS sizing limitations, so you may see extra ones pruned if the closer ones are small.

Yes that’s me:

The ‘region’ remarks by Zac are new to me, haven’t experienced that yet. Though my zones are all more than 100 M apart

confused! If define 40 stores that I visit, all more than a mile apart…will HA be notified (based on home companion on my phone) for all 40…or only for 20…and if it’s the 20 nearest…nearest to what?

Is there an alternative to track more than 20 zones?

In Node red you can add zones and I guess you could do a device_tracker.see and force a zone on the entity?
I haven’t tried it but I assume it can work

Your location and zone status in Home Assistant is tightly coupled to the location updates, not which zones are actively monitored. A monitored region for a particular zone allows the app to instantly-ish update location when entering/exiting, but your location could also update for other reasons like significant location changes (changing cell towers) and background fetch (periodically in the background). These are relatively low battery usage sources, but occur irregularly.

iOS has a maximum monitored regions per app of 20 and nothing can change this value. Each zone is comprised of either 1 or 3 monitored regions – when a zone is <100m in radius, it requires 3 monitored regions; otherwise, it is 1 monitored region.

Whenever the app does a location update, if you would exceed 20 monitored regions, it adjusts the list of monitored regions to be those closest to your current location. This reshuffling of monitored regions began in this change in July 2020. Prior to that, it likely would be nondeterministic which zones would be monitored. You can see which zones it is choosing in the Event Log in the app’s Debugging area of App Configuration.

If a location update doesn’t occur in-between a zone which is being monitored and a zone which was not actively being monitored, it won’t be able to do a more-instant zone-based location update when arriving at the unmonitored zone. I believe this to be unlikely, unless your zones are really closely equidistant and selecting the ‘closest’ ones isn’t viable.