WiFi presence sensing issue

C7 running 2.3.8.139

iPhone XS Max running 17.4.1

I am aware of the variety of presence sensing apps, but am trying to figure out why this doesn’t work.

Both iPhone IPs are set to Manual in the phone settings. The subnet mask is correct. The MAC address is correct for both phones. DHCP reservations for both phones set in the router. The driver is ‘iPhone WiFi Presence Sensor’. The phone IPs are correct in Hubitat.

When both of us arrive at home, we can get on our WiFi with the phones, but sometimes one or the other phone will have WiFi access yet HE states it is not present.

Again, I am not looking for alternate presence sensing apps. I just would like to know why this doesn’t work reliably. Phones are home, WiFi says they are home but HE doesn’t agree sometimes. Even waiting 30 minutes doesn’t change the status.

Best I can think of would be to turn on any logging for the HE device and see what comes out. From what I can see in the driver it should be checking every minute....

Be sure to set "Private WiFi Address" to off.

Settings: WiFi: Your WiFi. Then scroll down and turn off "Private WiFi Address"

What that does, and it's on by default, is to randomize the MAC address, which means your phone seems to hop to different IP Addresses.

You want that ON by default everywhere but your Home WiFi so that the protection if offers is working when you're on a public WiFi.

HE stated the phone was not present, but it was within 10 feet of the router, and the WiFi symbol on her phone was present. I told her to open settings and tell me the MAC address. As soon as she opened that page, the presence status changed to present.

Here is a snippet of the log showing the change from UNSUCESSFUL to SUCCESSFUL when she opened the WIFi settings page on her iPhone.

dev:1092024-04-21 12:15:07.103 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:15:07.018 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:14:07.236 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:14:07.209 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:14:07.013 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:13:07.101 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:13:07.082 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:13:07.013 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:12:07.464 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:12:07.445 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:12:07.135 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:11:07.190 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:11:07.165 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:11:07.015 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:10:07.317 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:10:07.297 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:10:07.014 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:09:07.183 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:09:07.083 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:09:07.012 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:08:07.211 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:08:07.186 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:08:07.013 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:07:07.240 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:07:07.221 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:07:07.014 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:06:07.213 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:06:07.194 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:06:07.013 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:05:07.128 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:05:07.102 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:05:07.018 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:04:07.183 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:04:07.164 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:04:07.012 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:03:07.087 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:03:07.067 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:03:07.018 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:02:07.145 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:02:07.119 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:02:07.012 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:01:07.313 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:01:07.294 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:01:07.012 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 12:00:07.481 PMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:00:07.461 PMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 12:00:07.184 PMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 11:59:07.226 AMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 11:59:07.200 AMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 11:59:07.012 AMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 11:58:07.130 AMdebugLynn’s iPhone is ONLINE

dev:1092024-04-21 11:58:07.127 AMdebugLynn’s iPhone : httpGetCallback(The following 'connection refused' result means that the hub was SUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 11:58:07.108 AMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"Connect to 192.168.0.183:80 [/192.168.0.183] failed: Connection refused (Connection refused)","errorData":null}, data)

dev:1092024-04-21 11:58:07.012 AMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 11:57:19.360 AMdebugLynn’s iPhone : httpGetCallback(The following result means that the hub was UNSUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"No route to host (Host unreachable)","errorData":null}, data)

dev:1092024-04-21 11:57:19.342 AMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"No route to host (Host unreachable)","errorData":null}, data)

dev:1092024-04-21 11:57:07.013 AMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 11:56:41.640 AMdebugLynn’s iPhone : httpGetCallback(The following result means that the hub was UNSUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"No route to host (Host unreachable)","errorData":null}, data)

dev:1092024-04-21 11:56:41.620 AMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"No route to host (Host unreachable)","errorData":null}, data)

dev:1092024-04-21 11:56:29.296 AMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 11:56:19.368 AMdebugLynn’s iPhone : httpGetCallback(The following result means that the hub was UNSUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages":,"status":408,"errorMessage":"No route to host (Host unreachable)","errorData":null}, data)

dev:1092024-04-21 11:56:19.342 AMdebugLynn’s iPhone : httpGetCallback({"headers":null,"warningMessages":,"status":408,"errorMessage":"No route to host (Host unreachable)","errorData":null}, data)

dev:1092024-04-21 11:56:07.013 AMdebugLynn’s iPhone .refresh()

dev:1092024-04-21 11:55:22.465 AMdebugLynn’s iPhone : httpGetCallback(The following result means that the hub was UNSUCCESSFUL in discovering the phone on the network: {"headers":null,"warningMessages

:point_up: This is definitely one of the most important steps. After ,making thjis change, be sure to go back into your router's DHCP settings to reserve the IP address for the correct MAC address of the iPhone.

Something to be aware if is just how aggressively iPhones turn off their WiFi radios when the device is 'sleeping'. Thus, the HE hub will believe the device is away, even while sitting in your house. To avoid this, there must be a significantly long timeout configured to prevent these false readings.

Make sure you set the "Timeout Minutes" settings to something like at least 3 minutes. If you've reduced this, that may well be causing the issue.

If you've disabled the "Private WiFi Address" and have the timeout set to at least 3 minutes, maybe try increasing it to something like 5 minutes to see if that helps?

Personally, I use Apple Home/HomeKit to handle my geofence based presence detection these days. It has been 99.9% reliable. There are threads that details exactly how to set this up, assuming you have an Apple HomePod or Apple TV device to act as an Apple Home Hub device on your network.

2 Likes

Probably not the cause of your issue.....

These should be an either/ or situation
If you have DHCP reservations, you should not manually assign IP on the phone and vice versa.

2 Likes

It was set to 1 minute on both phones in HE. Changed it to 5 minutes. Seems to be reporting correctly more often.
Thanks for the advice.

1 Like

Networking and cooking are two of my weak points.

If I change the iPhone to Auto instead of Manual, won’t the phone’s IP change from time to time? Then when my router is looking for the phone’s IP, it won’t be reserved because it changed?

If you have DHCP Reservations on your router AND you have Private WIFI address turned off (As stated by @csteele above) on your phone for the wifi connection, then no, it will not change. DHCP Reservations are set by the MAC address of your phone. This is why turning off Private WIFI is important. That uses the phones actual MAC as appposed to a random/private MAC. This is how DHCP reservations work. This is the preferred method for those who have a weak point of networking as you mentioned. (NOTE: You should have a reservation for your hub as well as spelled out in the getting started - Registration and Setup documentation - If you look, it uses the term ALTERNATIVELY in suggesting EITHER DHCP Reservations OR Manual/Static IP)

Registration and Setup - DHCP Reservation

Registration and Setup | Hubitat Documentation

Using manual means that you have to get ALL of the network subnet and DNS settings correct for everything to work correctly. If Networking isn't your strong point, this isn't as straightforward as just using reservations. Getting the manual settings wrong, you risk odd situations just like what you have in your original post.

Having both DHCP Reservations on the router AND manual IP settings on the device for the same IP address runs the risk of creating a conflict (which could also cause some of the same issues you stated in your original post). What could be happening is that you don't have private WIFI off, and your MAC changed, but your phone is trying to force itself to use the IP address reserved for the old MAC. The router is trying to reserve the address for the old Random MAC and won't let the phone use that IP for the newly randomized MAC.

WAF has improved! Automatic IP on the phone and DCHP on the router.:+1:

I tried reading the documentation, but in addition to having ADD, I have a learning disability that doesn’t move short term memory to long term memory. I can begin to read a book, use a bookmark, come back the next day and won’t remember a word what I read yesterday. That is why I became a mechanic. Did so-so in the classroom but breezed through the work in the bay.

3 Likes