
Zigbee2MQTT Retain vs state.json: What Survives a Restart
Which restart you had decides the fix: Zigbee2MQTT republishes state on its own in two of three cases, and retain only covers the third. All local.

Which restart you had decides the fix: Zigbee2MQTT republishes state on its own in two of three cases, and retain only covers the third. All local.

Zigbee2MQTT names multi-gang switch entities switch_l1, switch_l2, or switch_left. What an endpoint is, why naming varies, and how to map each gang.

A practitioner's map of Zigbee2MQTT's MQTT topic model: state, /set, /get, availability, bridge topics, and the three output modes, all local, no cloud.

Renaming a Zigbee2MQTT device changes its MQTT topic instantly but not its Home Assistant entity IDs. What breaks, what doesn't, and how to rename safely.

Zigbee2MQTT lost every device after a restart, or database.db is 0 bytes? What the file stores, why it happens, and how to recover before re-pairing.

Zigbee2MQTT has five per-device options for noisy state updates. What debounce, throttle, and the filter options each do, and which one fits your device.

A Zigbee2MQTT pairing that stalls on \"failed to interview\" usually means the join worked and the discovery queries timed out — not a config mistake.

Zigbee2MQTT's \"Failed to configure\" error explained: what the ZCL status codes mean, when it's harmless, and how to force a reconfigure without re-pairing.

A practical checklist for securing Zigbee2MQTT's Mosquitto broker and frontend, from the add-on's anonymous-access default onward. Every fix stays local.