Обновление Zigbee шлюзов по OTA
Логотип ONOKOM

Бот

Инструкция

Подбор шлюза для кондиционера через Telegram Bot

Обновление шлюзов Zigbee по OTA

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

В этой статье рассмотрены три способа обновления шлюза Zigbee:
1. Через Zigbee2MQTT
2. Через SprutHub
3. Через SprutHub, установленный на Wiren Board

1. Обновление устройств через Zigbee2MQTT

Скопировано

1.1 Загрузка прошивки с репозитория GitHub

Скопировано

В примере будет обновляться шлюз HS-3-ZB-S с версии OTA 17 до OTA 18. Версия прошивки обновиться с 0.5.2 до версии 0.5.4

Чтобы начать обновление устройства Zigbee, перейдите в публичный репозиторий ONOKOM и скачайте актуальную версию прошивки

Актуальная прошивка для шлюза HS-3-ZB-S расположена по следующему пути:
firmware/ZigBee/main/HS-3-ZB-S/0.5.4

1.2 Размещение прошивки в директории Zigbee2MQTT

Скопировано

Далее необходимо разместить файл прошивки на устройстве, где развернут сервер Zigbee2MQTT (ПК, Wiren Board, Raspberry Pi и т.д.) В нашем примере Zigbee2MQTT работает на контроллере Wiren Board

1. Подключитесь к контроллеру с помощью SFTP-клиента (например FileZilla, CyberDuck)

Настраиваем SFTP-подключение. Для подключения потребуется ввести:
- IP-адрес вашего контроллера
- Имя пользователя
- Пароль

2. Перейдите в директорию: /mnt/data/root/zigbee2mqtt/data и найдите или создайте директорию с именем "ota"

3. Загрузите файл прошивки в созданную (или существующую) директорию "ota"

4. Создайте и отредактируйте файл index.json

Созданный файл откройте в любом текстовом редакторе, например, VS code, и вставьте в него следующий код:


[
	{
		"version": 18,
		"url": "/root/zigbee2mqtt/data/ota/hs-3-zb-s_hw1.x_fw0.5.4_ota18.ota"       
	}
]

В коде хранятся данные о версии прошивки и путь, по которому её можно найти

В нашем случае для устройства HS-3-ZB-S прошивка имеет название:
“HS-3-ZB-S_hw1.x_fw0.5.4_ota18.ota“
Версия OTA-прошивки — 18
Эти параметры берутся непосредственно из названия файла прошивки

Путь к директории ota и имя файла прошивки могут отличаться в зависимости от вашей системы и модели устройства

5. Перейдите в корневую директорию Zigbee2MQTT: /mnt/data/root/zigbee2mqtt/data/
В ней нужно отредактировать файл configuration.yaml и вставить в него следующий код:


ota:
    image_block_response_delay: 50
    default_maximum_data_size: 60
    zigbee_ota_override_index_location: /root/zigbee2mqtt/data/ota/index.json

Код задает параметры для обновления по OTA

6. Сохраняем файл и перезагружаем Zigbee2MQTT

В случае, если Zigbee2MQTT установлен на Wiren Board, необходимо подключиться по SSH и в терминале прописать следующую команду:

systemctl restart zigbee2mqtt

1.3 Запуск обновления через веб-интерфейс Zigbee2MQTT

Скопировано

1. Открываем веб-интерфейc и переходим во вкладку OTA

На вкладке находим информацию о подключённых Zigbee-устройствах, включая версию OTA и доступные обновления

2. Нажмите кнопку “Проверить обновления”, которая находится справа от нужного устройства в списке. Нам отобразиться информация по прошивкам. Если нажмём на кнопку ещё раз, система предложит обновить устройство

3. Нажимаем кнопку «Обновить прошивку» и в интерфейсе отобразится статус загрузки

Светодиод шлюза начнёт моргать с высокой частотой. Это говорит о том, что идёт загрузка ПО.

В процессе обновления будет отображаться примерное время и прогресс обновления. Обновление может занять до получаса. Все зависит от качества связи устройства с координатором

После установки в интерфейсе отобразиться актуальная версия ПО

2. Обновление через SprutHub

Скопировано

2.1 Подготовка файла прошивки

Скопировано

Поддерживаемые устройства: SprutHub, SprutHub2, SprutHub2 DIN

Чтобы начать процедуру обновления:
1. Извлеките MicroSD карту из устройства SprutHub и подключите её к ПК с помощью кард-ридера

2. Cкачайте актуальную прошивку из репозитория ONOKOM и скопируйте её в директорию: Spruthub/Firmware/ZigBee на SD карте.

3. Установить MicroSD обратно в SprutHub и перезагрузите

2.2 Обновление в веб-интерфейс SprutHub

Скопировано

Для проверки версии ПО на вашем устройстве:
1. Откройте веб-интерфейс вашего устройства SprutHub

2. Перейдите в раздел "Устройства", нажмите на значок "Шестерёнка" и перейдите в раздел "Информация"

Как можно увидеть на скриншоте, на устройстве устаревшая версия прошивки

3. Перейдите во вкладку “Настройки”“Расширенные”, а затем в пункте “Внешнее хранилище“ поставьте “microSD” и сохраните изменения

4. Вернитесь на вкладку "Настройки" и нажмите кнопку "Перезагрузить"

После перезагрузки начнется обновление, и в отладочном окне будет запись о начале процесса

5. Чтобы включить отладочное окно, нажмите на значок "три точки" в правом углу интерфейса SprutHub и выберете в списке “Отладка”

В отладочном окне можно увидеть, что наше устройство загрузилось и начался процесс обновления

Когда обновление закончится, в левом нижним углу появиться уведомление, а в окне будет запись события

В интерфейсе SprutHub информация об устройстве может не поменяться, чтобы обновить её, нужно перезагрузить контроллер Zigbee

6. Для перезагрузки контроллера Zigbee перейдите во вкладку “Контроллеры”, нажмите на значок "три точки" и перейдите в "Настройки"

Изображение
загружается

7. Выключите, а затем включите контроллер Zigbee. Это нужно для его перезагрузки

После процедуры информация об устройстве обновится

3. Обновление через SprutHub установленным на Wiren Board

Скопировано

Подключитесь к контроллеру по SSH
Для пользователей Windows можно воспользоваться Командной строкой или PowerShell
Для пользователей Linux и Mac OS можно воспользоваться встроенной утилитой "Терминал"

1. Откройте программу и введите следующую команду:


ssh имя_пользователя@ip_адрес_контроллера #Заменить на ваши данные

2. Затем в строку терминала вставьте следующую команду:


wget -P "/mnt/data/makesimple/.SprutHub/data/Firmwares/ZigBee" #Путь до директории "https://github.com/ONOKOM/firmware/raw/refs/heads/main/ZigBee/main/НАЗВАНИЕ_УСТРОЙСТВА/версия_прошивки/название_файла_проишивки.ota"  

Код нужно отредактировать под конкретный случай, а именно вставить свои:
- Название устройства (большими буквами)
- Версию устройства
- Название файла прошивки (маленькими буквами)
Все эти параметры берутся из репозитория ONOKOM

В нашем случае код выглядит так:


wget -P "/mnt/data/makesimple/.SprutHub/data/Firmwares/ZigBee" "https://github.com/ONOKOM/firmware/raw/refs/heads/main/ZigBee/main/HS-3-ZB-S/0.5.4/hs-3-zb-s_hw1.x_fw0.5.4_ota18.ota"  

Эта команда скачивает прошивку нужной версии и сразу помещает её в правильную директорию

Путь из репозитория GitHub может отличаться в зависимости от вашей модели устройства

3. Перезагрузите SprutHub

После перезагрузки начнется этап обновления устройства (занимает примерно 15 минут).
Отследить, как обновляется устройство, можно в интерфейсе SprutHub, включив отладку, как было описано в пункте 2.2

4. Рекомендации

Скопировано

- Убедитесь, что файл прошивки соответствует вашей HW-ревизии и версии OTA
- Держите устройство близко к координатору (1–2 м), питание должно быть стабильным
- Не отключайте питание до завершения обновления
- Если обновление прервалось, нужно начать процедуру обновления заново с учетом рекомендаций