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

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

Примечание

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

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

cd /opt/rocket-home
make detect-firmware

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

Какая нужна

Семейство

Минимум

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

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

сборка 20210708

20240710 и новее

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       # координатор должен быть свободен

Сеть и спаренные устройства прошивку переживают: ключи хранятся и в самом координаторе, и в данных хаба. Резервную копию всё равно сделайте — это одна команда.

TI Z-Stack (ZBDongle-P, CC2652)

  1. Скачайте файл CC1352P2_CC2652P_launchpad_coordinator_YYYYMMDD.hex из репозитория Koenkk/Z-Stack-firmware (каталог coordinator).

  2. Прошейте — разбирать донгл не нужно, режим загрузчика включается сам:

    docker run --rm --device /dev/ttyUSB0 -v "$PWD":/fw python:3.12-slim bash -c \
      "pip -q install cc2538-bsl pyserial intelhex && \
       cc2538-bsl.py -p /dev/ttyUSB0 -evw --bootloader-sonoff-usb \
       /fw/CC1352P2_CC2652P_launchpad_coordinator_20240710.hex"
    

    Путь /dev/ttyUSB0 замените на свой — его показывает make detect-device.

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 под новую прошивку
make smoke             # сквозная проверка

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