Поиск по базе знаний

Как прошить Zigbee стик Sonoff 3.0 для интеграции в умный дом

При создании масштабируемого умного дома использование стандартных проприетарных хабов от производителей (например, Aqara или Tuya) часто становится ограничивающим фактором. Они навязывают облачные зависимости, ограничивают выбор поддерживаемых брендов и имеют лимиты на количество подключенных датчиков. Отличной альтернативой является развертывание собственного локального сервера умного дома с универсальным USB-координатором. Самым популярным и доступным решением на рынке является USB-стик Sonoff Zigbee 3.0 Dongle Plus.

Однако для раскрытия полного потенциала этого устройства, увеличения дальности радиосвязи, повышения стабильности Mesh-сети и поддержки более сотни конечных устройств, стик необходимо прошить актуальной версией программного обеспечения. В рамках этого руководства мы разберем процесс прошивки координатора, рассмотрим технические различия между существующими аппаратными ревизиями стика и научимся интегрировать его в домашний сервер для последующей трансляции устройств в экосистему Яндекса.

Различия аппаратных версий Sonoff Dongle: ZBDongle-P и ZBDongle-E

Компания Sonoff выпускает две принципиально разные версии стика Dongle Plus, которые требуют использования разного софта и прошивок:

  1. ZBDongle-P (Texas Instruments). Построен на базе чипа CC2652P. Это классическая, наиболее стабильная и проверенная временем версия. Она поддерживается всеми системами автоматизации «из коробки». Обладает внешней антенной и аппаратным усилителем сигнала на +20 дБм.
  2. ZBDongle-E (Silicon Labs). Построен на чипе EFR32MG21. Более современная версия, которая поддерживает не только протокол Zigbee, но и новый стандарт Thread (Matter). Прошивка этого чипа может осуществляться без разборки корпуса через специализированные веб-интерфейсы в браузере Chrome.

Перед началом работы обязательно переверните стик и посмотрите на маркировку на металлическом корпусе, чтобы определить вашу модель, так как запись несовместимого файла заблокирует работу микроконтроллера. Данное руководство сфокусировано на прошивке классической и надежной модели ZBDongle-P, требующей работы с загрузчиком Texas Instruments.

Инструменты и файлы для работы

Для успешного проведения процедуры прошивки вам потребуются следующие программные компоненты:

  • Драйвер виртуального COM-порта. Для ZBDongle-P необходим драйвер Silicon Labs CP210x USB to UART Bridge VCP Drivers. Скачайте и установите его с официального сайта Silicon Labs, иначе компьютер не сможет определить подключенное устройство.
  • Файл прошивки. Скачайте файл прошивки типа Coordinator (прошивки типа Router используются только для расширения сети, но не для управления ею) из репозитория разработчика Koenkk (проект Zigbee2MQTT). Выбирайте файл с расширением .hex для чипа CC2652P.
  • Программа-прошивальщик. Мы будем использовать кроссплатформенный скрипт на языке Python — cc2538-bsl.py. Он позволяет прошивать чип без использования тяжелого софта от Texas Instruments. Также для работы скрипта на компьютере должен быть установлен интерпретатор Python версии 3.x с библиотеками pyserial и intelhex.

Пошаговый процесс прошивки стика ZBDongle-P

Шаг 1: Разборка корпуса для доступа к кнопке

Открутите два маленьких винта на торце корпуса стика со стороны USB-разъема с помощью крестовой отвертки. Аккуратно выдвиньте текстолитовую плату из алюминиевого кожуха. На плате вы увидите две маленькие кнопки: RST (перезагрузка) и BOOT (вход в режим загрузчика).

Шаг 2: Вход в режим Bootloader

Убедитесь, что стик отключен от компьютера. Зажмите пальцем или пластиковой зубочисткой кнопку BOOT на плате устройства. Не отпуская кнопку, вставьте USB-разъем стика в свободный порт вашего компьютера. Подождите 2-3 секунды и отпустите кнопку. Плата перейдет в режим программирования. Светодиод на плате при этом гореть не должен.

Шаг 3: Определение номера COM-порта

Откройте «Диспетчер устройств» в операционной системе Windows (или выполните команду ls /dev/tty* в macOS/Linux). Найдите раздел «Порты (COM и LPT)» и посмотрите номер присвоенного виртуального порта. Например, COM4 или /dev/tty.usbserial-1410.

Шаг 4: Запуск процесса записи прошивки

Откройте терминал (командную строку) в папке, где находятся скрипт cc2538-bsl.py и скачанный файл прошивки (например, CC1352P2_CC2652P_launchpad_coordinator_20230507.hex). Выполните следующую команду:

python cc2538-bsl.py -p COM4 -evw CC1352P2_CC2652P_launchpad_coordinator_20230507.hex

(Замените COM4 на ваш порт, а имя файла — на актуальное имя вашей прошивки). Скрипт автоматически очистит флеш-память чипа, запишет новые данные и проверит их контрольную сумму. Весь процесс занимает не более одной минуты. По окончании вы увидите сообщение Write bin successfully.

IMPORTANT

Никогда не извлекайте стик из USB-порта во время выполнения скрипта прошивки. Это может привести к повреждению загрузочного сектора памяти, после чего восстановить работоспособность устройства можно будет только с помощью специализированного аппаратного программатора JTAG.

WARNING

Перед подключением прошитого координатора к домашнему серверу обязательно отключите встроенный Zigbee-модуль на других устройствах поблизости, чтобы избежать конфликта адресов и интерференции на одном радиоканале.

После завершения процесса записи аккуратно отключите плату от USB-порта компьютера, верните её в защитный алюминиевый корпус и закрутите торцевые винты в обратном порядке. Теперь вы можете подключить обновленный координатор к вашему серверу умного дома (например, Raspberry Pi, мини-ПК или виртуальной машине). Рекомендуется использовать качественный USB-удлинитель длиной 1–2 метра для подключения стика к серверу. Дело в том, что порты USB 3.0 компьютера генерируют сильные электромагнитные помехи на частоте 2.4 ГГц, которые подавляют слабый сигнал Zigbee. Размещение стика на некотором расстоянии от сервера значительно улучшит стабильность сети.

Для интеграции устройств в единую сеть и последующего голосового управления через Алису рекомендуем настроить интеграцию Home Assistant с Яндексом, которая позволит бесшовно транслировать любые Zigbee-датчики и реле в приложение «Дом с Алисой».

Инструкция по настройке

1

Разборка корпуса и подготовка платы

Открутите два крепежных винта на торце алюминиевого корпуса стика Sonoff и аккуратно извлеките печатную плату для доступа к физической кнопке BOOT.

2

Установка драйверов и подготовка софта

Скачайте и установите драйверы виртуального COM-порта (CP210x или CH34x), а также загрузите прошивку координатора Z-Stack от Koenkk и утилиту cc2538-bsl.

3

Перевод стика в режим загрузчика (Bootloader)

Зажмите и удерживайте микрокнопку BOOT на плате стика, после чего вставьте его в USB-порт компьютера. Через 2 секунды отпустите кнопку для входа в режим прошивки.

4

Запуск скрипта прошивки через консоль

Откройте командную строку, перейдите в папку с утилитой и выполните команду записи прошивки, указав соответствующий COM-порт и файл прошивки с расшинием .hex.