Hi all,
any help is appreciated: I have Homeassistant running on a raspberry pi and use a Sonoff Dongle E V2 with Z2M. After a reboot, Z2M starts without a hitch and all my Zigbee devices work like a charm, but after a couple of hours, Z2M crashes with error messages suggesting the dongle disconnected.
Troubleshooting I have already tried:
- flashing different firmware versions onto the dongle namely 7.4.5.0 from https://github.com/darkxst/silabs-firmware-builder/tree/main/firmware_builds/zbdonglee with baudrates 115200 and 230400 (currently on the dongle) as well as 8.2.2.0 from https://github.com/Nerivec/silabs-firmware-builder/releases/download/v2025.6.2-pre0/ - makes no difference, resp 8.2.2.0 does not work. The default firmware with which the dongle was shipped did not work with Z2M (must have been 7.4.4.0 although not 100% sure there, didn’t back it up before the first flashing)
- Toggling RTSCTS in Z2M config (see below) - makes no difference
- Plugged dongle into different usb ports of the pi - makes no difference
As I said, any help is very much appreciated - most of my devices are zigbee and they used to work fine out of the box with ZHA, until I recently installed thermostats which required me to migrate to Z2M (yes, of course I removed ZHA when configuring Z2M). As it is the setup is not usable, the zigbee devices are offline more often than online…
Setup info:
Home Assistant OS 16.3
Core 2025.11.1
Supervisor 2025.11.2
Frontend 20251105.0
Mosquitto broker 6.5.2
Zigbee2MQTT 2.6.3-1
Raspberry Pi rpi3-64
SONOFF Zigbee 3.0 USB Dongle E Plus V2 with ID /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20240105095150-if00
with Firmware v7.4.5.0 for Baudrate 230400 flashed
Z2M log:
[16:24:24] INFO: Preparing to start...
[16:24:25] INFO: Socat not enabled
[16:24:26] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-11-13 16:25:00] error: zhc:tuya: Failed to sync time with '0xa4c138beb69717f2' (Error: ZCL command 0xa4c138beb69717f2/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,248,67,105,22,6,83]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '45494'.))
[2025-11-13 16:25:03] error: zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2025-11-13 16:25:03] error: zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[2025-11-13 16:25:03] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:25:03] error: zh:ember: Adapter fatal error: HOST_FATAL_ERROR
[2025-11-13 16:25:03] error: z2m: Adapter disconnected, stopping
[16:25:24] INFO: Preparing to start...
[16:25:25] INFO: Socat not enabled
[16:25:26] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-11-13 16:25:57] error: zhc:tuya: Failed to sync time with '0xa4c138beb69717f2' (Error: ZCL command 0xa4c138beb69717f2/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,248,127,105,22,6,143]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '45494'.))
[2025-11-13 16:26:30] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=82 Len=26].
[2025-11-13 16:26:30] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=82 Len=26].
[2025-11-13 16:26:31] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=83 Len=26].
[2025-11-13 16:26:31] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=83 Len=26].
[2025-11-13 16:26:59] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=65 Len=26].
[2025-11-13 16:27:00] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=65 Len=26].
[2025-11-13 16:28:11] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=165 Len=26].
[2025-11-13 16:28:20] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=165 Len=26].
[2025-11-13 16:28:42] error: zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2025-11-13 16:28:45] error: zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[2025-11-13 16:28:45] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:28:45] error: zh:ember: Adapter fatal error: HOST_FATAL_ERROR
[2025-11-13 16:29:24] error: z2m: Adapter disconnected, stopping
[16:30:19] INFO: Preparing to start...
[16:30:19] INFO: Socat not enabled
[16:30:21] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-11-13 16:30:54] error: zhc:tuya: Failed to sync time with '0xa4c138beb69717f2' (Error: ZCL command 0xa4c138beb69717f2/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,249,167,105,22,7,183]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '45494'.))
[2025-11-13 16:30:55] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=80 Len=26].
[2025-11-13 16:30:55] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=80 Len=26].
[2025-11-13 16:30:58] error: zhc:tuya: Failed to sync time with '0xa4c13823fa33b71f' (Error: ZCL command 0xa4c13823fa33b71f/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,249,167,105,22,7,183]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed ({"target":26098,"apsFrame":{"profileId":260,"clusterId":61184,"sourceEndpoint":1,"destinationEndpoint":1,"options":4416,"groupId":0,"sequence":160},"zclSequence":1,"commandIdentifier":11} timed out after 10000ms))
[2025-11-13 16:31:05] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=185 Len=26].
[2025-11-13 16:31:07] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=185 Len=26].
[2025-11-13 16:31:09] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=186 Len=26].
[2025-11-13 16:31:09] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=186 Len=26].
[2025-11-13 16:31:54] error: zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2025-11-13 16:32:00] error: zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[2025-11-13 16:32:01] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:32:01] error: zh:ember: Adapter fatal error: HOST_FATAL_ERROR
[2025-11-13 16:32:02] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:32:10] error: zh:ember:ezsp: ERROR Transaction failure; status=ASH_ERROR_TIMEOUTS. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=227 Len=7].
[2025-11-13 16:32:20] error: zh:ember:ezsp: ERROR Transaction failure; status=ASH_NCP_FATAL_ERROR. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=227 Len=7].
[2025-11-13 16:32:33] error: z2m: Adapter disconnected, stopping
[16:33:08] INFO: Preparing to start...
[16:33:09] INFO: Socat not enabled
[16:33:10] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-11-13 16:33:47] error: zhc:tuya: Failed to sync time with '0xa4c138beb69717f2' (Error: ZCL command 0xa4c138beb69717f2/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,250,85,105,22,8,101]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '45494'.))
[2025-11-13 16:33:47] error: zhc:tuya: Failed to sync time with '0xa4c13823fa33b71f' (Error: ZCL command 0xa4c13823fa33b71f/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,250,85,105,22,8,101]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '26098'.))
[2025-11-13 16:36:59] error: zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2025-11-13 16:37:01] error: zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[2025-11-13 16:37:01] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:37:01] error: zh:ember: Adapter fatal error: HOST_FATAL_ERROR
[2025-11-13 16:37:01] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:37:01] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:37:14] error: zh:ember:ezsp: ERROR Transaction failure; status=ASH_ERROR_TIMEOUTS. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=5 Len=7].
[2025-11-13 16:37:14] error: zh:controller: Failed to disable join on stop: Error: ASH_ERROR_TIMEOUTS
[2025-11-13 16:37:15] error: z2m: Failed to stop Zigbee2MQTT (Error: NOT_CONNECTED
at Ezsp.ezspGetNetworkParameters (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:3158:19)
at /app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1590:46
at Queue.execute (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/utils/queue.ts:36:20)
at EmberAdapter.backup (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1588:16)
at Controller.backup (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:363:28)
at Controller.stop (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:337:13)
at Zigbee.stop (/app/lib/zigbee.ts:224:9)
at Controller.stop (/app/lib/controller.ts:304:13)
at stop (/app/index.js:160:5)
at process.handleQuit (/app/index.js:168:13))
[16:37:31] INFO: Preparing to start...
[16:37:31] INFO: Socat not enabled
[16:37:33] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-11-13 16:38:16] error: zhc:tuya: Failed to sync time with '0xa4c138beb69717f2' (Error: ZCL command 0xa4c138beb69717f2/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,251,94,105,22,9,110]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '45494'.))
[2025-11-13 16:38:16] error: zhc:tuya: Failed to sync time with '0xa4c13823fa33b71f' (Error: ZCL command 0xa4c13823fa33b71f/1 manuSpecificTuya.mcuSyncTime({"payloadSize":8,"payload":[105,21,251,95,105,22,9,111]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Delivery failed for '26098'.))
[2025-11-13 16:38:16] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=108 Len=26].
[2025-11-13 16:38:16] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=108 Len=26].
[2025-11-13 16:39:43] error: zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2025-11-13 16:39:49] error: zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[2025-11-13 16:39:51] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:39:51] error: zh:ember: Adapter fatal error: HOST_FATAL_ERROR
[2025-11-13 16:39:51] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:39:52] error: z2m: Adapter disconnected, stopping
[16:40:11] INFO: Preparing to start...
[16:40:12] INFO: Socat not enabled
[16:40:14] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-11-13 16:41:02] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=122 Len=26].
[2025-11-13 16:41:08] error: zh:ember:ezsp: ERROR Transaction failure; status=ERROR_WRONG_DIRECTION. Last Frame: [FRAME: ID=52:"SEND_UNICAST" Seq=122 Len=26].
[2025-11-13 16:41:15] error: zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[2025-11-13 16:41:15] error: zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[2025-11-13 16:41:15] error: zh:ember:uart:ash: Error while parsing received frame, status=ASH_NCP_FATAL_ERROR.
[2025-11-13 16:41:15] error: zh:ember: Adapter fatal error: HOST_FATAL_ERROR
[2025-11-13 16:41:17] error: z2m: Adapter disconnected, stopping
Z2MQTT config:
data_path: /config/zigbee2mqtt
socat:
enabled: false
master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
slave: tcp-listen:8485,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
options: "-d -d"
log: false
mqtt:
server: mqtt://core-mosquitto:1883
user: mqtt-user
password: #######
serial:
port: >-
/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20240105095150-if00
adapter: ember
rtscts: true
baudrate: 230400
Mosquitto broker log:
2025-11-13 16:20:33: Client <unknown> closed its connection.
2025-11-13 16:21:03: Client mqttjs_d662dfc5 disconnected.
2025-11-13 16:21:59: New connection from 172.30.33.3:57554 on port 1883.
2025-11-13 16:22:00: New client connected from 172.30.33.3:57554 as mqttjs_10cf6c3c (p2, c1, k60, u'mqtt-user').
2025-11-13 16:22:34: New connection from 172.30.32.2:42696 on port 1883.
2025-11-13 16:22:35: Client <unknown> closed its connection.
2025-11-13 16:23:45: Client mqttjs_10cf6c3c disconnected.
2025-11-13 16:24:35: New connection from 172.30.32.2:38672 on port 1883.
2025-11-13 16:24:35: Client <unknown> closed its connection.
2025-11-13 16:24:49: New connection from 172.30.33.3:36286 on port 1883.
2025-11-13 16:24:49: New client connected from 172.30.33.3:36286 as mqttjs_7493c7f8 (p2, c1, k60, u'mqtt-user').
2025-11-13 16:25:04: Client mqttjs_7493c7f8 disconnected.
2025-11-13 16:25:49: New connection from 172.30.33.3:40452 on port 1883.
2025-11-13 16:25:49: New client connected from 172.30.33.3:40452 as mqttjs_4d8a54f7 (p2, c1, k60, u'mqtt-user').
2025-11-13 16:26:35: New connection from 172.30.32.2:55530 on port 1883.
2025-11-13 16:26:35: Client <unknown> closed its connection.
2025-11-13 16:28:36: New connection from 172.30.32.2:41954 on port 1883.
2025-11-13 16:28:37: Client <unknown> closed its connection.
2025-11-13 16:30:05: Client mqttjs_4d8a54f7 disconnected.
2025-11-13 16:30:36: New connection from 172.30.32.2:45830 on port 1883.
2025-11-13 16:30:36: Client <unknown> closed its connection.
2025-11-13 16:30:45: New connection from 172.30.33.3:58820 on port 1883.
2025-11-13 16:30:45: New client connected from 172.30.33.3:58820 as mqttjs_ee73544a (p2, c1, k60, u'mqtt-user').
2025-11-13 16:32:37: New connection from 172.30.32.2:36514 on port 1883.
2025-11-13 16:32:38: Client <unknown> closed its connection.
2025-11-13 16:32:41: Client mqttjs_ee73544a disconnected.
2025-11-13 16:33:36: New connection from 172.30.33.3:56408 on port 1883.
2025-11-13 16:33:36: New client connected from 172.30.33.3:56408 as mqttjs_212764be (p2, c1, k60, u'mqtt-user').
2025-11-13 16:34:38: New connection from 172.30.32.2:58904 on port 1883.
2025-11-13 16:34:38: Client <unknown> closed its connection.
2025-11-13 16:36:38: New connection from 172.30.32.2:34090 on port 1883.
2025-11-13 16:36:38: Client <unknown> closed its connection.
2025-11-13 16:36:51: Client mqttjs_212764be disconnected.
2025-11-13 16:38:01: New connection from 172.30.33.3:40802 on port 1883.
2025-11-13 16:38:01: New client connected from 172.30.33.3:40802 as mqttjs_9cb81904 (p2, c1, k60, u'mqtt-user').
2025-11-13 16:38:38: New connection from 172.30.32.2:54764 on port 1883.
2025-11-13 16:38:38: Client <unknown> closed its connection.
2025-11-13 16:39:54: Client mqttjs_9cb81904 disconnected.
2025-11-13 16:40:37: New connection from 172.30.33.3:54642 on port 1883.
2025-11-13 16:40:37: New client connected from 172.30.33.3:54642 as mqttjs_7498d8a8 (p2, c1, k60, u'mqtt-user').
2025-11-13 16:40:38: New connection from 172.30.32.2:40606 on port 1883.
2025-11-13 16:40:38: Client <unknown> closed its connection.
2025-11-13 16:41:18: Client mqttjs_7498d8a8 disconnected.
2025-11-13 16:42:38: New connection from 172.30.32.2:48530 on port 1883.
2025-11-13 16:42:38: Client <unknown> closed its connection.
Supervisor log:
2025-11-13 16:40:02.149 INFO (SyncWorker_7) [supervisor.docker.manager] Cleaning addon_45df7312_zigbee2mqtt application
2025-11-13 16:40:11.557 INFO (MainThread) [supervisor.docker.addon] Starting Docker add-on ghcr.io/zigbee2mqtt/zigbee2mqtt-aarch64 with version 2.6.3-1
2025-11-13 16:40:13.734 INFO (MainThread) [supervisor.api.middleware.security] /supervisor/info access from 45df7312_zigbee2mqtt
2025-11-13 16:41:27.087 ERROR (MainThread) [asyncio] Task exception was never retrieved
future: <Task finished name='Task-82270' coro=<Addon.watchdog_container() done, defined at /usr/src/supervisor/supervisor/addons/addon.py:1588> exception=AddonsJobError('Rate limit exceeded, more than 10 calls in 0:30:00')>
Traceback (most recent call last):
File "/usr/src/supervisor/supervisor/addons/addon.py", line 1602, in watchdog_container
await self._restart_after_problem(event.state)
File "/usr/src/supervisor/supervisor/jobs/decorator.py", line 287, in wrapper
if not await self._handle_throttling(group_name):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/supervisor/supervisor/jobs/decorator.py", line 544, in _handle_throttling
raise on_condition(
f"Rate limit exceeded, more than {self.throttle_max_calls} calls in {self.throttle_period(group_name)}",
)
supervisor.exceptions.AddonsJobError: Rate limit exceeded, more than 10 calls in 0:30:00
