Reconnect a HomeKit Accessory over a 2.4 GHz Wi-Fi Network

Exactly the opposite is what happened for me! See article!

Precisely. I have 2.4 GHz and 5 GHz coverage throughout the house. I have heard since on Mastodon that some people have had similar experiences.

It’s plausible this is not going on, but I can’t figure out the logic of what happened if so.

  1. Device disconnects from home network (unknown reasons). Will not reconnect
  2. iPhone can’t connect to configure.
  3. Enabling a distinct 2.4 GHz network only allows device to connect to its own cloud, not to the HomeKit system via the iPhone.
  4. Setting the iPhone to a dedicated 2.4 GHz network with local network broadcasts enabled solves the problem.

In step 3, I could get my iPhone to recognize the device and connect to it, but the device could not finalize setup because of mDNS. But before setting up a 2.4 GHz unique network, the iPhone couldn’t seemingly talk to the device at all.

So if the iPhone was on a 5 GHz network and then I moved it to a 2.4 GHz one, the only explanation is using the BSSID—if it used the network name, I cannot see how the device would have failed to connect.

1 Like

What I would expect in this situation would be:

  • You do something to put the device into “initial setup mode”
  • Device creates an ad-hoc Wi-Fi network for itself
  • You start the pairing process from your phone. It disconnects from your home Wi-Fi, scans for the ad-hoc network, and then connects to it
  • Phone pushes configuration to device
  • Ad-hoc network is shutdown. Device connects to your LAN. Phone connects to your LAN
  • Normal operation begins

But something here glitched. Since the device disconnected, its internal state probably got messed up, leading to the observed weirdness.

I wonder if using a factory reset button (I assume one exists) would’ve worked, but then you’d lose all your settings and would have to start from scratch.

Sadly, with embedded devices like these, there’s not a lot of diagnostics you can run on your own. If there is something resembling a system console, then it might be possible to use it to read the internal configuration data, but that probably doesn’t exist in any usable form. These consoles (usually serial UART or USB) typically exist during product development, but the connectors are usually removed and the console software deleted/disabled once a product goes into production.

I did factory reset it! That’s in the article, but perhaps not as clear.

I would suggest it glitched, too, except:

  • Behavior was consistent before and after
  • Other people on Mastodon (and in this thread) have reported similar 2.4 GHz/5 GHz HomeKit problems

Here’s one clue about how HomeKit works from an Apple security page:

When the iOS, iPadOS, and macOS device and the HomeKit accessory communicate during use, each authenticates the other using the keys exchanged in the above process. Each session is established using the Station-to-Station protocol and is encrypted with HKDF-SHA512 derived keys based on per-session Curve25519 keys. This applies to both IP-based and Bluetooth Low Energy (BLE) accessories.

Here’s a thread at the NetGear forums describing a similar question and some potential answers/complications.

A support document on the Meross website describes the solution I came up with in very straightforward terms!

That’s when I always have problems. A smart plug suddenly isn’t seen by the Home app anymore. Unplugging / replugging doesn’t fix it. (Unfortunately, this happens more than I would hope it would. It’s especially frustrating when I am nowhere near home.)

Remove the plug from Home, factory reset the plug, try to add it (scan the QR code, etc.). It goes through all the steps but fails at the last one. This doesn’t always happen, but when it does, turning off the 5 GHz radio always solves this problem.

1 Like

I’ve got a related but different problem: the maker of my smart device has gone kaput and their app doesn’t work any more, so I can’t access the device to make any changes. The device (a smart plug) is tied to my old wifi network name/password. The device still works fine via HomeKit, but I have no way to change the network. So I have to keep a 2nd router with the old network around just for these devices (I have several).

Seems like not a big deal, but this 2nd network must be accessible via HomeKit, so I can’t “forget” the network on my Apple account. Therefore occasionally my HomePods, which know all the networks associated with my Apple account, switch to that old network for no reason I can fathom. Then the HomePod is basically useless because it just says, “This device is not on the same network as your phone.” and it won’t read my text messages or do anything else useful. (To switch the HomePod back, I have to log into the old network with my phone, find the HomePod, tell it to change networks, and then switch the phone back, which is a pain.)

This experience has greatly soured me on IoT devices. I could buy new SmartPlugs, but after this I’m not sure I want to go there. :unamused:

1 Like

Definitely something buggy. And if it affects products from multiple vendors, then I suspect it’s Apple’s bug - either in the mobile app or in the library code they make available to the device makers.

Yuck. At least there’s a known workaround, as awkward as it might be.

I wonder if temporarily disabling 5 GHz at the main router would also work and avoid the need to create and configure guest networks. Of course, that could cause LAN-wide interruptions that may be unacceptable.

If this was an enterprise Wi-Fi network, then you could just create a WLAN just for the IoT devices, separate from the rest of your network (and configure appropriate routing to/from it, as needed for access). Then you’d only have to connect your phone to that WLAN during the configuration.

But I don’t know of any home routers with the ability to create multiple WLANs beyond the typical “home” and “guest” networks.

I’ve thought about that for my Nest Protects and Thermostats and cameras - get them off the local network, as there’s no reason for them to be there, and the Nest and Google Home apps will still work fine. For HomeKit, though, I’d need to have my Apple TVs also on that network, so AirPlay from devices won’t work, the Apple TV remote app wouldn’t work, unless the network for non-HomeKit was a NAT behind the HomeKit network, so that doesn’t seem all that useful.

With an enterprise router (not a simple consumer gateway router), you can configure data forwarding between two WLANs and firewall rules to restrict the traffic moving between them. This will let your IoT network access to your mobile devices and necessary cloud services, but (hopefully) keep potential malware isolated from everything else.

But I’ve never seen features like this in consumer-class equipment.

I know for some of my appliances (an oven in particular) they needed to connect to the internet to turn on certain features. When I talked to the company, the woman told me that I needed to connect for the feature and it would be useful in case of updates. Since the last thing I need is my oven to be updating when I don’t know it, they were linked on my guest network, and then the network was turned off. I turn it on when I have guests, but the idea that I need to connect my oven is crazy to me. There is such a thing as an unconnected oven. It’s called an oven.

Netgear routers have, for a while now, let you specify different names for each of the bands/radios served, regardless of whether the guest network is used. If you were comfortable with just using a dedicated 2.4 GHz network for IOT stuff, then that might be the best course since generally modern stuff will connect on the faster band preferentially anyway when given the choice. I’m sure other vendors will do that too.

The real issue as I see it seems to be HomeKit’s silly insistance that your phone “know” the network your IOT device is on, long-term, so that even when you don’t need to match it purely for setting up a new device (which would, after all, only be temporary) you must also endure the seemingly random switching of your device to the wrong network, unnecessarily limiting performance, even though there is absolutely no technical reason for that at all. So I guess my hope is that Apple fix it so you can have a bit more control, though I’m not optimistic since this seems to be clearly user-confusing (or at least is likely to increase tech support calls, which is ultimately what matters).

FWIW Re 2.4 and 5 ghz wi fi and also capability to use both. My netgear RAX78 model allows a combination of all 3 wi fi modes. Thus I have and use essentially 3 wi fi names for example( not real names )
2.4 = ABLE 5 = BAKER multi 2.4 and 5 = CHARLIE. 2.4 Used for example radio 5 used for appletv and screen mirroring and airdrop multi used for some internet and HQ TV and facetime and zoom.
Since I live in a retirement community ( apts ) there is also public wi fi unsecured and supposedly secured wi fi - both of which I avoid except for a few local phone calls between buildings and never for anything of significance/personal

Normally use a landine via my separate voip for " home"-

1 Like

I appreciate articles like this to remind me never to put anything important in a smart home. Issues like this show that we have a long way to go to make this viable. Great for those who like spending an hour debugging.

Door locks? Do I want to be locked at at midnight?

I have a leak detector, but is it really going to work?

One shouldn’t have to think about what frequency the connection is on, etc.

1 Like

This is simply poor design. Unfortunately I’ve encountered many devices that can only be set up this way, using an app that leverages the iPhone’s WiFi configuration. In attempt to make it “easy” they’ve doomed a good percentage of folks who will never figure out how to get through this scenario, and they shouldn’t have to! It would seem easy enough to offer an “advanced” setting in the app or some other mechanism to manually configure the WiFi settings for the new device setup.

2 Likes

I believe what is happening is that HomeKit is sending the device the BSID (the binary address) of the Wifi network the phone is currently connected to. If that is a 5ghz network, in my experience, many HomeKit devices will fail to complete the setup because they can only communicate at 2.4ghz.

Despite Apple’s advice to give the 5 and 2.4ghz networks the same SSID name, I have found that he easiest solution for me is to just name them differently (“Network” and Network5"). Then, when I am setting up a HomeKit device, I can manually connect my phone to the 2.4 network.

Temporarily turning off the 5ghz band at the wifi Access Points (when named the same) could also work, but I am running several Airport Extreme routers as dumb APs (an EdgeRouter handles the actual routing) so it would be a pretty tedious process to do this every time. I have had no issues keeping the networks named differently. I suppose my phones and computers can’t as easily drop to between 2.4ghz seamlessly if the 5ghz signal isn’t strong enough, but wifi coverage is pretty good in my house and the 5ghz signal seems to work fine pretty much everywhere.

It kind of disturbs my sense of order to put HomeKit devices on the Guest Wifi network; I think for less networking-savvy people this would not work, since by default guest networks are isolated from the main network segment.

4 Likes

Agree completely. This is definitely the way, if you can. A bit less convenient, but you can instantly tell if you’re on the right band for setup, prevent autoconnecting to that band if desired, and you still have the choice to use 2.4 GHz if necessary. In my flat, 5 GHz everywhere is fine, so that’s what I do.

1 Like

I did not put my ecobee thermostat on guest. I put it on the main. I’ve never had this issue.
But ecobee products are not good otherwise. I cannot recommend them.
I actually had the basic but very good Sensi smart thermostat before, but my utility offered the ecobee free. It offered a discount for heat waves if they auto turned off my AC for a few hours ($7-20 a year so, not worth it) and HomeKit, which Sensi (at the time) did not offer. So I thought, why not. I think now that Sensi model is controlled by my utility. But the thought of dealing with the customer service to change over to that good Sensi again, with them gives me heartburn. So, I have lived with the junky and clunky ecobee.
Sensi had a recall but, it was a pin design. So they just sent me a new unit, or maybe back plate, I forget. No biggie.

This 2.4GHz during set-up is the same for most HomeKit devices AFAICT.

Here in the UK, my Meross smart plugs always need to use a 2.4GHz rather than 5Ghz just for their initial setup (after this initial setup, they work fine on a mixed 2.4+5 joint network).

My router is set as a joint 2.4+5Ghz network. So I just open my router’s settings interface in a browser, temporarily turn-off the 5Ghz connectivity setting, add the HomeKit devices, then turn the 5GHz setting back on. Done.

Yes, it’s a pain and Apple really should add a better thing for this, but at least it’s not too difficult to get done.

I use the same procedure over here in Germany as jimthing describes. My router is a Fritz!Box. I spent countless hours time to find this out. Bad design…