Most reliable ZigBee coordinator for ZHA?

I currently have a ConBee II USB stick, but I’ve experienced several reliability issues with it:

  1. It has a tendency to go into bootloops (Search · rts · GitHub), rendering the stick unusable until I reboot the host. It’s worse when I use USB passthrough with KVM, but I can replicate even in an early boot state just in Ubuntu’s initramfs shell. This screams “firmware bug” to me, which would be fine, but Dresden doesn’t seem to be addressing it even with the multitude of bug reports in their GitHub repo.
  2. Commands get lost or perhaps stuck in a queue somewhere. I’ll command a group to turn off but some bulbs won’t turn off. Or, the command is lost entirely.

I’ve had similar issues with both deCONZ and now ZHA. I tried a few different firmware revisions, with most being noticeably worse. I’m on 0x26660700 now which is the previous stable release.

My network is mixed; Philips Hue light strip and dimmer, several Aqara motion, temperature, and door sensors, Sengled light bulbs, Sonoff ZBMini relays, an Ikea power outlet, and an Enbrighten / GE switch. Looks like I’m at 38 devices currently.

I don’t think this is a problem with the mesh strength, as often the problem devices will be right near a powered repeater and show as having a good LQI.

So, should I be looking at replacing my coordinator? If so, which one? I’m not too worried about the cost, prioritizing reliability and debugability first. I’m leaning towards the zzh! as at least it’s “recommended” for zigbee2mqtt, but as it’s more DIY I would have expected less reliability compared to the ConBee.

Another option is to put a RaspBee II in a Pi. I have that set up in a second location for sensors, and it’s been rock solid - but so was the ConBee II until I started doing more than just reading sensors with it.

I’m using zigbee2mqtt with one of Tube’s CC2652P2 coordinators and it has been rock solid. Unfortunately it looks like he is out of stock at the moment.

5 Likes

Any of the CC2652p/CC2652 based boards will be a good choice. That includes the ZZH - I have two of those and like all the “DIY” boards I’ve bought, they’ve been rock solid.

If you’re in the UK it’s a great choice. In Europe there’s more local options that you can buy without customs fees.

1 Like

Thanks for the suggestions. I’m in Canada, but it looks like the zzh will ship here from the UK.

On the ConBee II, I’ve been unable to find other confirmations, and I’ve seen reports of others with much larger networks, but this post indicating stability drops after 30+ devices seems to match my experience:

Another vote for the zig-a-zig-ah, with zigbee2mqtt mines been rock solid. Running at least 30 devices off it, but there are a bunch of repeaters in there too.

Ive got a preflashed cc2531 from amazon (https://www.amazon.de/gp/product/B07ZZ88BWZ/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1) and first i used zigbee2mqtt. It worked well with my ikea tradfri 5 button remote and tradfri smart outlet. I changed later to zha, because i had problems with the stick beeing unaccessable. Turned out, i hadnt disabled modem-manager (im using the supervised install on manjaro linux), which stands in the manual yikes. ZHA has the advantage of using events for button presses rather than binary sensors for each key press.
Lately, ive upgraded my server (from 2006 intel pentium to core i5-8400, my old gaming setup which i damaged (ive dropped the cpu into the socket, bent pins are a pain in the butt to bend back. Atleast, RAM channel 1, iGPU and almost everything works lol) and made a fresh install of the base OS and HA, transfered a snapshot (including all addons) and the zigbee stick. No need to repair my devices, which is awesome (although i just had 2 devices back then^^). But now, sometimes HA loses connection to the stick (probaly the usb controller from the board “crashes”) and i have no clue at all, what fixes it, probably rebooting, reconnecting, rebooting again repairs it. But then i have to repair my devices. Entity names are changing back to stock, which kinda sucks, because i gave them names according to what they are used for. But all in all im happy. Even when i use only 3 devices: Ikea Tradfri 5-Button Remote, Tradfri Smart Socket, Osram Smart+ Mini switch.

I am using zigbee2mqtt with a cc2531 that I flash myself. Working for 6 months without problem, solid solution but requires adding a few repeaters. For repeaters, I use BlitzWolf Plug smart sockets.
Works perfectly.

Thanks everyone for the feedback. I just ordered a ZZH, and will post back when I have a sense as to how it compares to the ConBee.

The ZZH arrived very quickly - a week via Royal Mail and Canada Post.

I didn’t want to have to reconfigure everything, so I edited the various files in config/.storage to change the coordinator path and radio type to point to the ZZH. The, I repaired devices, and they were discovered with the same entity IDs and so on. I also had to edit zigbee.db with sqlite3 to remove the old coordinator.

So far, I haven’t had any USB issues like I did with the ConBee, but it’s only been two days. However, I was very quickly able to replicate cases where commands are lost, especially when pushing a button that toggles a set of lights. With the ZZH, it’s not reporting RSSI, and LQI seems to be significantly lower than the ConBee. I wonder if that’s just a difference in how they calculate LQI, or an indication that something is actually wrong with my network.

I might move around one of my repeaters, or set up a few more just to truly confirm the mesh strength isn’t the root issue.

I have a ZZH stick that I’ve used for approx 18months. It replaced a cc2531 that I was using before that became too unreliable (not great at larger networks I heard). The ZZH was reliable for a while but now I’m having lots of issues.

Here’s my experience:

  • Aqara door sensors randomly dropping off the network and becoming unavailable - seems to be mostly fixed by adding them not as child devices of a Salus SP600. But still (about once every month) I have to re-pair something.

  • Ikea sockets randomly disconnecting from the network. e.g. I found some outside lights on all day today as a result. Will need to re-pair those too I expect.

  • Some devices randomly leaving and rejoining the network such as power monitors and zonoff zigbee light.

  • Ikea bulbs randomly leaving the network and not coming back.

  • Sometimes ZHA dies completely (about once per week now) and I have no comms with any devices. Restart of my RPi doesnt fix it. But unplug/replug the ZZH stick followed by HA restart seems to fix it.

My overall feeling is: the combination of ‘HA 2021.12 + ZHA + ZZH + a variety of consumer devices’ is simply not reliable enough for normal use.

Lots of people seem to say ‘mine work fine’. Is that really the case? I get the impression people are being overly tolerant or blaming other things. I know that if this sort of reliability occurred in my work setting it would have been scrapped a long time ago. I want it to work but it seems really fragile.

Does anyone else have experience good/bad or suggestions?

Zzh + Z2M mines rock solid. About 30 devices at the moment, 2 ikea repeaters and half a dozen Hue light globes as repeaters.

Do you keep the F/W on the Zzh up to date?

I’ve been much happier with the zzh, and while it’s not perfect I believe the occasional issues I have are due to the devices themselves:

  • I’ve found Sengled Zigbee bulbs to be pretty unreliable. They need to be power cycled every few weeks. While they are much cheaper, I’ve slowly been replacing them with Philips Hue bulbs which have been great.
  • Once, I’ve had to re-plug in my Philips Hue light strip, as it stopped properly reporting values. That was once in 7 or 8 months.
  • I’ve got 7 Aqara motion sensors, and I would say one of them has to be re-paired every 3-6 months.

Devices I am 100% happy with:

  • Philips Hue products.
  • The Sengled E17-NA power switch.
  • Anything made by Enbrighten / Jaasco (I have several in-wall switches).
  • I only have two Ikea bulbs, but they work fine too.

A fun bit about the Aqara door sensors: I have them on my garage door, and one of them was stuck in the “open” position. After half an hour of re-pairing, trying to get it sorted out, I realized what the problem was. There was just enough snow below the garage door to prevent it from closing completely, but not enough to trigger the safety mechanism.

This seems like a important point. Have you tried turning on debug logging? Given you have to restart the Pi, I wonder if there’s some sort of hardware issue. dmesg can tell you if the zzh USB stick is dropping out.

Looks like I currently have 56 devices paired.

I have similar issues with Conbee II running with ZHA on a Proxmox VM mini PC, HA OS. Not many devices, 4 Ikea bulbs, 2 Ikea repeaters so good signal, a few Aqara temp and door sensors. I regularly lose 1 Ikea bulb which unfortunately is in my son’s room and only connected to a wifi switch so we lose control completely. The whole network drops off every month or so and I have to unplug and replug the Conbee and restart. I’ve considered either switching to z2m or purchasing a new coordinator but not sure what to do. It is definitely holding me back from expanding my zigbee network with HA.

I’d check the host logs (dmesg is helpful) for USB resets. If that’s happening with whatever the latest Conbee firmware is, then switching coordinators seems like a good step.

As an update, I recently set up an additional ZigBee coordinator for another location with a Z-Bee Duo:

I paired it with a Raspberry Pi Zero W, using zigbee2mqtt as that easily lets me forward to another HA installation physically distant but on the same LAN. Unfortunately, a few days after starting it up, the HAT stopped responding entirely even after reboots. I need to wait until I have physical access to really reset the power, but I’ve never had “completely go dead” happen with my other two devices.

Even though I’ve had a number of problems in the past with my conbee II and ZHA, now I must admit HA developers have done a great job over this last year and a half. The network used to break every few restarts which led me to repair the whole network and eventually made me move to NR to avoid restarting that often. Nowadays I’m kind of happy even though I wouldn’t recommend anybody to buy a conbee II + ZHA. I believe HA devs should move the conbee II from the first suggestion in the Installing tutorial of HA. It leads newcommers to making a bad decision, which was my case.

Anyways, nowadays I have a conbee II + ZHA: 23 end devices, 1 coordinator and 1 repeater, 25 total. The only problem I find is maybe once a month I enter the bathroom and the light won’t come on. It’s a 5 square meter bathroom with more than 10 wireless devices in a corner of my appartment so interference is kind of expected there. For the rest, it behaves perfectly so I do feel my network is rock solid given the circumstances.

Something that really improved the reliability of my conbee II network was placing the antena really high, pointing horizontally towards the appartment and setting the majority of my zigbee devices in high spots too. My other networks (wifi, ble) are placed in lower heights. That really helped a lot.

From what I’ve read in the chats and forums there’s a strong consensus with zzh + z2m being the best and most solid mix.

Sorry for the ranting.

2 Likes

I made the change from cc2531 to conbee2, both with zha. since the i switched to the conbee2, my network was finally stable, my devices were finally responsive. the cc2531 worked fine for some time, but lately it sometimes disappeared from the serial devices, atleast under my main server (ubuntu server 20.04 lts, supervised install). under raspbian on my raspi3b+ with zigbee2mqtt, it works currently fine, althought there are no devices connected yet.

but one strange thing on my conbee2: i have one “unk_manufacturer unk_model” device “connected” in zha, device type coordinator. i even cant delete it. even manually with deleting the zha config, rebooting, clearing the device registry and the zigbee storage, both under /config/.storage, and readding zha, it stays there.
also, the conbee2 has a switch for me, do you know what it actually does? it just says xxxx on_off, currently its off and everything works normally. the only setting i touched was the “mark devices as unavailable after 10000000000000 seconds”, because i dont like beeing unused devices artificially treated as dead.

I think I had something similar to that when I switched adapters from a Conbee II to a zzh! with zha. There’s also a zigbee.db file in your configuration directory. It’s sqlite, and is editable if you know basic SQL via the sqlite3 tool.

As an update to the above, the Z-Bee Duo has been fine since I was able to get it restarted a few days later. I confirmed with the seller there’s no way to reset it from a state like that remotely.

I also switched my home network from ZHA to zigbee2mqtt for two reasons:

  1. I wanted to have the same setup as the other location so I could really learn zigbee2mqtt.
  2. My home server is old enough that it doesn’t support passthrough for USB controllers, just individual devices. After reboots, I would often have to update the Home Assistant VM configuration with new USB bus IDs. Until I did that, no automation would work. By switching to zigbee2mqtt, I could run that bit in an lxd container (like everything else), and pass in the device by a simple /dev/serial/... path.

I’ll say, I’ve been quite pleased with zigbee2mqtt beyond my expectations.

  1. For the first time, I was able to successfully bind my Philips remote to Philips bulbs directly, which I could never get working with ZHA. The same remote is also bound to a Sonoff ZBMini (works perfectly) and three Sengled bulbs (on and brightness work, but off doesn’t, see this discussion I filed).
  2. No issues with bulbs sometimes not responding to commands. I think this is because device availability is an off by default option in zigbee2mqtt, whereas ZHA will ping devices for availability. I turned it on for a bit with zigbee2mqtt, and within a day was noticing more instability. I like that I can easily set up reporting from devices to avoid needing to ping them, or turn on availability pings per-device. This seems to have fixed my Sengled bulbs sometimes becoming unavailable in ZHA.
  3. Noticeably lower latency for manual commands. I wouldn’t say ZHA was bad, but zigbee2mqtt reminded me of that “new computer” feeling when controlling lights.
  4. Really fast re-establishing of the network after restarting zigbee2mqtt. ZHA was taking several minutes before the network would become available. zigbee2mqtt perhaps a second or two.

I’m still having major issues with my ZZH from time to time. Most recent experience:

  1. Within approx 24h after a recent HA update, all zigbee devices greyed out on HA.
  2. Tried powering down the RPi, unplugging the ZHA stick then restarting the RPi. No improvement.
  3. Tried removing and re-adding the zigbee coordinator in ZHA, (it appeared in the list). All other devices, still in the list but greyed out.
  4. Tried removing the ZZH stick and flashing the latest coordinator firmware. No improvement.
  5. Tried removing the ZZH stick and connected it to a development machine. Ran in HA and added the ZZH stick.
  6. Tried adding a sample door sensor device by putting it into pairing mode. Discovered automatically. Nearby ikea outlet that was previously on the network not responding.
  7. Forced the idea outlet into pairing mode, then added it to the network - works ok.
  8. sonoff ZB mini on off power switch in very close range not responding.

Basically it looks like all my devices are visible in the ZHA list but none of them are accessible until I re-pair them all.

All of my automations connecting to these devices and all entries on all dashboards are showing with errors. All triggers e.g. for power metering sockets are “unknown trigger”.

I think I will now have to:

  • Re-pair every device on my zigbee network, removing lots of covers of lights etc to do this.
  • Rename all entities on every device to try to match what they were before.
  • Try to remember or re-calculate trigger thresholds for things like washing machine.

All in all about 4-5 hours work I expect.

Is there any way to guarantee to preserve all the ZHA settings, or force the network details to be the same?

To make matters worse all of the names are lost on each device, so don’t even know which device is which. I wrote a number on each of them e.g. aqara1, aquara2, but now all of this is gone in HA, replaced by a random looking name. So all of the text such as ‘Kitchen Door’ is all gone and I need to enter it all again after working out which one is which.

Any idea why my network would do this? I feel it’s just a completely random time interval until I have to do all of this again. Argh!

Sorry to hear that @dave_t_uk . The worst thing is when a smart home actively plots against you :smiley:

When you did that, did you back up the nvram and restore it? ZHA stores some key settings there including your network key. I once forgot to export, and I was only saved by having debug logging on which will log the network key in cleartext when HA starts: See zigpy-znp/TOOLS.md at ecfc6ecafc830ce4fe5799d287a0602793967f36 · zigpy/zigpy-znp · GitHub

One of the things I like about zigbee2mqtt is that it has no reliance on the adapter nvram.

As long as you don’t remove the device from ZHA, when you re-pair it will re-associate it with the same device and entity IDs. It may be too late, but zigbee groups for lights make a great abstraction layer. When I moved between deCONZ, ZHA, and zigbee2mqtt, that required everything to re-pair with reset entity IDs, but not having to redo group automations was a big time savings. When I migrated from ZHA to zigbee2mqtt, I had ~60 devices and was done everything in around 2 hours. The best part is you can add devices in an order that makes sense, such as all hardwired zigbee routers first, and then battery end-devices after.

I’m still quite happy with zigbee2mqtt, and while my ZHA knowledge is about 6 months out of date if you have to re-pair everything I’d consider switching. In particular, being able to restart zigbee2mqtt or HA without the other has been quite helpful when doing upgrades.

One tip I have realised for the future is not to set the name of any devices when adding them to the zigbee network. That way the auto assigned entity ID is the same each time. Setting the device names eg ikeabulb1 ikeabulb2 etc worked against me.

I think this helps because the UI cards and scripts all refer to the entity ID which changes if you edit the device name but not the entity name.

1 Like