Working LOCAL iPhone Presence?

Does anyone have a working solution for local (non-cloud) iPhone binary home/not_home presence?

Background: I have two houses, one is in the city where there is ample cellular signal, and the other is in a rural location with zero cell signal and I only have internet via Starlink (so it isn’t always 100% connectivity). For the city house, I find the presence capabilities of the official HA mobile app to be more than sufficient. For the rural house, while delayed, not_home presence updates are fine (driving on the highway where there is cell signal triggers a “significant location change”), but I haven’t figured out a reliable solution to detect when someone arrives home.

What I have tried:
iphonedetect - Arrivals work ok, but seems to bounce frequently and sticks in the ‘home’ state an hour after the device has left the network.
ping_arp - Also not reliable

Have also tried augmenting with HomeKit presence automations to send WebHooks, which also aren’t reliable due to lack of connectivity at the geofence perimeter.

Is anything working these days to to local detect the presence of iOS devices?

Bluetooth works well. I use monitor rather than the built in Bluetooth integration, but any Bluetooth solution should work well.

With iOS? I thought the issue with BT and iOS devices is that Apple in their infinite wisdom randomizes the Bluetooth MAC, so there is nothing consistent to track?

Works fine, you can pair it to monitor and get a static MAC address.

1 Like

I make use of the “homekit” integration. Have 2 switches “Peter” and “Kay”.
Those switches are in homekit, so I can see them on homekit on our iPhones.

On homekit in the iPhone I created automatons to leave and arrive “home” and action switch on or off the switch. Works perfect. You can create all kind of automations in HA then

1 Like

Depending inf your router supports it, you can turn off MAC randomization by Wifi network (Turn off if connected to ‘my’ network) and then use a presence detection based on existence of your iPhone’s MAC on your Wireless network.

I use Unifi gear and the integration supports device trackers for connected devices by default. The manner of how you ID connected devices will be dependent on your specific gear.

I have Cisco APs and this was going to be my next avenue of exploration. Do you find the integration accurately reflects when devices drop off the network in a reasonable amount of time? I think I need to play with the user idle timeout on my Cisco infrastructure because clients stay authenticated long after they are gone.

I’ve been doing this too, but using webhooks. Works great at my city house, the problem is the rural house where when the HomeKit automation is triggered it is usually at a point where there is no WiFi or cellular.

How did you do it with webhook? Since ios 16 sryimes the iPhone are put.of range but still.on wifi so homekit.thinks we left the house… But we’re still there…

Yeah, I’ve noticed some oddities with HK as well, so I actually took it out of my people entities. Here’s how you can do with webhooks:

This is exact same procedure now. When create a home automation it’s totally same screens as when you create automation from homekit app on iPhone.

I use the built-in Bluetooth tracker and it looks good:

Note that BLE is useless in my case, but Bluetooth is OK.

I’m running iOS 16.1 (beta), but it was working with 16.0, I think.

1 Like

What is “monitor” how do i find that? Nothing is showing up in my bluetooth config in integrations.