Прошивка координатора

Координатор — это USB-стик, который держит Zigbee-сеть. У него своя прошивка, и от неё зависит, какую версию ZigBee2MQTT можно поставить на хаб. Если хаб предлагает версию старее ожидаемой или прямо советует обновить координатор — причина здесь.

Примечание

Это необязательная процедура. Если хаб работает и устройства на связи, обновлять прошивку «на всякий случай» не нужно.

Какая прошивка сейчас

cd /opt/rocket-home
make detect-firmware

Команда поднимает служебный контейнер, опрашивает координатор и печатает семейство и версию. Это занимает около минуты; ZigBee2MQTT на это время останавливается.

Какая нужна

Семейство

Минимум

Рекомендуется

TI Z-Stack (SONOFF ZBDongle-P, CC2652, CC1352)

сборка 20210708

20250321 и новее

Silicon Labs EFR32 (SONOFF ZBDongle-E, SLZB-06M)

EZSP 7.4.x

7.4.x и новее

С прошивкой ниже минимума ZigBee2MQTT остаётся на старой ветке (1.x): новые версии с такими координаторами просто не работают.

Предупреждение

CC2531 — исключение: обновление прошивки не поможет. Этот координатор не поддерживается в ZigBee2MQTT 2.x и плохо тянет сети больше полутора десятков устройств. Его имеет смысл заменить на SONOFF ZBDongle-P или ZBDongle-E.

Перед прошивкой

cd /opt/rocket-home
make backup     # резервная копия: настройки, база сети, ключи, токены
make down       # координатор должен быть свободен

Прошивка Z-Stack стирает память координатора целиком, вместе с сетью. Устройства перепаривать не придётся: при следующем запуске ZigBee2MQTT сам вернёт сеть на координатор из резервной копии в данных хаба (data/zigbee2mqtt/coordinator_backup.json). Поэтому make backup перед прошивкой обязателен, а каталог данных хаба нельзя чистить, пока сеть не поднялась.

TI Z-Stack (ZBDongle-P, CC2652)

  1. Выберите файл по радиомодулю координатора — маркировка на металлическом экране модуля или в описании стика. Ошибиться нельзя: образ для чужой платы не включит усилитель и антенный ключ, и сеть потеряет дальность. Полная таблица — в README Koenkk/Z-Stack-firmware.

    Координатор

    Файл

    SONOFF ZBDongle-P, модуль RFSTAR RF-BM-2652P2, TI LaunchPad CC1352P-2

    CC1352P2_CC2652P_launchpad_coordinator_*.zip

    модуль Ebyte E72-2G4M20S1E, Ebyte E79

    CC1352P2_CC2652P_other_coordinator_*.zip

    CC2652R, CC2652RB, CC2652R7, CC1352P7

    CC2652R_…, CC2652RB_…, CC2652R7_…, CC1352P7_… — по названию чипа

    Скачайте архив из последнего выпуска и распакуйте .hex в текущий каталог.

  2. Переведите координатор в режим загрузчика:

    • SONOFF ZBDongle-P делает это сам — ничего нажимать не нужно, в команде ниже оставьте --bootloader-sonoff-usb.

    • Остальные платы — зажмите кнопку BOOT (бывает подписана FLASH или BSL), вставьте стик в USB и отпустите кнопку. Флаг --bootloader-sonoff-usb из команды уберите.

    Загрузчик принимает одну команду: после неё координатор перезагружается в обычный режим. Если команда не сработала, повторите вход в загрузчик.

  3. Прошейте:

    docker run --rm --device /dev/ttyUSB0 -v "$PWD":/fw python:3.12-slim bash -c \
      "apt-get update -qq && apt-get install -y -qq git >/dev/null && \
       pip -q install pyserial intelhex git+https://github.com/JelmerT/cc2538-bsl.git@28cce97 && \
       cc2538-bsl -p /dev/ttyUSB0 -evw --bootloader-sonoff-usb \
       /fw/CC1352P2_CC2652P_launchpad_coordinator_20250321.hex"
    

    Путь /dev/ttyUSB0 замените на свой — его показывает make detect-device. Успешная прошивка заканчивается строкой Verified (match: 0x…). Ответ Timeout waiting for ACK/NACK after 'Synch' значит, что координатор не в режиме загрузчика: вернитесь к шагу 2.

Silicon Labs EmberZNet (ZBDongle-E, SLZB-06M)

  1. Возьмите файл .gbl (сборка ncp-uart-hw) в репозитории darkxst/silabs-firmware-builder.

  2. Прошейте:

    pipx run universal-silabs-flasher --device /dev/ttyACM0 \
      flash --firmware ncp-uart-hw-….gbl
    

Совет

У SLZB-06M есть собственный веб-интерфейс — через него прошивка обновляется проще.

После прошивки

cd /opt/rocket-home
make detect-firmware        # версия должна обновиться
make update                 # подобрать версию ZigBee2MQTT под новую прошивку и применить её

Если устройства после обновления не отвечают, дайте сети несколько минут: маршруты перестраиваются не мгновенно. Дальше — диагностика.