mccamon.org

HomeKit - FIXED!

I was about to give up. Homekit was repeatedly loosing connections to devices, they might reappear for day and then vanish again. Bought and then sent back products because I thought they were defective, bought new ones and sent them back too. Wasn’t sure how the whole Thread/Matter/WiFi setups worked together or not. For months I lived with it. Sometimes it worked differently on my iPhone than on the iPad. And then even differently on my desktop. Apple, why did you do this to me?

My HomeKit drama started when I decided to breakup with Ring. Paying $130 a year just to store videos when I already had an iCloud+ account for storage made Apple Secure Video really attractive to me. Replace the doorbell and a few cameras and after 18 months I’d be in the black. I already had a few HomeKit lightbulbs and plug outlets which worked, mostly, so I made the jump.

Every single camera I bought (Logitech, TP-Link, eufy) would work perfectly when I set it up. Then it would often(!) report Device Offline errors. What was super frustrating is that I could launch the manufactures’ application and the camera worked no issue every single time. So obviously they were on the network with a good connection. In the Home app sometimes the camera might surprisingly reappear and then fall back to offline mode the next time I launched the app. The cameras were on the network - why was this not working?

Contacting every vendor produced the same unsuccessful troubleshooting tips and recommended fixes. Reboot the device and re-add it to HomeKit. Remove the device and re-add it. Move it closer to the router. Reboot the router. Reboot the entire network. Sometimes it would work for an hour, or a day, and then back to the flakey vanishing act.

Then after a LOT of sleuthing on the internet I was able to piece together the problem and a solution. It boiled down to the fact that my router (Google Fiber) does not allow HomeKit devices to communicate across its two different spectrums. What? My router, like most newer ones support both 2.4Ghz and 5Ghz radio spectrums. They have this feature to support better compatibility with both new and older WiFi devices. The router, mesh network, and my devices connect to my network and then apparently, and occasionally/continuously, negotiate with the network for optimal performance switching between the 2.4Ghz and 5Ghz channels. So what? Well in my case to make things easy at home, I had set up my router with one SSID. So one network, right? Nope. So this was my mitake: two completely separate networks with the same name and devices moving back and forth - or not at all.

The fix? I renamed the 5Ghz network with a new SSID and presto, while connected to my old SSID all of my HomeKit devices instantly started working. Perfectly. Every time. It was magical. This allowed all my HomeKit devices to say connected to one another. Later in the day I moved some of our streaming devices that are not HomeKit enabled to the 5Ghz network; but from now on in my house, 2.4Ghz is for HomeKit devices.

In hindsight all of the troubleshooting fixes - and their ultimate failure to permanently fix the problem - made perfect sense. After a reboot or reset, you might get every device on the right network for a while, but then one by one, some, or all would start moving between networks since they had the same SSID. The video cameras seemed like they were the first to move to 5Ghz which I would guess was done to ensure higher data rate for that sort of an app. The lightbulbs not so much.

Sadly there were not many tools to make troubleshooting something like this very easy. You cannot discover which channel or spectrum speed your devices are connecting though or together. One of the few, albeit cryptic, a protocol-level sniffer named “Discovery - DNS-SD Browser” for iOS did help me see the problem in action. Apparently HomeKit devices use the _hap._tcp and _hap_udp protocol to broadcast their availability on the network so the Home app can present the devices to the user. If your HomeKit devices are not listed the Discovery app in the hap protocols, the device you are running it on and the network it’s connected to is not on the same network as your HomeKit devices.

Given the problem and the solution it now also makes total sense to me that lots of people have problems with HomeKit while others never do. What’s also frustrating is it seems like none of the technical support teams had any idea what the problem was or how to fix it. Knowing what I know now, I can also see why that older Hue Light stopped working or occasionally didn’t respond to the switch sometimes. It wasn’t the light bulb, it was how I setup my network with the router.

Thank you Ring for encouraging me to teach myself a whole lot about how HomeKit works. Now if I can just sort out Matter/Thread.

Edit