My ZBT-2 antena is not working / can not see state of my device in zigbee2mqtt?

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:

  1. 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.

  1. 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/