ZHA and Zigbee2MQTT

So I have a SkyConnect running ZHA and everyone raves on about Z2M and how much better it is, I’d like ZHA to be as good as Z2M

I run both. I personally prefer Z2M, but a lot of folks prefer ZHA. At this point there isn’t any objective better/worse relation between the two. Beauty is in the eye of the beholder. Both have their own advantages and disadvantages.

My advice is to experiment with both before you have dozens of devices and see which you like best.

At least as of a few months ago, Z2M had significantly broader device support than ZHA, and in many cases better support for all the features of the device than ZHA, though ZHA is getting better.

One big knock I have against ZHA is (at least the default way it’s installed), every time you restart HA (which I do a lot as new releases come out and changes are made), you end up disrupting the zigbee network because the controller goes offline, etc…

In Z2M, you can reboot HA all you want but the ZigBee network is stable and doesn’t need any resetting. Also, I run Z2M on a raspberry Pi located in a much better location than where HA runs (in the basement server rack). By separating the functions, you get better network stability and the ability to put the coordinator in a more optimum location for the network.

2 Likes

I thought you could only run 1 at a time? Well I have a SkyConnect so the integration is experimental

Yeah I’ve noticed it restarts when HA does, let’s hope things get better!

ZHA continues to get better and better as its community of users/supporters and developers keeps growing, but is it relying on the people that are actively trying to contribute to ZHA and zigpy projects.

If you like for the ZHA integration to get better at a faster pace then you should consider doing your best to try to actively help with the development and support of the ZHA integration as best you can in order to contribute to the community that is gathered around the ZHA integration.

The ZHA integration is at least getting more popular as time goes on, and the ZHA integration component in Home Assistant core keeps being improved with each new release of Home Assistant. Just check out recent statistics from Home Assistant analytics → https://analytics.home-assistant.io/integrations/

The zigpy framework libraries that ZHA depends on (which other projects also uses) are slowly getting expanded with more features and functions to make usage more unified with improved hardware agnostic interfaces by the few developers that are working on it today. See zigpy community discussions → https://github.com/zigpy/zigpy/discussions

ZHA documentation is ex. in need of improvement → https://www.home-assistant.io/integrations/zha

Another thing you can also help with is ZHA Device Handlers (e.i. quirks) → zha-device-handlers

Even little things can help make the ZHA integration become better than what it is today!

PS: FYI, should be noted that Zigbee2MQTT still only has experimentation support (e.i. Alpha-stage support) for Silicon Labs and no backup or restore/migration features for ConBee/RaspBee based Zigbee Coordination adapters, while the ZHA integration works stable with all and in practice offers feature parity with Silicon Labs, Texas Instruments, and ConBee/RaspBee based Zigbee Coordination adapters + have the built-in option for users to perform seamless migrations between all of those radio types.

I agree with that specific point + the fact that users cannot run multiple instances of the ZHA integration.

ZHA developer dmulcahey begun work on a side-project called “ZHA WS” (e.i. “ZHA WebSocket”) which goal I understand was to break out the ZHA integration component into its own stand-alone websocket server application and re-implement ZHA in a fork that uses that socket interface instead, using a client-server model architecture:

I believe that would have worked as the underlying framework to make it possible for users to run ZHA as a stand-alone server application that could eventually even allow you to multiple external instances of ZHA.

dmulcahey did, however, put that side-project on hold about a year ago and look to has since focused on refactoring ZHA which should make it easier for new developers to help with its development.

By the way, if you are interested in using low-level Zigbee commands in ZHA then checkout zha-toolkit: