Прошивка координатора¶
Координатор — это USB-стик, который держит Zigbee-сеть. У него своя прошивка, и от неё зависит, какую версию ZigBee2MQTT можно поставить на хаб. Если хаб предлагает версию старее ожидаемой или прямо советует обновить координатор — причина здесь.
Примечание
Это необязательная процедура. Если хаб работает и устройства на связи, обновлять прошивку «на всякий случай» не нужно.
Какая прошивка сейчас¶
cd /opt/rocket-home
make detect-firmware
Команда поднимает служебный контейнер, опрашивает координатор и печатает семейство и версию. Это занимает около минуты; ZigBee2MQTT на это время останавливается.
Какая нужна¶
Семейство |
Минимум |
Рекомендуется |
|---|---|---|
TI Z-Stack (SONOFF ZBDongle-P, CC2652, CC1352) |
сборка |
|
Silicon Labs EFR32 (SONOFF ZBDongle-E, SLZB-06M) |
EZSP |
|
С прошивкой ниже минимума 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)¶
Выберите файл по радиомодулю координатора — маркировка на металлическом экране модуля или в описании стика. Ошибиться нельзя: образ для чужой платы не включит усилитель и антенный ключ, и сеть потеряет дальность. Полная таблица — в 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_*.zipCC2652R, CC2652RB, CC2652R7, CC1352P7
CC2652R_…,CC2652RB_…,CC2652R7_…,CC1352P7_…— по названию чипаСкачайте архив из последнего выпуска и распакуйте
.hexв текущий каталог.Переведите координатор в режим загрузчика:
SONOFF ZBDongle-P делает это сам — ничего нажимать не нужно, в команде ниже оставьте
--bootloader-sonoff-usb.Остальные платы — зажмите кнопку BOOT (бывает подписана FLASH или BSL), вставьте стик в USB и отпустите кнопку. Флаг
--bootloader-sonoff-usbиз команды уберите.
Загрузчик принимает одну команду: после неё координатор перезагружается в обычный режим. Если команда не сработала, повторите вход в загрузчик.
Прошейте:
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)¶
Возьмите файл
.gbl(сборкаncp-uart-hw) в репозитории darkxst/silabs-firmware-builder.Прошейте:
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 под новую прошивку и применить её
Если устройства после обновления не отвечают, дайте сети несколько минут: маршруты перестраиваются не мгновенно. Дальше — диагностика.