I recently wrote a Feature Request calling for the ability to enable HomeKit presence detection via Wi-Fi network, as a more reliable approach than Location Services. In particular, I wanted a way of automatically unlocking our front door on connection to our home Wi-Fi.
Here’s what I’d like to see. Identify your home Wi-Fi network, and have iOS remember this. Then be able to set a variety of automations as soon as your phone connects to it. These would include HomeKit automations (unlock door, switch on lights, etc) …
In particular, I wanted to use this to activate our Danalock HomeKit smart lock, so that the front door would be automatically unlocked on reaching it. Location Services isn’t a reliable way to do this, for a couple of reasons.
GPS location can be less than 100% reliable in cities anyway, as signals are either blocked by tall buildings or bounce off them. There’s then an additional complication for those of us who live in apartment blocks …
Even 100% reliable location detection will trigger when we reach the building lobby, not when we’re at our door. Since we live on the 18th floor, and it can take a couple of minutes to get from the lobby, through the security doors, and up the elevator, that makes it unsafe to use presence detection to do things like unlock the front door.
I’m happy to report that this does indeed work.
It’s not 100% satisfactory, as the Shortcut requires authorization in the same way HomeKit does for locks – but since this request appears on my Watch as well as my iPhone, it’s easy enough to tap to okay it. Wi-Fi connects within a couple of seconds of exiting the elevator, so it’s already connected by the time I’m standing in front of the door, and giving the OK on my Watch is still faster than pulling out my keys.
My Feature Request still stands, as it would be both easier and neater to run it as an automation in the Home app. It would also be less clunky without the requirement for authorization, which is an option I’d like to see offered in the Home app. At a minimum, it should allow users the choice of whether or not it runs completely automatically. But this is a decent solution in the meantime, so thanks to Moeity and Adam for suggesting it.