ZHA (Zigbee Home Automation integration)
ZHA is Home Assistant’s built-in Zigbee integration: plug a supported coordinator dongle into the machine running Home Assistant and it runs a Zigbee network natively — no separate software, no MQTT broker, no vendor hub. It is the simpler of the two big DIY Zigbee routes, with Zigbee2MQTT being the more configurable one.
ZHA is built on the zigpy library and ships inside Home Assistant, so devices appear directly as Home Assistant entities with no bridge layer. Standard-conforming Zigbee 3.0 devices generally just work; manufacturer quirks are handled by a community “quirks” library that plays the same role as Zigbee2MQTT’s converters, and coverage between the two projects overlaps heavily.
Choosing between ZHA and Zigbee2MQTT is a recurring Home Assistant question with a boring answer: ZHA for simplicity and tight HA integration, Zigbee2MQTT for maximum device-feature coverage, standalone operation, and finer control (per-device settings, a binding UI, a network map). Both use the same coordinator hardware, and migrating between them is possible with a coordinator backup, though device re-interviewing is usually involved.