ioBroker/ioBroker.zigbee

Sonoff ZBDongle-E: "Failed to start EZSP layer with status=HOST_FATAL_ERROR."

lebrinkma opened this issue · 9 comments

I updated to the latest git version (commit b9b1c4a) to see if #2115 is fixed in main.

With it ioBroker.zigbee does not start, the following error is shown in the logs:

2024-08-28 00:17:06.454 - error: zigbee.0 (916) Starting zigbee-herdsman problem : "Failed to start EZSP layer with status=HOST_FATAL_ERROR."

My adapter, a Sonoff ZBDongle-E, is running the lastest firmware version 7.4.3.0 from https://github.com/darkxst/silabs-firmware-builder/raw/main/firmware_builds/zbdonglee/ncp-uart-hw-v7.4.3.0-zbdonglee-115200.gbl. Before I was using the official firmware from iTead (https://github.com/itead/Sonoff_Zigbee_Dongle_Firmware/raw/master/Dongle-E/NCP_7.4.3/ncp-uart-sw_EZNet7.4.3_V1.0.0.gbl) which resulted in the same error.

I spend quite some time debugging the issue with its nondescript error message until I found out its caused by setting rtscts to true.

When commenting out lines 968-970 thereby disabling rtscts the zigbee adapter starts normally:

ioBroker.zigbee/main.js

Lines 967 to 970 in b9b1c4a

let setRtscts = false;
if (adapterType == 'ember' || adapterType == 'ezsp') { // Firmware 7.4.1.0
setRtscts = true;
}

That's strange as the firmware from darkxst repo should support rtscts.

I cannot completly rule out the issue is related to running iobroker inside a podman container (not in rootless mode tough). I pass through the device to the container and have set the env USBDEVICES=/dev/ttyUSB0 accordingly.

I would at least suggest making the rtscts option configurable in the web interface.

Full Log
2024-08-28 00:16:52.544 - info: host.iobroker "system.adapter.zigbee.0" enabled
2024-08-28 00:16:52.686 - info: host.iobroker instance system.adapter.zigbee.0 in version "1.10.5" (non-npm: ioBroker/ioBroker.zigbee) started with pid 916
2024-08-28 00:16:53.546 - debug: zigbee.0 (916) Redis Objects: Use Redis connection: 127.0.0.1:9001
2024-08-28 00:16:53.553 - debug: zigbee.0 (916) Objects client ready ... initialize now
2024-08-28 00:16:53.554 - debug: zigbee.0 (916) Objects create System PubSub Client
2024-08-28 00:16:53.554 - debug: zigbee.0 (916) Objects create User PubSub Client
2024-08-28 00:16:53.558 - debug: zigbee.0 (916) Objects client initialize lua scripts
2024-08-28 00:16:53.560 - debug: zigbee.0 (916) Objects connected to redis: 127.0.0.1:9001
2024-08-28 00:16:53.564 - debug: zigbee.0 (916) Redis States: Use Redis connection: 127.0.0.1:9000
2024-08-28 00:16:53.568 - debug: zigbee.0 (916) States create System PubSub Client
2024-08-28 00:16:53.568 - debug: zigbee.0 (916) States create User PubSub Client
2024-08-28 00:16:53.570 - debug: zigbee.0 (916) States connected to redis: 127.0.0.1:9000
2024-08-28 00:16:53.577 - debug: zigbee.0 (916) Plugin sentry Do not initialize Plugin (enabled=false)
2024-08-28 00:16:53.579 - debug: zigbee.0 (916) Plugin sentry destroyed because not initialized correctly
2024-08-28 00:16:53.618 - info: zigbee.0 (916) starting. Version 1.10.5 (non-npm: ioBroker/ioBroker.zigbee) in /opt/iobroker/node_modules/iobroker.zigbee, node: v20.17.0, js-controller: 6.0.9
2024-08-28 00:16:53.625 - debug: zigbee.0 (916) Using zigbee-herdsman with settings: {"network":{"panID":38513,"extendedPanID":[125,210,99,69,25,249,54,47],"channelList":[15],"networkKey":[...]},"databasePath":"/opt/iobroker/iobroker-data/zigbee_0/shepherd.db","backupPath":"/opt/iobroker/iobroker-data/zigbee_0/nvbackup.json","serialPort":{"baudRate":115200,"rtscts":true,"path":"/dev/ttyUSB0","adapter":"ember"},"adapter":{"forceStartWithInconsistentAdapterConfiguration":false},"legacy":false}
2024-08-28 00:16:53.638 - info: zigbee.0 (916) delete old Backup files. keep only last 10
2024-08-28 00:16:53.638 - info: zigbee.0 (916) Starting Zigbee npm ...
2024-08-28 00:16:53.648 - debug: zigbee.0 (916) Backup /opt/iobroker/iobroker-data/zigbee_0/backup_2024_08_28-00_16_53.tar.gz success
2024-08-28 00:16:53.707 - debug: zigbee.0 (916) Starting zigbee-herdsman...
2024-08-28 00:16:53.774 - info: zigbee.0 (916) Installed Version: ioBroker/ioBroker.zigbee
2024-08-28 00:16:56.158 - info: admin.0 (153) <== Disconnect system.user.admin from ::ffff:192.168.0.95
2024-08-28 00:17:06.454 - error: zigbee.0 (916) Starting zigbee-herdsman problem : "Failed to start EZSP layer with status=HOST_FATAL_ERROR."
2024-08-28 00:17:06.455 - error: zigbee.0 (916) Failed to start Zigbee
2024-08-28 00:17:06.455 - error: zigbee.0 (916) Error herdsman start
2024-08-28 00:17:16.458 - info: zigbee.0 (916) Try to reconnect. 1 attempts left
2024-08-28 00:17:16.459 - info: zigbee.0 (916) Starting Zigbee npm ...
2024-08-28 00:17:16.463 - debug: zigbee.0 (916) Starting zigbee-herdsman...
2024-08-28 00:17:16.472 - info: zigbee.0 (916) Installed Version: ioBroker/ioBroker.zigbee
2024-08-28 00:17:16.574 - error: zigbee.0 (916) Starting zigbee-herdsman problem : "Failed to start EZSP layer with status=HOST_FATAL_ERROR."
2024-08-28 00:17:16.574 - error: zigbee.0 (916) Failed to start Zigbee
2024-08-28 00:17:16.574 - error: zigbee.0 (916) Error herdsman start
iobroker summary
======================= SUMMARY =======================
			v.2024-05-22


model name	: Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz
Kernel          : x86_64
Userland        : amd64
Docker          : v10.0.0

Installation: 		Docker
Kernel: 		x86_64
Userland: 		64 bit
Timezone: 		CEST +0200
User-ID: 		0
Display-Server: 	false


Pending OS-Updates: 	7
Pending iob updates: 	0

Nodejs-Installation:
/usr/bin/nodejs 	v20.17.0
/usr/bin/node 		v20.17.0
/usr/bin/npm 		10.8.2
/usr/bin/npx 		10.8.2
/usr/bin/corepack 	0.29.3

Recommended versions are nodejs 20.17.0 and npm 10.8.2
Your nodejs installation is correct

MEMORY: 
               total        used        free      shared  buff/cache   available
Mem:            8.2G        1.8G        2.3G        5.4M        4.4G        6.4G
Swap:           1.6G          0B        1.6G
Total:          9.9G        1.8G        4.0G

Active iob-Instances: 	11
Upgrade policy: none

ioBroker Core: 		js-controller 		6.0.9
			admin 			7.0.23

ioBroker Status: 	iobroker is running on this host.


Objects type: jsonl
States  type: jsonl

Status admin and web instance:
+ system.adapter.admin.0                  : admin                 : iobroker                                 -  enabled, port: 8081, bind: 0.0.0.0 (SSL), run as: admin
+ system.adapter.web.0                    : web                   : iobroker                                 -  enabled, port: 8082, bind: 0.0.0.0 (SSL), run as: admin

Objects: 		575
States: 		412

Size of iob-Database:

38M	/opt/iobroker/iobroker-data/objects.jsonl
3.8M	/opt/iobroker/iobroker-data/states.jsonl

=================== END OF SUMMARY ====================

Can you please do a test-install of zigbee2mqtt.io in a similarly configured podman container to see if the internal libraries have the same issue ?

I do not have the hardware and cannot make the test.

A.

I built and installed zigbee2mqtt v1.39.1 locally to rule out a potential podman container related issue, but the same error occurs with rtscts: true.

[2024-08-29 23:13:48] error: 	z2m: Error while starting zigbee-herdsman
[2024-08-29 23:13:48] error: 	z2m: Failed to start zigbee
[2024-08-29 23:13:48] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
[2024-08-29 23:13:48] error: 	z2m: Exiting...
[2024-08-29 23:13:48] error: 	z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.

Setting rtscts: false works again. For good measure I also tried lastest zigbee2mqtt git commit ed9de74 with the same results.

So the issue does not seem specific to ioBroker.zigbee.

Full Log
Starting Zigbee2MQTT without watchdog.
[2024-08-29 23:13:35] info: 	z2m: Logging to console, file (filename: log.log)
[2024-08-29 23:13:35] debug: 	z2m: Can't load state from file /home/zigbee/zigbee2mqtt/data/state.json (doesn't exist)
[2024-08-29 23:13:35] info: 	z2m: Starting Zigbee2MQTT version 1.39.1 (commit #e132316a)
[2024-08-29 23:13:35] info: 	z2m: Starting zigbee-herdsman (0.55.3)
[2024-08-29 23:13:35] debug: 	z2m: Using zigbee-herdsman with settings: '"{\"network\":{\"panID\":38513,\"extendedPanID\":[125,210,99,69,25,249,54,47],\"channelList\":[15],\"networkKey\":\"HIDDEN\"},\"databasePath\":\"/home/zigbee/zigbee2mqtt/data/database.db\",\"databaseBackupPath\":\"/home/zigbee/zigbee2mqtt/data/database.db.backup\",\"backupPath\":\"/home/zigbee/zigbee2mqtt/data/coordinator_backup.json\",\"serialPort\":{\"rtscts\":true,\"path\":\"/dev/ttyUSB0\",\"adapter\":\"ember\"},\"adapter\":{\"concurrent\":null,\"delay\":null,\"disableLED\":false}}"'
[2024-08-29 23:13:35] info: 	zh:ember: Using default stack config.
[2024-08-29 23:13:35] debug: 	zh:controller: Starting with options '{"network":{"networkKeyDistribute":false,"networkKey":"HIDDEN","panID":38513,"extendedPanID":[125,210,99,69,25,249,54,47],"channelList":[15]},"serialPort":{"rtscts":true,"path":"/dev/ttyUSB0","adapter":"ember"},"databasePath":"/home/zigbee/zigbee2mqtt/data/database.db","databaseBackupPath":"/home/zigbee/zigbee2mqtt/data/database.db.backup","backupPath":"/home/zigbee/zigbee2mqtt/data/coordinator_backup.json","adapter":{"disableLED":false,"concurrent":null,"delay":null}}'
[2024-08-29 23:13:35] info: 	zh:ember: ======== Ember Adapter Starting ========
[2024-08-29 23:13:35] info: 	zh:ember:ezsp: ======== EZSP starting ========
[2024-08-29 23:13:35] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2024-08-29 23:13:35] debug: 	zh:ember:uart:ash: Opening serial port with {"path":"/dev/ttyUSB0","baudRate":115200,"rtscts":true,"autoOpen":false,"parity":"none","stopBits":1,"xon":false,"xoff":false}
[2024-08-29 23:13:35] info: 	zh:ember:uart:ash: Serial port opened
[2024-08-29 23:13:35] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2024-08-29 23:13:35] debug: 	zh:ember:uart:ash: ---> [FRAME type=RST]
[2024-08-29 23:13:35] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 0/2500
[2024-08-29 23:13:35] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 100/2500
[2024-08-29 23:13:35] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 200/2500
[2024-08-29 23:13:35] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 300/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 400/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 500/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 600/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 700/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 800/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 900/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1000/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1100/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1200/2500
[2024-08-29 23:13:36] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1300/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1400/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1500/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1600/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1700/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1800/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1900/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2000/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2100/2500
[2024-08-29 23:13:37] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2200/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2300/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2400/2500
[2024-08-29 23:13:38] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2024-08-29 23:13:38] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: ---> [FRAME type=RST]
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 0/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 100/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 200/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 300/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 400/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 500/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 600/2500
[2024-08-29 23:13:38] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 700/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 800/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 900/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1000/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1100/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1200/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1300/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1400/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1500/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1600/2500
[2024-08-29 23:13:39] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1700/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1800/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1900/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2000/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2100/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2200/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2300/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2400/2500
[2024-08-29 23:13:40] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2024-08-29 23:13:40] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: ---> [FRAME type=RST]
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 0/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 100/2500
[2024-08-29 23:13:40] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 200/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 300/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 400/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 500/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 600/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 700/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 800/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 900/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1000/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1100/2500
[2024-08-29 23:13:41] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1200/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1300/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1400/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1500/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1600/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1700/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1800/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1900/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2000/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2100/2500
[2024-08-29 23:13:42] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2200/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2300/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2400/2500
[2024-08-29 23:13:43] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2024-08-29 23:13:43] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: ---> [FRAME type=RST]
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 0/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 100/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 200/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 300/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 400/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 500/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 600/2500
[2024-08-29 23:13:43] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 700/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 800/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 900/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1000/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1100/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1200/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1300/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1400/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1500/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1600/2500
[2024-08-29 23:13:44] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1700/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1800/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1900/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2000/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2100/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2200/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2300/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2400/2500
[2024-08-29 23:13:45] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2024-08-29 23:13:45] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: ---> [FRAME type=RST]
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 0/2500
[2024-08-29 23:13:45] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 100/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 200/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 300/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 400/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 500/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 600/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 700/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 800/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 900/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1000/2500
[2024-08-29 23:13:46] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1100/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1200/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1300/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1400/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1500/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1600/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1700/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1800/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 1900/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2000/2500
[2024-08-29 23:13:47] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2100/2500
[2024-08-29 23:13:48] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2200/2500
[2024-08-29 23:13:48] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2300/2500
[2024-08-29 23:13:48] debug: 	zh:ember:uart:ash: Waiting for RSTACK... 2400/2500
[2024-08-29 23:13:48] error: 	z2m: Error while starting zigbee-herdsman
[2024-08-29 23:13:48] error: 	z2m: Failed to start zigbee
[2024-08-29 23:13:48] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
[2024-08-29 23:13:48] error: 	z2m: Exiting...
[2024-08-29 23:13:48] error: 	z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
    at EmberAdapter.initEzsp (/home/zigbee/zigbee2mqtt/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:746:19)
    at EmberAdapter.start (/home/zigbee/zigbee2mqtt/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1758:24)
    at Controller.start (/home/zigbee/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/controller.ts:127:29)
    at Zigbee.start (/home/zigbee/zigbee2mqtt/lib/zigbee.ts:63:27)
    at Controller.start (/home/zigbee/zigbee2mqtt/lib/controller.ts:139:27)
    at start (/home/zigbee/zigbee2mqtt/index.js:154:5)

Edit: I went ahead and also tested the zigbee2mqtt recommended firmware version 7.4.1 from https://github.com/darkxst/silabs-firmware-builder/raw/main/firmware_builds/zbdonglee/ncp-uart-hw-v7.4.1.0-zbdonglee-115200.gbl. Same error occures.

Despite the firmware filenames for the Sonoff ZBDongle-E from darkxst/silabs-firmware-builder containing the string hw, which commonly stands for hardware flow control support, the device/firmware apparently does not support hardware flow control. I checked again and it is stated here hidden in plain sight. 🙈

So ioBroker.zigbee IMHO needs an option for the rtscts flag. The default in mqtt2zigbee is off.
Enabling rtscts by default for releases after 1.10.5 will break installations for existing users with adapters that don't support it like the Sonoff ZBDongle-E.

Thus I would consider this issue a regression and bug, not merely as an enhancement request.

I am hesitant to add that:

  • one more option for people to mess things up.
  • The rts/cts option was explicitly activated for Ember/EZSP devices in the code. No other coordinator uses it. Why ?

A.

I agree, adding more config options is not ideal as it makes the setup more complicated.

Out of the recommended USB EmberZNet Adpters listed in the zigbee2mqtt guide two support hardware flow control, the Home Assistant SkyConnect and SMLIGHT SLZB-07, and the Sonoff ZBDongle-E does not.
But devices that support hardware flow control in principal can also be flashed with a firmware that only supports software flow control, see list of firmware versions predefined by ember-zli flasher ħere.

The majority of (recommended) firmware versions require rtscts: false.
A notable exception being the (official) firmware for Home Assistant SkyConnect and Yellow.

As it currently stands I would suggest keeping the default for rts/cts option off, mainly to avoid breaking existing installs and introduce the new expert option for rts/cts for Home Assitant SkyConnect and other, more niche adapters.

In the future it might be possible to add a detailed preset for supported adapters/firmwares that automatically set the correct options like baudrate, rts/cts etc.

we have now a checkbox for flow control in settings tab
grafik

@arteck This looks like a copy paste error

const setRtscts = this.config.baudRate ? this.config.baudRate : false;

look's good.

@arteck Do you need any help with fixing the ci/linter erros?
If so, feel free to write me an email.

Do you need any help with fixing the ci/linter erros?

this is a never ending story....