Zigbee2MQTT with a Sonoff Zigbee 3.0 UBD Dongle

I have a Sonoff 3.0 Dongle Plus V2 that I currently have running using a standard Zigbee integration connecting to three devices and seems to be working ok.

I wanted to investigate using Zigbee2MQTT, so have installed a Mosquitto broker with a dedicated user which seems happy enough.

I then installed zigbee2MQTT with a mqtt user with the serial port setting obtained from the hardware. However, I understand that this was running ezsp which needs to change to ember and thus following the description from Smart Home Junkie to flash the dongle with a suitable firmware.

When I try to start the service, I get…

[23:13:42] INFO: Preparing to start…
[23:13:42] INFO: Socat not enabled
[23:13:42] INFO: Starting Zigbee2MQTT…
Starting Zigbee2MQTT without watchdog.
[2025-02-02 23:13:43] info: z2m: Logging to console, file (filename: log.log)
[2025-02-02 23:13:43] info: z2m: Starting Zigbee2MQTT version 2.1.0 (commit #unknown)
[2025-02-02 23:13:43] info: z2m: Starting zigbee-herdsman (3.2.5)
[2025-02-02 23:13:43] info: zh:ember: Using default stack config.
[2025-02-02 23:13:43] info: zh:ember: ======== Ember Adapter Starting ========
[2025-02-02 23:13:43] info: zh:ember:ezsp: ======== EZSP starting ========
[2025-02-02 23:13:43] info: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2025-02-02 23:13:43] info: zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control.
[2025-02-02 23:13:43] info: zh:ember:uart:ash: Serial port opened
[2025-02-02 23:13:43] info: zh:ember:uart:ash: ======== ASH starting ========
[2025-02-02 23:13:46] info: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2025-02-02 23:13:46] info: zh:ember:uart:ash: ======== ASH starting ========
[2025-02-02 23:13:48] info: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2025-02-02 23:13:48] info: zh:ember:uart:ash: ======== ASH starting ========
[2025-02-02 23:13:51] info: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2025-02-02 23:13:51] info: zh:ember:uart:ash: ======== ASH starting ========
[2025-02-02 23:13:53] info: zh:ember:uart:ash: ======== ASH Adapter reset ========
[2025-02-02 23:13:53] info: zh:ember:uart:ash: ======== ASH starting ========
[2025-02-02 23:13:56] error: z2m: Error while starting zigbee-herdsman
[2025-02-02 23:13:56] error: z2m: Failed to start zigbee-herdsman
[2025-02-02 23:13:56] error: z2m: Check Zigbee2MQTT fails to start/crashes runtime | Zigbee2MQTT for possible solutions
[2025-02-02 23:13:56] error: z2m: Exiting…
[2025-02-02 23:13:56] error: z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
at EmberAdapter.initEzsp (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:670:19)
at EmberAdapter.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1533:24)
at Controller.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
at Zigbee.start (/app/lib/zigbee.ts:69:27)
at Controller.start (/app/lib/controller.ts:142:13)
at start (/app/index.js:161:5)

any pointers from anyone that might have some insight would be gratefully received.
Carlos

Hi Carlos,
Which of the Sonoff specifically do you have? Dongle P or Dongle E? (You can see this in the bottom of the antenna. The configuration for these if different.

Can you also share the configuration you have in your Zigbee2MQTT addon? or the zigbee configuration yaml and share what the dongle device name is in the hardware section of Home assistant.

Hi Piggybank

The dongle is a Sonoff ZB Dongle-E

Configuration
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

base_topic: zigbee2mqtt
server: mqtt://192.168.1.93:1883
user: mqtt_user
password: (assigned user  - password)

serial

port: >-
  /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110-if00
adapter: ember

In hardware
ttyACM0

/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110-if00

Device Path:

ID: /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110-if00

Attributes:

DEVLINKS: >-
  /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110-if00
  /dev/serial/by-path/pci-0000:00:14.0-usb-0:2:1.0
  /dev/serial/by-path/pci-0000:00:14.0-usbv2-0:2:1.0
DEVNAME: /dev/ttyACM0
DEVPATH: /devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0/tty/ttyACM0
ID_BUS: usb
ID_MODEL: SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2
ID_MODEL_ENC: SONOFF\x20Zigbee\x203.0\x20USB\x20Dongle\x20Plus\x20V2
ID_MODEL_ID: 55d4
ID_PATH: pci-0000:00:14.0-usb-0:2:1.0
ID_PATH_TAG: pci-0000_00_14_0-usb-0_2_1_0
ID_PATH_WITH_USB_REVISION: pci-0000:00:14.0-usbv2-0:2:1.0
ID_REVISION: '0442'
ID_SERIAL: ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110
ID_SERIAL_SHORT: '20230802195110'
ID_TYPE: generic
ID_USB_DRIVER: cdc_acm
ID_USB_INTERFACES: ':020201:0a0000:'
ID_USB_INTERFACE_NUM: '00'
ID_USB_MODEL: SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2
ID_USB_MODEL_ENC: SONOFF\x20Zigbee\x203.0\x20USB\x20Dongle\x20Plus\x20V2
ID_USB_MODEL_ID: 55d4
ID_USB_REVISION: '0442'
ID_USB_SERIAL: ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110
ID_USB_SERIAL_SHORT: '20230802195110'
ID_USB_TYPE: generic
ID_USB_VENDOR: ITEAD
ID_USB_VENDOR_ENC: ITEAD
ID_USB_VENDOR_ID: 1a86
ID_VENDOR: ITEAD
ID_VENDOR_ENC: ITEAD
ID_VENDOR_ID: 1a86
MAJOR: '166'
MINOR: '0'
SUBSYSTEM: tty
TAGS: ':systemd:'
USEC_INITIALIZED: '4138127'

The only thing I can think of here is that it specifically mentions for the Dongle E not to set rtscts to false or maybe a firmware that is having issues…
EmberZNet adapters (Silicon Labs) | Zigbee2MQTT

Have you tried setting the rtscts to false?

Hmm.
I appreciate your help, I tried adding that to the serial instead of the adapter in the serial section:-

port: >-
  /dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20230802195110-if00
rtscts: false

but this also fails.

Starting Zigbee2MQTT without watchdog.
[2025-02-04 21:55:17] info: 	z2m: Logging to console, file (filename: log.log)
[2025-02-04 21:55:17] info: 	z2m: Starting Zigbee2MQTT version 2.1.0 (commit #unknown)
[2025-02-04 21:55:17] info: 	z2m: Starting zigbee-herdsman (3.2.5)
[2025-02-04 21:55:17] warning: 	zh:ezsp: 'ezsp' driver is deprecated and will only remain to provide support for older firmware (pre 7.4.x). Migration to 'ember' is recommended. If using Zigbee2MQTT see https://github.com/Koenkk/zigbee2mqtt/discussions/21462
[2025-02-04 21:55:27] error: 	zh:ezsp:uart: --> Error: Error: {"sequence":-1} after 10000ms
[2025-02-04 21:55:27] error: 	zh:ezsp:ezsp: Connection attempt 1 error: Error: Failure to connect
[2025-02-04 21:55:42] error: 	zh:ezsp:uart: --> Error: Error: {"sequence":-1} after 10000ms
[2025-02-04 21:55:42] error: 	zh:ezsp:ezsp: Connection attempt 2 error: Error: Failure to connect

Note I have flashed the dongle with the firmware ncp-uart-hw-v7.4.2.0-zbdonglee-115200.gbl from
silabs-firmware-builder/firmware_builds/zbdonglee at ember-nohw · darkxst/silabs-firmware-builder

as suggested in the description of EmberZNet adapters (Silicon Labs) | Zigbee2MQTT

I am truly out of my depth here so may need to ask around if anyone else might know where I am going wrong, but like I said, many thanks for your help.

You should not remove adapter: ember. Add both adapter and rtscts: false

I have just realized why its not working. I have been a proper numpty. The dongle is already running and connected to the ZHA integration and so would need either to attach a second dongle using a different channel, or terminate the ZHA integration.
At the moment ZHA is working well for me and all I was doing was trying to see if Z2MQTT a better solution.
I cant see an easy way to temporally disable the ZHA integration, so for now I think keeping that as my zigbee integration is the way I will go for now.

Thanks again.
Carlos

ahh!!! yes, you cannot have both ZHA and Zigbee2MQTT at the same time.
Great to see you got it cleared out!
Saludos!

1 Like