Should I split my network? (110+ devices)

Hi all,

Looking for some community advice as I am facing some stability issues with my Zigbee network running on ZHA with a Skyconnect dongle on a 2m USB extension in a USB 2.0 port on a Raspberry Pi 4.

I recently moved away from Zigbee2MQTT with a Sonoff Dongle-E hoping that the tighter integration through ZHA would solve some device unavailability issues I was seeing with Zigbee2MQTT. This worked at first with regained stability and a solid network. Additionally, I was enticed by the potential for future Thread and Matter compatibility promised by the Skyconnect dongle, although I’ve since learned that simultaneous use of the dongle might not be advisable.

Subsequently, I decided to migrate lights from my Hue hub directly to Home Assistant due to dissatisfaction with their recent mandatory cloud account policy. After having migrated about half the devices I am getting Zigbee network usage warnings and quite a few failed service call error messages. With 75 devices currently connected and another 35 to go, it’s clear that a different approach is necessary.

My network consists of a backbone comprising a dozen Aqara H1 switches (with neutral and set to decoupled), around 20 Hue bulbs as routers, and additional devices such as 8 Danfoss TRVs, as well as several dozen Aeotec and Aqara battery-powered sensors (including motion, temperature, and door sensors). ZHA operates on channel 15, while 2.4GHz WiFi operates on channel 9, minimizing potential conflicts. However, a utilization scan suggests that switching to channel 25 would be beneficial.

Considering my options, I have a spare Raspberry Pi and I’m contemplating running an independent installation of Zigbee2MQTT with the Sonoff Dongle-E as coordinator. Here are a couple of potential approaches:

a) Divide the network based on router types, assigning Aqara H1 switches to Zigbee2MQTT while keeping Hue bulbs on ZHA. Distribute sensors and TRVs across both networks according to their respective brands.
b) Segment the network by floors, with the lower part of the house on Zigbee2MQTT and the upper floor on ZHA.
c) Migrate everything to Zigbee2MQTT on channel 25, with hopes for improved performance, while reserving the Skyconnect for Thread compatibility.

If anybody has some thoughts or suggestions, I am all hears. :slight_smile:

I’d go this route, but use channel 20 instead of 25 while making sure your WiFi AP(s) are on lower channels if possible. Not a lot of devices like being on channel 25 and it typically will receive more interference, especially if your AP(s) are on anything above channel 11.

The other thing I would do is run a channel scan using zippy and see what your channels look like.

If you do decide to split, I’d just run multiple instances of Z2M instead of a mixed ZHA/Z2M mesh. This way, all of your Zigbee devices come in through MQTT and you have one master source to deal with. Yes, you do lose the ability to run Matter over Thread this way, but given that Matter is still pretty young (and LOTS of reports of instability), I would wait to go that route anyway.

2 Likes

110 devices is a lot, but not excessive. If you split your network you may well end up with two weak ones.

You may be able to resolve the problem simply by adding routers. Bulbs are not particularly strong routers and by the sound of it you have a lot of end devices. (Are Aqara H1 switches routers? A lot of wall switches aren’t, but they are mostly no-neutral.) To get a solid network you need to blanket the building with mains-powered routers and add the battery-powered sensors afterwards.

You probably know this already, but if you’re using ZHA you can get a summary of channel usage from the download diagnostics option on the Integration page. It’s towards the end of the file and looks something like this:

    "energy_scan": {
      "11": 73.50699819621309,
      "12": 31.01324838787301,
      "13": 25.74050169409602,
      "14": 4.69985354430736,
      "15": 49.512515447068886,
      "16": 3.2311094587038967,
      "17": 5.317630506738386,
      "18": 4.69985354430736,
      "19": 6.011489450827149,
      "20": 85.82097888710312,
      "21": 52.75969252664325,
      "22": 87.33047519856483,
      "23": 93.76433891498253,
      "24": 52.75969252664325,
      "25": 10.914542804728702,
      "26": 19.00785284282869
    }

This is actually a measure of noise on each channel, so it includes Zigbee, wi-fi and anything else that’s going on (your neighbour’s wi-fi?).

Lots of good advice here:

3 Likes

Thanks a lot for the advice, and in particular for pointing out channel 20 as a better option, ZHA diagnostics also show it as a less crowded frequency in my area. the neighbours’ APs might interfere slightly but the houses are at least 30m apart so the signals are weak. I can also drop my own AP to channel 1.

Indeed, good content there. I will apply as much of the tips as I can.
Based on all this I will (painfully) try the following:

  • Dedicated Pi to run Z2M with the Sonoff Dongle-E as a coordinator.
  • Position that Pi in the house where there is less interference from my own AP as well as the neighbours’.
  • Build the network mesh by starting with two additional Sonoff Dongle-Es as routers in key emplacements.
  • Gradually remove from ZHA and repair the devices to Z2M starting with routers and making sure entity IDs all remain the same.
  • Pray, and perform sacrifices in honour of the 2.4Ghz Gods.

Aqara H1 switches (with neutral) are routers yes, but they are notorious for being “stubborn” and awful at adapting to changes in the mesh. Hopefully with two extra dedicated Dongle-E routers I will have a solid enough backbone to compensate for them. It is sad that the software is so poor in that regard because the switches are great from a hardware and functionalities’ perspective.

Thanks again for the input, it definitely helps me organise my thoughts.

2 Likes

I have about 200 Zigbee devices split over three networks. It has evolved that way due to a number of reasons.

Initially I had problems with Aqara contact sensors dropping off the network. This was eventually traced to a compatibility issue with Samsung smart-plugs not routing Aqara’s implementation of Zigbee v3.0 reliably. I moved the smart-plugs as well as my Samsung multisensors to their own Zigbee network leaving the Hue bulbs as routers which solved the issue.

Following that I had an issue when my original Zigbee network passed ~110 devices. Again devices dropping off and the coordinator locking up necessitating a host reboot.
This led to me setting up a 3rd Zigbee network so each network has between ~50 and ~70 devices. This has been very stable over the last 6 months.

2 networks have all my Hue lights, (44 indoor and 22 outside bulbs) as well as motion sensors, switches and Aqara sensors. The other network has all the Samsung plugs and sensors. Other Zigbee devices are balanced over the networks as required. I have had instances where some devices refuse to connect to one network but are happy to connect to another.

I keep all my hue bulbs on ZLL (11,15,20,25) channels, specifically channels 20 and 25 as my WiFi is using (wifi) channels 1 and 6. The other Zigbee network is on channel 23.

I recently posted an article about monitoring Zigbee channels in realtime. This may be of use for planning additional Zigbee networks.

~Brian

2 Likes

@beaj Thanks for the additional thoughts. Sounds like a backup plan if (or when) my new layout reaches its limits. Waiting on some hardware to perform the network rebuild for now.