Hubs, ZHA, Zigbee2mqtt

ZHA now wins for ease of migrating between coordinators, and channel change capability. Still, two years later, z2m still maintains the same advantages over ZHA that made me switch. The way I see it - ZHA is easier to get started, z2m is easier to live with.

I actually run both, but ZHA is little more than a test platform.

Fine for ZHA/Thread. Mostly OK for z2m, but a CC2652 coordinator is still preferred for z2m. EZSP support works well in z2m at this point, but is still missing some key backup/restore functionality.

Not usually. New zigbee devices will usually see support in both ZHA and z2m, just don’t expect it to work the day they are announced.

Many “WiFi” devices can be local. They are dependent on your router or other WiFi access point being functional, but not necessarily on the internet being connected.

For instance, most HomeKit wifi devices are compatible with HA and are generally 100% local. Some, like the Aqara FP2 sensor may need the manufacturers app for setup, but once setup function locally.

Before purchasing, check any needed integration to make sure it is local, not cloud based. For instance a quick google “home assistant kasa integration” wil take you straight to the HA Integration Docs:

Personally I use zigbee for anything battery operated, a few zigbee mains devices, Lutron Caseta for most smart switches, several homekit devices, a few ESPHome devices, a few Wiz bulbs. All are locally controlled. The only cloud integrations I have left is my Moen Flo water shutoff valve and Nexia Thermostat, both of which pre-date my HA relationship.