Apple Watch not responding with Homekit

Tags: #<Tag:0x00007fc3f979edd8>

Hi,

I’ve setup Homekit Brigde integration and it’s working perfectly on my iphone. I cannot say the same for my Apple Watch: I noticed that when I open app on AW it’s not responding or undefintely updation 50% of the time (no matter if I’m at home connected to same wifi or not).

The only “solution” I’ve found so far is to force app closure and reopen it but I’m sure there’s a more preferrable option to achive the same result.

Can someone please help me?

Thank you in advance!

1 Like

I was having this issue. I restarted the watch and phone with no progress. Then I simply called homekit.reload from the Developer Tools section of HA and things are back to normal. Not sure what could be causing one client to stop working while others work.

I have a small hunch. What brand WiFi AP/Router do you have?

1 Like

I have UniFi ap and USG. In my case I disable background updates and seems now that the issue is reduced.

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

Things I’m trying next:

  • Disabling my AppleTV as the Home Hub
  • Calling homekit.reload hourly
  • Completely delete/reset my HomeKit home

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:

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:

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