I've run around 20 Zigbee and an equal number of Zwave devices for several years. Zigbee is great. Zwave is terrible: despite operating at a better frequency for a home environment (lots of walls,) in my experience is has worse propagation, higher latency, and an unreliable mesh topology that randomly breaks and has to be manually repaired.
Anecdote from the other side: my zwave devices just work for 8 years now, while there are times some zigbee devices just don’t respond. I suspect the zwave network is more stable because all routers are powered all the time, while I have lots of zigbee bulbs that are behind a real switch so they leave the network if I turn the lights off. There seems like to be no way in zigbee from preventing those devices to be used as routers.
Yeah Zigbee routers need to be on all the time, if you turn them off, other devices will start to form connections with other mesh nodes and will fail unexpected when you flip the switch back on.
I've found that some people have great zigbee experiences and terrible z-wave and just as many are the opposite. I chalk it up to individual environments etc. Go with what works best from you.
What zwave devices have you been using? I have only used zwave (leviton, ge) and have only had to restart a switch 2-3 times. My biggest gripe with zwave was when home assistant switched the supported plugin.
Interesting, maybe your ZWave dongle is not the greatest? I also run a mix of ZWave & Zigbee with their own appropriate dongles plugged into my Home Assistant server and they've both been great. No issues with devices dropping or needing to manually repair anything.
For both I use a 6ft USB extension cable to mount the dongles up on the wall behind my server instead of hanging out of the USB port.
There's also many generations of zwave specs. Everything is backwards compatible but perhaps perhaps perhaps the presence of older devices might slow down or degraded what newer devices might otherwise be speaking.
I had that experience with Z-Wave using openzwave. Then I switched to node-zwave-js and the difference was night and day. All unreliability gone.
My impression is that it therefore very much depends on the quality of the controller software since various mesh management operations are delegated to it.