At the time it had a longer list of supported devices, and the UI for configuring them was better. It felt kind of “dirty” to layer in yet another protocol (MQTT) between the Zigbee side and the HA side, but it’s worked great.
It could very well be that ZHA today is the same or even better than Z2M, but at the time I made the switchover, there was some device that I couldn’t use with ZHA that Z2M supported.
I did recently buy the latest generation of Philips Hue Festavia string lights and Home Assistant (via ZHA) had no clue how to set any of the scenes on it. I was able to use the official app to set scenes via Bluetooth though, while still being able to use ZHA to control power and brightness.
I believe the product was released very near the Christmas period though, so I'm sure it'll have full support in ZHA by next year, might just bring em out early and do it myself if nobody else has done it by then.
I noticed that Z2M seems to say it supports effects on my string lights, do you know if that also means it'll automatically show UI for setting effects in HA?
It's sounding like I made a mistake choosing ZHA thinking it was the "HA native" solution...
But from all the praise Z2M is getting here I guess I'll have to try it!
One last question if you end up seeing this, can you still group things when using Z2M?
MQTT is something you should set up ASAP. There are plenty of reasons to set it up: ESPresnse is a big one (can't say enough about this offering) AWTRIX is another, even if you aren't going to integrate zigbee.
MQTT becomes a cheap and easy way to add data to, and interact with home assistant. And, any device that communicates over MQTT can be controlled by you (custom code, dead easy) outside HA.
ZHA is much more bare bones. I didn't try the mqtt one but I'm not so interested in something that uses mqtt in the middle. Another thing that can break..
That said Zigbee2MQTT isn't without its problems, it's still hobby-grade and not hard to crash with cheap and badly behaving devices.