
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.

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.

A Zigbee2MQTT OTA that errors out or freezes at a percentage is rarely a bricked device. Here's what each failure means and which fix actually applies.

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.

Power, current and voltage missing on a Tuya TS011F Zigbee plug? Firmware 1.0.5 disabled automatic reporting. Here's the polling fix, fully local.

Aqara or Xiaomi plug showing 0W or N/A in Zigbee2MQTT or ZHA? Two documented reporting faults, the firmware trap to avoid, and how to tell them apart.

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.

Zigbee2MQTT's last_seen goes frozen, N/A, or oddly fresh on dead devices. What it tracks, why it misleads, and how to build a stale check that works.

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