What are the benefits of zigbee2mqtt over ZHA and is it worth migrating?
I've over 40 zigbee devices and am currently using ZHA but keep seeing people recommending using zigbee2mqtt. But I can't work out if it's worth the time re-importing all the devices or not.
What are the benefits of using zigbee2mqtt over ZHA and is it easy to move over if that's the best way to go?
Zigbee2MQTT supports more devices, and has better support for some devices that ZHA only has basic support. For example I have some vibration sensors which ZHA supports for basic vibration detection, but Zigbee2MQTT can set vibration sensitivity levels as well as detect vibration.
Zigbee2MQTT also has a more advanced interface with more configuration options, displays more information, and has better network visualisation.
Another advantage is that Zigbee2MQTT can be run on a different system from Home Assistant. That way the Zigbee coordinator can be placed in optimal location of the home, while the Home Assistant can be located elsewhere.
If you are already comfortable with using ZHA I there isn't much need to switch, unless you need support for devices only supported in Zigbee2MQTT or really need to relocate your Zigbee coordinator. Migrating a whole Zigbee network can be a bit of a pain. If you are curious about it you could always buy second Zigbee coordinator and run both.
For the Aquara vibration sensors, there is a way to set the sensitivity using Zha. It's not the most intuitive thing, though. There are a bunch of variables that aren't well named, and you just have to know what value to set. I don't have the info at my fingertips, but it is available on the web somewhere.
I moved from zha to z2m, but I'm having a hard time remembering why. I believe there were a few components which weren't working correctly with zha, which work fine with z2m.
I moved from ZHA to Zigbee2MQTT because I had a few devices (mainly xiaomi/aqara) misbehaving on ZHA.
It depends on your use case and with many thread/matter devices coming out this year I’m not sure if you even need to switch unless you have specific devices in mind not supported on ZHA.
Thanks for all the input. It seems that since everything is working fine for me I should just keep using ZHA. Maybe when I have plenty of free time I'll migrate to get the extra features but it's not something that I've missed.
I'm shocked nobody has mentioned it, but the primary advantage of Zigbee2MQTT is the ability to run Z2M on a machine different from HA. ZHA unfortunately doesn't allow for this, which is a shame because my Z2M box (RasPi) is centrally located but my HA box is not.
When I first got a Zigbee USB stick I tried both out and picked z2m because it was easier to do automations in HA at the time. This was because the Zigbee device I was using (the Cube) and the actions of the Cube were in attributes is ZHA and were actions in Z2M.
Since then I remember buying some Zigbee devices from Lidl which were like a suprise reveal, it was all over the HA sub. Problem was, they weren't supported because they had just been released.
A couple of days later I saw that they were supported in z2m beta so I just switched to that for a bit, and maybe a week later they worked in the stable branch. I was amazed at how quickly a brand new device got support and have never even considered going over to ZHA.
Some things that you might notice are devices going through battery much faster than you might expect, this has to do with the implementation of battery reporting on some devices under ZHA, I can't say who's fault it's it, but at least on Z2M you can even set the reporting intervals manually (if the device supports this)
I migrated to Z2M about a year ago and I have had nothing but problems. Mostly around stability of Mosquito. I am back on ZHA now and find it infinitely more stable and reliable. If Z2M ever does a direct HA API integration like ZwaveJS does I’ll probably go back.