IOS Companion App Location Updates are Really Slow (or Latest Proximity Integration is Broken)

Hi.

I’m not exactly sure whether this post belongs in the Companion App section or the Proximity integration section, so I’ll start here and the moderator can move it where he/she deems appropriate.

I have an automation that notifies me whenever I enter my housing subdivision. The GeoFence is set for 400 meters (roughly 1200 feet) from the House. Originally, I was using a proximity sensor ("proximity.xxxx’), that was defined in my configuration file. It was set to notify me whenever I crossed the GeoFence . This was working great…until the proximity integration changed, and that proximity sensor was deprecated.

Using the new proximity integration, the automation is set to notify me when ‘sensor.home_xxxx_distance’ is now below 1600 feet. (No idea why it suddenly started to use feet instead of meters, but that’s irrelevant.) Given this new GeoFence is set WAY beyond my subdivision’s boundary, it should trigger well before I arrive at the subdivision…except it doesn’t. Now, it only seems to trigger just before I drive up my driveway. So, something has changed.

While I’m reluctant to instantly blame the new proximity integration, the change in behavior is suspiciously coincidental. Logically, it seems like the phone not reporting location changes in a timely manner, except that it was working previously, and nothing has changed with those settings (unless an IOS update subtlety changed something in the background).

The Companion App is running on an iPhone 14 Pro, under IOS 17.3.1 (the latest as of mid-Feb 2023). Use Exact Location is enabled, and I’m using the Nabu Casa cloud services.

Any thoughts on what may be causing this, or has anyone else seen a similar change in behavior?

Started testing HA on 2020, played with test devices like iPhone 5S, 6S+ (iOS 12.x), iPad Air 2 (iOS 15.x).
Observed that very often data from Mobile App for these devices are not updated for a long time.
Usually had to open Companion App on a device to see an update in HA; sometimes this did not help - had to press “update location” in the App.
And sometimes the link between HA & Companion App like “wake up” and update data - even when I do nothing.
“Background refresh” is ON on devices. Probably a reason of this is that devices are old.
This was on 2020, same I see on 2024.
Means - for some devices location updates were never OK.

Thanks.

I’m just running a test. I modified my Home zone to have a radius of 400 meters. I then created a new automation to notify my phone once I ‘arrived’ at (inbound to) the Home zone. (This was the approach I used in the past and worked reliably before I switched to using proximity.)

If I still get delays with this, then I’ll chalk it up to the phone app not updating a timely manner. But, if I start to get notifications when just I enter the subdivision again, then it will point to a problem with the new proximity integration.

Maybe the phone DOES notify at the correct location, but the new proximity sensors have a timing issue. Who knows? (I wish there was better logging for capturing the time the phone thinks it’s crossed the threshold and updates its location, when the sensor detects that and kicks off the automation, and then when the notification actually reaches my phone. That would make troubleshooting so much easier.)

More to follow once I actually do another journey off the subdivision.

1 Like

I’m very interested in what you find out. There is definitely a long delay in updating proximity. I have an iPhone and Apple Watch. Both update pretty quickly via Bermuda BLE. Proximity takes forever. Doesn’t matter whether I’m using the companion app or Chrome on a Windows laptop.

I never see anything other than “Stationary” for direction of travel or nearest direction of travel.

I was hoping to use Proximity to unlock my front door when heading “Toward” and other conditions. I figured that would differentiate from just relying on Bluetooth which I don’t think can differentiate whether someone is in range outside or inside or from which direction

Hey Dieter.

Sorry for the delay in getting back to you.

So, I’ve abandoned HA’s native proximity as it is so unreliable; well, at least the Companion App side is. Instead, I found fairly reliable approach using native IOS/Apple Home app approach. Basically, I have done the following (in order):

  1. Create a helper ‘toggle’ switch in HA, named “Arriving on Subdivision”. If you have the HA Homekit integration installed, this should be reflected in the Apple Home app as a (virtual) switch.
  2. Create a HA automation that detects when the state of this changes from ‘Off’ to ‘On’, which then makes the appropriate announcements on my home Sonos speakers (using Chime_TTS integration). This flag is reset to Off once the automation has completed, so it is ready for the next time
  3. In the IOS home app on my iPhone, I created an automation for when somebody (me) arrives home. When you click on the ‘home’ location it asks you to either use the default Home, or search on an address; I use the address of the house opposite - just in case my home address causes a conflict. Once you do that, you can then set a radius - I set mine to 1200 feet. Save the automation. Finally, the action for the automation should be to turn ON the virtual switch (Arriving at Subdivision). Caveat: If you’re setting this up for a second person, then you need to configure the Apple Home automation on their phone, not yours or within Apple Home running on a Mac, as it won’t accept it.

The results seems to be that the iPhone recognizes when you’re within 1200 feet of the specified address and turns on the virtual switch. HA recognizes this and triggers the (HA) automation to make the announcements.

This has worked reliably for me (and my wife) for a few weeks now.

FYI, Gary (?) has created a fairly reliable integration called iCloud3, which basically does something similiar using Apple’s ‘Find Me’ technology. It works fine, but the integration requires access to your iCloud account. Sometimes (frequently), I get warnings that somebody (i.e. the integration) is accessing my iCloud account, which can be annoying/disturbing. The approach above doesn’t have that issue, as it uses native Apple Home automation and HA automation, but only links them through the Homelink integration.

I originally had automations set up using various zones for leaving and arriving home. I’d created zones approximately 1/4 and 1/2 mile from my house, so when I entered or exited these zones (i.e., crossing the zone’s boundary), things would happen depending on whether I was coming or going. For the most part, it worked pretty well, but occasionally, it would not while my phone was transitioning from my home network to a remote cell network (at least, that is my best guess on when I would/would not work).

When I discovered the proximity integration, I switched everything over to it, utilizing its features rather than zones, as the zone would only work if it had a reliable connection to the HA at the moment I crossed the zone’s boundary, whether entering or exiting. Unfortunately, I have noticed, just as everyone else, that it is slow to update my position to the point where the automations specific to me returning home are worthless (these never work). Automations specific to me leaving work but are significantly delayed. I am also using iOS (iPhone 16). What is nice about the proximity is it works whether I have just left the 1/4 mile radius or 10 miles later, whereas using the zones, it would only work if it knew exactly when I crossed the line of the zone, i.e., if I’m already outside the zone when it reconnects to HA, it won’t work.

What is even more peculiar is that I tried changing the returning home automations back to a zone (crossing the border of the zone, entering it, since it worked before, rather than approaching, as it is slow to respond). Now it is also slow to respond, just like the proximity integration, and does not work where it used to. I’ve considered removing the proximity integration altogether to see if it’s as quick as it once was before I installed that integration, but haven’t tried that yet. What I am saying is the proximity integration seems to have slowed down all my location based automations.

I’m still not convinced that the problem is with the Proximity integration, but instead lies with the Companion App not updating its position quickly enough. I’ve had this conversation many times on the past and still cannot understand why the authors of this app cannot implement more timely tracking and reporting of position. (There are plenty of other IOS & Android location tracking apps that do this; for example, we use one in our SAR teams where the deputy can track us in real-time on a map.)

I’ve completely abandoned the Proximity integration in favor of the Homekit solution listed above, and it’s worked flawlessly for me. However, I do understand it might not have all the features that you require.

I agree. I too can track someone I share locations with driving down the street via my iOS Find My app, but HA refreshes much slower or larger intervals.

I have also been experimenting with the iCloud 3 integration, and it seems to work better than proximity, but still with a noticeable delay. I have found that my original method, which involves using different zones at varying radii from my home, is the most reliable, and I think I’ll be switching back to that.

I believe the reason for the difference is that the proximity integration relies on the device reporting its updated GPS coordinates to the server. The server then does the calculations to determine the automations, and as noted in this thread, the device is slow to update position data. However, if I understand the zone method I have previously used correctly, the iPhone triggers events when you enter or exit a zone. If you go into the location settings of your iPhone companion app (Settings > Companion App > Location), scroll down the list, and all zones (even across multiple HA servers, if you run multiple) are listed and tracked. I believe that when you enter or exit the zone, the companion app triggers that event and immediately updates the server. I’ll be moving back to this method as I had far more success using it.

I wish they could integrate instantaneous location updates because that would make the Proximity integration much more useful. It has some great entity/sensors that could be useful in so many automations if only it had timely and accurate data.

According to the companion app docs, this seems to be an Apple quirk.
Like you just discovered, setting different zones seems to be the only way to work around it, but you might want to set your location tracking level to exact to see if it makes things better.

Without sounding like I’m rubbing it in, the above issue is resolved in Android by using High Accuracy mode and other location settings.

Thanks for the link. That does explain things.

I do have it set to exact, or in iOS, “precise.”

Yea, I know Android works better with this. However, for a multitude of reasons changing to an Android phone isn’t an option.

Or, a way the app is coded.

If it were truly a restriction that IOS enforces, then it would apply to every IOS app. As previously mentioned, there are a number or apps out there where this does not seem to be the case (e.g. AllTrails, CalTopo, etc.). It looks like these apps get the GPS coordinates directly and (what appears to be, almost) real-time.

I’ve also found the native Homekit solution to be responsive, too. (Gary Cobb’s iCloud-3 works on a similar basis,using Apple’s Find My approach. The issue with this is that Gary’s solution needs to log into your Apple Cloud account, and sometimes - too frequently for me - this ‘connection’ seems to get lost or confused, and you need to go through the registration process again.)