Cannot really answer your questions but if you ever swap to z2m and you keep the exact same friendly name you are using in zha, automations won't need to be updated. I know it would be still a pain to re-pair but z2m is better than zha, so you will gain in the long term.
homeassistant
Home Assistant is open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server. Available for free at home-assistant.io
Couldn’t agree more. ZHA is supposed to be more simple to use, but if one is already using HA it’s not going to be long before they reach its limits. Zigbee2MQTT has better device support and more features. While the basic setup may be a little bit more complicated than ZHA you get the benefits mentioned earlier, and you don’t really need to understand all of its functionality from the start - you can learn as you go.
When you talk about the limits of ZHA, what are you referring to exactly? It would probably take an entire weekend for me to re-pair all the devices on my Zigbee network, but I'm not completely opposed to the idea of I gain some functionality that I didn't have before.
Based on what I read when I first set up HA, it seems like ZHA was somewhat lacking for quite some time but is now essentially equivalent to Z2MQTT. I went with ZHA because it seemed like the "default" for Zigbee.
In what ways is it really better? I‘ve switched from deconz to ZHA two years ago, and dread the reconnecting…
It is decoupled from home automation system.
It does just one thing, and it should do it well. No duplication of efforts by writting support for same devices in multiple softwares.
In future if I wanted to redo HA from scratch or swap it with some else software, I can continue using Zigbee2MQTT without repairing all devices.
Even, I can test different software in parallel, by connecting it to already running MQTT, to access sensor readings of my existing running Zigbee network.
Sounds good. I think I'll look into also switching from my Conbee II to a CC2652 based adapter, which might allow me to slowly transition from one system to the other with both adapters running in parallel.
I'm no expert so not easy to answer to your questions with many details. What I know is that z2m support more devices than zha, get updates more frequently, can be running separately from ha meaning that if ha goes down for any reason, you would be still able to control your ZigBee devices (I personally run it with HA), for some devices z2m expose more informations, also you can ask support for devices.
I said it is better because it is a general consensus from users but if zha works good enough for you then you can stick to it but if you encounter limitations/problems, z2m might be the solution. It is easier to start with zha but in long term, z2m offer more capabilities.
I've swapped out at few of my Zigbee devices in the past, and even though I've deleted the original device, HA will add an "_2" to the entity ID, which breaks any automation that uses it, even if the friendly name remains the same. The only time I've seen this not happen is when a device drops off the network and I re-pair it. Is there a trick to making this work? Even if I don't switch to Z2MQTT, this would be really useful to know. I have a few unreliable cheap door sensors that I'd like to replace, but they're tied to so many automations that I've been dragging my feet on it.
No particular tricks, maybe it's a one of the limitation of zha. As an exemple, I recently replace a bulb by a new one and old one was repurpose somewhere else in the house, the only thing I did was to rename old bulb and added the new one with old bulb name.