Apple Watch not responding with Homekit

What do you mean background updates? Do you mean ‘Background App Refresh’ on the phone or something else?

I also have Unifi gear. Do you have IGMPv3 enabled? I’ve noticed that sometimes the watch will use the phone’s MAC address (perhaps when it’s connected to the phone’s Bluetooth). I wonder if that confuses IGMPv3 (which attempts to only route broadcast traffic to interested clients). Perhaps the Bonjour broadcast traffic for HomeKit doesn’t always route correctly for the watch. Just a theory at this point.

Yes, sorry. I mean ‘Background App Refresh’ and no, multicast enhancement (IGMPv3) is already disable in my unifi controller.

So for me it’s a different reason maybe…?

1 Like

Yeah possible I have a different issue than you. So disabling ‘Background App Refresh’ for the Home app on your Watch solved it for you? You no longer have any problems? I’ll try that. I’ll also catalog all of the steps I’ve taken here too in case someone ends up with a similar/same issue (and I’ll update it in place as I think of new things).

My observations so far:

  • My watch (Series 6) and my wife’s watch (Series 3) both get the ‘Not Responding’ issue.
  • HomeKit/Siri works flawlessly on all other devices in the house (3 iPhones, iPad, 2 Macs).
  • When Apple Watch stops working with HomeKit (usually via Siri), I can still open the Home app on the Watch and see all the (correct) states of everything. Once I try to tap something to change it, then I get the ‘Not Responding’ text
  • homekit.reload always fixes the issue temporarily. Then the issue happens again 2-48hrs later.
  • When the issue occurs I can still use my watch to control my Ecobee thermostat which is directly connected through HomeKit (not HA)
  • (from watching logs) It seems like my watch and my wife’s watch always go through the Apple TV (my Home Hub) even when connected to WiFi. This seems to be the case both using Siri as well as using the Home app. This was unexpected, as I thought it would try going directly over the LAN like the phones. When my Home Hub is disabled, the watch routes HomeKit traffic through my iPhone.
  • HomeKit on the Watch does not work if both my HomeKit hub and my phone are off. (Perhaps this is normal? Does the watch never directly connect to HomeKit accessories? Perhaps they’re too chatty and would run down the battery?)

Things I’ve tried (that haven’t worked):

  • Running homekit.reload daily with an automation
  • Disabling WiFi on the watch
  • Disabling IGMPv3 on my Unifi APs
  • Resetting my watch to factory settings and re-syncing with my phone
  • Disabling ‘Background App Refresh’ for the Home app on the watch.
  • Switching my watch to a different phone (I bought a new phone)
  • Installing the new UAP-AC-PRO firmware that just got released that is supposed to “Fix intermittent broadcast and multicast packet drop… [for] IoT devices that rely on multicast for discovery.” (Weird that this would only affect my watch though if it were an AP issue)
  • Disabling ‘Background App Refresh’ for all apps on the watch.
  • Disable IGMP Snooping on my Unifi switches
  • Figure out a way to log HomeKit requests in HA to look for clues
  • Sign out and sign back into iCloud on my Apple TV
  • Disabling my AppleTV as the Home Hub (worked well, but obviously only on my local network)
  • Calling homekit.reload hourly (Didn’t help, also creates a predictable blip in operation hourly)

Things I’m trying next:

  • Removing all Unavailable HA devices from HomeKit (@squirtbrnr’s theory)
  • Completely delete/reset my HomeKit home (I really don’t want to do this)

Conclusions

  • Since homekit.reload fixes the issue (at least temporarily), there must be EITHER a subtle bug in Home Assistant OR a bug somewhere else (ie in the phone/watch, or my networking gear) that gets alleviated when homekit.reload is called. This gives me some confidence that maybe this can be fixed or worked around in HA if the above things don’t solve my issue.
  • The fact that I can still control my Ecobee directly through HomeKit also seems to point to a subtle HA bug.

Possible Leads:

1 Like

well I tested some days before responding and no: the issue is still there. I have to manually force close app in watch and reopen it in order to see real status of the lights.

Have you tried an automation to load homekit.reload more often (hourly maybe)?

Manually force closing the app on the watch doesn’t solve it for me. I’m trying to disable IGMP snooping on my switches and then my last effort will be to do the hourly homekit.reload. After that I’m out of ideas! I might need to dig in and see if I can log requests from my Watch to Home Assistant to see if I can find a pattern.

I added request logging for HomeKit by adding this to my config.

logger:
  default: warning
  logs:
    homeassistant.components.homekit: debug
    pyhap: debug

Interestingly, my Apple Watch seems to only communicate with Home Assistant’s HomeKit via the AppleTV (my home hub) I think that’s probably a clue. Looks like a others were reporting issues with the Apple Watch and AppleTV starting last September:

If I disable my Apple TV as the home hub then HomeKit changes made on my watch come from my phone’s IP even though the watch is on WiFi. Not sure if this is normal or not. If I disconnect my phone from WiFi, HomeKit no longer works on the watch. Again not sure if that’s normal or not.

Ooh I managed to get into the not working state right now. Interestingly, it seems like when I’m in the “Not Responding” state on my watch, I do see a GET request come through when I push the buttons in the Home app, but no PUT request. This matches what I’m seeing as it seems the state of the devices on the watch look correct but I’m not able to change anything. I get something like this when I try to change the state of devices (10.0.0.254 is my Apple TV).

2021-02-21 22:44:31 DEBUG (Thread-178) [pyhap.hap_server] Request GET from address '('10.0.0.254', 51835)' for path '/characteristics?id=3647789233.10,3647789233.9'.
2021-02-21 22:44:31 DEBUG (Thread-178) [pyhap.accessory_driver] Get chars response: [{'aid': 3647789233, 'iid': 10, 'status': 0, 'value': 100}, {'aid': 3647789233, 'iid': 9, 'status': 0, 'value': 1}]
2021-02-21 22:44:31 INFO (Thread-178) [pyhap.hap_server] 10.0.0.254 - "GET /characteristics?id=3647789233.10,3647789233.9 HTTP/1.1" 207 -

Turning off the AppleTV as the Home Hub does seem to restore the watch to working with HomeKit again.

I noticed this too. If my iphone is off apple watch is not working as expected.

1 Like

Hallo, I’m Italian (newbe) user (so sorry for my bad english).
I have same issue with my apple watch 4! Disable Apple TV homekit hub resolve the problem but is a very annoying thing, homekit do not working out of home!
Please condivide future solution (or Apple/HA fix) that can resolve problem definitively.
Thnaks

1 Like

News. Stopping Homekit hub on Apple tv and activating Ipad one I have same problems with Apple Watch :disappointed:

Ciao Compaesano (I’m italian too :slight_smile: )

Glad to see that it is somehow a common issue. @johnboiles maybe a issue on github is a good way to proceed ? We can share 3 different logs .

2 Likes

I’m trying a new solution… disable private address on Wi-Fi configuration of home Wi-Fi in Apple Watch … this seam resolve issue since 15/20 min … I will let you know :stuck_out_tongue_winking_eye:

2 Likes

2hour… still work :stuck_out_tongue_winking_eye:

I periodically get this issue. iPhone and Mac work fine controlling HomeKit devices, but Apple Watch will say not responding. Restarting the phone and watch sometimes fixes the issue. Restarting HA sometimes fixes the issue if restarting the phone and watch doesn’t fix it. I have not tried the homekit.reload service call which seems to be a less drastic measure than restarting HA. I have UniFi APs, USG, and a UniFi switch. IGMP snooping is enabled, and IGMPv3 multicast enhancement is enabled. One thing I have noticed is if one device in my HomeKit Bridge in HA goes not responding or unavailable (MyQ garage doors are a frequent occurrence) then everything goes “No Response”. As soon as the inital devices are responsive again, everything responds normally. I only have one HomeKit Bridge configured via YAML.

1 Like

Welcome @Fly98 and @squirtbrnr! I’m glad to have some more eyes on this! Can everyone here enable request logging for HomeKit as described above and paste what you see when you try to control something from your watch and it says ‘Not Responding’? The Log Viewer addon is how I view my logs for this. Once we get a few logs from different folks I think we’ll be in a good place to start a GitHub issue and engage a HAP-Python dev.

Thanks for trying this @Fly98! This had been in the back of my mind to try as well.

I’ve had private address disabled for my home network basically since the feature came out and I still have the issue.

I now think it’s unlikely to be Unifi related – from looking at request logs, when I get into the state where things stop working I continue to see GET requests (loads state) from the AppleTV when I try to turn things on and off but I don’t see PUT requests (changes state). To me this indicates that mDNS/Bonjour discovery is working fine and the AppleTV can find Home Assistant without issue (related to the IGMP settings) but there’s a higher level glitch happening, probably in the AppleTV.

BTW I’ve had my AppleTV disabled as a HomeKit hub for about a week and my watch has been working great. I’ve gotten maybe a couple ‘something went wrong’ or ‘not responding’ errors but always the second attempt will work – perhaps just a momentary disruption in my watch’s connection with my phone.

I have no issue since 5 hour … (normally every hour I have this problem).
The only two thing changed are:

  • remove private io address from Wi-Fi configuration in Apple Watch
  • put this string on html configuration:
    ip_ban_enabled: -1

I don’t know which is right solution but; at the moment, I have not not responding issue again

I’ve had the private address disabled since the beginning and still get “Not Responding”, though it is infrequent, it’s just a matter of when it happens again. The ip ban is specifically for HA and logging into the front end. It does not change or affect HomeKit.

Almost 1 day… still work… :champagne:

After working for a while and even working this morning, my Apple Watch now says devices are not responding. However, my Mac and my iPhone are still working if I use Siri to turn on/off anything. HomeKit certified devices (Lutron Caseta with Pro Hub and my Ecobees) still work from the Apple Watch. The only difference between this morning when everything was working and now is my MyQ garage doors are unavailable in HA.

My theory, and so far this has been true the past few times my watch doesn’t work, is if even a single device from HA is unavailable or not responding in HomeKit, the Apple Watch thinks all devices paired through HA are not responding. If I remove the MyQ garage doors which are currently unavailable and reload HomeKit, the watch starts working again.

1 Like