Error while starting zigbee-herdsman Failed to start zigbee

You don’t need the router firmware, but the coordinator firmware.

Unfortunately its the exact same situation (and error) when using the coordinator firmware.

Hi, I have stumbled upon this problem with my zigbee dongle-E. Seems that Sonoff sells two models, “dongle-e” which uses ember based adapter and “dongle-p (plus)” a zstack adapter. From your config I see your adapter is set to “ember” have you tried setting to “zstack” ? That helped me (a dumb little parameter change), I had “zstack” setting on my Dongle-E adapter, which failed with same error.
Hope this helps even after long time.

Note that on the zigbee2mqtt adapters zstack page this confusion is mentioned

Had exactly he same issues when using the P ZBDongle-E in on my Linux server PC running Docker, Portainer and Zigbe2MQTT.
Got it all to work thanks to ChatGPT.

Had logs using Visual Code Studio or Portainer to paste on CHatGPT to interpret what happened and why.
In my case the path to the USB port was incorrect. And after that reject_unauthorized: TRUE needed to be set to FALSE to validate the certificat of MQTT for the Zignbee2MQTT server. Al in all several items that needed tweaking.
My current Docker-compose.yaml:

services:
  portainer:
    container_name: portainer
    image: portainer/portainer-ce
    restart: always
    ports:
      - "9000:9000/tcp"
    environment:
      - TZ=Europe/Amsterdam
    volumes:
      - /opt/portainer:/data
      - /var/run/docker.sock:/var/run/docker.sock
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /opt/homeassistant/config:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
  mosquitto:
    image: eclipse-mosquitto
    container_name: mosquitto
    volumes:
      - /opt/mosquitto/config:/mosquitto/config
      - /opt/mosquitto/data:/mosquitto/data
      - /opt/mosquitto/log:/mosquitto/log
    ports:
      - 1884:1884
      - 9001:9001
    restart: unless-stopped
  nodered:
    container_name: Node-RED
    image: nodered/node-red:latest
    environment:
      - TZ=Europe/Amsterdam
    ports:
      - "1880:1880"
    # user: 1000:1000
    volumes:
      - /opt/nodered/data:/data
    restart: unless-stopped
  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart: unless-stopped
    volumes:
      - /opt/zigbee2mqtt/data:/app/data
      - /run/udev:/run/udev:ro
    ports:
      - 81:8080
    environment:
      - TZ=Europe/Amsterdam
    devices: 
      - "/dev/ttyUSB0:/dev/ttyUSB0"

And Sigbee2MQTT:

homeassistant:
  enabled: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://mosquitto:1884
  user: hass
  password: JidBkt!0974
  keepalive: 60
  reject_unauthorized: false
  version: 4
frontend:
  enabled: true
advanced:
  pan_id: 6770
serial:
  port: /dev/ttyUSB0
  adapter: ember
  baudrate: 115200
version: 4

Using ChatGPT it checks everything for you and even implements places to store your logs and configurations. Lifesaver for me, try it.

I’m going to predict that you will run into the exact same issue somewhere in the future, ChatGPT should have explained to you the purpose of /dev/serial/by-id/...