Hi,
I am new to the Home Assistant world, and I am trying to set up my home-asstant stack. I have decided to run homeassistant inside a Docker container alongside with zgibe2mqtt, eclipse-mosquitto. For the communication antenna, I have chosen ZBT-2. Everything seems to work. My Home Assistant instance is available, and I can open it, same zigbe2mqtt. Here in the zigbe2mqtt i start seeing some issues:
- When I click permit join, I have to do it multiple times to actually make it open for my Zigbee devices. I am often getting an error as below:
[4/23/2026, 5:22:04 PM] z2m: Zigbee: allowing new devices to join.
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Received ERROR from adapter, with code=ERROR_EXCEEDED_MAXIMUM_ACK_TIMEOUT_COUNT.
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: ASH disconnected | Adapter status: ASH_NCP_FATAL_ERROR
[4/23/2026, 5:22:04 PM] zh:ember:ezsp: Fatal error, status=ASH_NCP_FATAL_ERROR. Last Frame: [FRAME: ID=38:"GET_EUI64" Seq=33 Len=13]
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: ASH COUNTERS since last clear:
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Total frames: RX=37, TX=72
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Cancelled : RX=0, TX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: DATA frames : RX=35, TX=35
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: DATA bytes : RX=298, TX=373
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Retry frames: RX=0, TX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: ACK frames : RX=0, TX=36
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: NAK frames : RX=0, TX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: nRdy frames : RX=0, TX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: CRC errors : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Comm errors : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Length < minimum: RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Length > maximum: RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Bad controls : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Bad lengths : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Bad ACK numbers : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Out of buffers : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Retry dupes : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Out of sequence : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: ACK timeouts : RX=0
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: Port closed, error=null
[4/23/2026, 5:22:04 PM] zh:ember:uart:ash: ======== ASH stopped ========
[4/23/2026, 5:22:04 PM] zh:ember:ezsp: ======== EZSP stopped ========
[4/23/2026, 5:22:04 PM] zh:ember: ======== Ember Adapter Stopped ========
[4/23/2026, 5:22:04 PM] z2m: Adapter disconnected, stopping
[4/23/2026, 5:22:04 PM] z2m: Stopping Zigbee2MQTT (restart=false, code=2, signal=undefined)
I have to click the Permit join button multiple times to make it work. The same situation happens when I am trying to toggle some state, like, for example, the silence state of my smoke sensor. The difference is that it mostly passes for property updates of my sensor but still sometimes fails with the same error as for the permit join.
- Another issue is that I have managed to connect my Moes ZSS-HM-SSD01 (smoke sensor). I have also tried it by doing a self-check smoke alarm where I could clearly hear a beeping sound from the sensor. I have also waited more than 24h to make sure that maybe some exposed data will come after some time. But this sensor shows only silence and linkqualty. All other settings are null, and it looks like I cannot trigger them (or this is expected behavior, and I need to try with real smoke)? The interview of my sensor is reported as SUCCESSFUL. Below you can find some screenshot:
I do not know if there is something I am doing wrong or if my antenna or sensor is broken? Maybe you can help and let me know if I can test it somehow, or perhaps you see I have done something wrong and you can tell me what I can fix. Below I also share my docker-compose.yaml and zigbee2mqtt.yaml config files. If you need any logs from me or i should try to perform some operations, please let me know in the comments, and I will provide everything you need.
services:
traefik:
image: traefik:v3.6.11
container_name: traefik
restart: unless-stopped
command:
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
extra_hosts:
- "host.docker.internal:host-gateway"
networks:
home-net:
ipv4_address: ${TRAEFIK_STATIC_IP}
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
privileged: true
network_mode: host
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.ha.rule=Host(`${DOMAIN_NAME}`) || Host(`${LOCAL_IP}`)"
- "traefik.http.routers.ha.entrypoints=web"
- "traefik.http.services.ha-service.loadbalancer.server.url=http://host.docker.internal:${HA_PORT}"
mqtt:
container_name: mqtt
image: eclipse-mosquitto
restart: unless-stopped
ports:
- "${MQTT_PORT}:${MQTT_PORT}"
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
healthcheck:
test: ["CMD-SHELL", "timeout 5s mosquitto_sub -t '$$SYS/#' -C 1 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
networks:
- home-net
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
restart: unless-stopped
depends_on:
- mqtt
volumes:
- ./zigbee2mqtt-data:/app/data
- /run/udev:/run/udev:ro
ports:
- "${Z2M_FRONTEND_PORT}:${Z2M_FRONTEND_PORT}"
environment:
- TZ=Europe/Warsaw
devices:
- "${ZIGBEE_PORT}:/dev/ttyACM0"
networks:
- home-net
labels:
- "traefik.enable=true"
- "traefik.http.routers.z2m.rule=(Host(`${DOMAIN_NAME}`) || Host(`${LOCAL_IP}`)) && PathPrefix(`/zigbee2mqtt-proxy`)"
- "traefik.http.routers.z2m.entrypoints=web"
- "traefik.http.services.z2m-service.loadbalancer.server.port=${Z2M_FRONTEND_PORT}"
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
command: tunnel --no-autoupdate run
environment:
- TUNNEL_TOKEN=${TUNNEL_TOKEN}
networks:
- home-net
networks:
home-net:
driver: bridge
ipam:
config:
- subnet: ${INTERNAL_SUBNET}
gateway: ${INTERNAL_GATEWAY}
homeassistant: true
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: mqtt://mqtt:MQTT_PORT_PLACEHOLDER
serial:
port: ZIGBEE_PORT_PLACEHOLDER
adapter: ZIGBEE_ADAPTER_PLACEHOLDER
baudrate: 460800
rtscts: false
frontend:
port: FRONTEND_PORT_PLACEHOLDER
enabled: true
base_url: /zigbee2mqtt-proxy/
