Zigbee2MQTT MAC_NO_ACK (233): Why Commands Fail to Send
Zigbee2MQTT logs MAC_NO_ACK (233) and the device ignores your command? Learn how it differs from MAC_CHANNEL_ACCESS_FAILURE and what to check first.
Zigbee2MQTT logs MAC_NO_ACK (233) and the device ignores your command? Learn how it differs from MAC_CHANNEL_ACCESS_FAILURE and what to check first.
Zigbee2MQTT sends no scene_recall confirmation over MQTT, and its success log line can't be trusted. Why, and what to monitor in automations instead.

A third-party extension runs automations inside Zigbee2MQTT itself, so triggers keep working when Home Assistant is down. Here's how it works.

Zigbee2MQTT's remove request just gained keep_config and clear_cache. What each preserves before you re-pair a device, and what neither one touches.

Removed a device in Zigbee2MQTT but Home Assistant still shows it? How the automatic discovery cleanup works, why it misses, and the current fix.

Zigbee2MQTT cannot run two coordinators in one instance. How a second instance works in Home Assistant, and the identity collision that breaks entities.

Zigbee2MQTT bind reports success but nothing happens? Read the failed array in the response first, then work five documented causes ranked by likelihood.

Diagnose Zigbee2MQTT onboarding loops, hangs and 404 errors using startup logs, saved settings, data paths and version-specific fixes.

Swapping a dead Zigbee2MQTT device without losing your Home Assistant history: the entity_id step that makes it work, and what it still won't carry.

Changing Zigbee2MQTT's base_topic rewrites every Home Assistant unique_id, so entities duplicate and the originals strand. What breaks and how to recover.