I’m posting this to save other users a lot of time — this issue looks like bad hardware, firmware, or USB problems, but it isn’t.
Symptoms
- Zigbee2MQTT logs show:
- Adapter detected
- Coordinator starts
- Backup written
- Home Assistant UI:
- Add-on flips back to
Start - CPU/RAM briefly appears, then disappears
- Looks like it “isn’t running”
- Add-on flips back to
- Config edits:
- Some keys are silently removed on Save
- No clear validation error shown
This led me (wrongly) to suspect:
- Bad dongle
- Firmware incompatibility
- ZBT-2 vs Sonoff issue
- Mosquitto problem
Root cause
The HA Zigbee2MQTT add-on requires a socat: block to exist, even when socat is disabled.
If socat: is missing entirely:
- Config saves
- Zigbee2MQTT starts briefly
- Then exits cleanly (not a crash)
- HA UI flips back to
Start
Because it’s a clean shutdown, it’s very misleading.
Working minimal config
This works reliably:
data_path: /config/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr
options: "-d -d"
log: false
mqtt:
server: mqtt://core-mosquitto
serial:
port: /dev/ttyUSB0
adapter: zstack
baudrate: 115200
Once this was in place:
- Add-on stayed running
- UI state matched reality
- Both ZBT-2 and Sonoff Zigbee 3.0 USB Dongle Plus worked fine
Environment
- Home Assistant Green
- HA OS
- Zigbee2MQTT add-on 2.7.x
- Mosquitto add-on (default config)
- Dongles tested:
- Nabu Casa ZBT-2
- Sonoff Zigbee 3.0 USB Dongle Plus
Why posting this
The failure mode looks exactly like:
- bad hardware
- firmware mismatch
- USB instability
It’s actually a config schema / validation gotcha.
Hopefully this saves someone else a weekend ![]()