Как выполнять OTA‑обновления Zigbee‑устройств через ZHA

Да — ZHA поддерживает OTA‑обновления Zigbee‑устройств: нужно подключить провайдер образов (встроенные, zigpy-ota, z2m или локальные .ota/.bin), правильно настроить секцию zigpy_config.ota и подготовить сеть и устройство (awake/питание). Ниже — практическая инструкция.

Как работает OTA в ZHA и какие ограничения

ZHA использует Zigbee OTAU: для каждого устройства проверяется наличие образа у подключённых провайдеров; если образ найден — в HA появится стандартная сущность Update и кнопку установки. Основные ограничения:

  • Образ должен соответствовать vendor id / image type устройства — несовпадение может «окирпичить» девайс.
  • Батарейные (sleepy) устройства должны быть пробуждены во время начала сессии.
  • Процесс чувствителен к качеству сети: слабый приём или потеря маршрутизатора приводят к зависаниям.

Не применяйте образы, если не уверены в соответствии vendor id и image type. Всегда делайте бэкап zigbee.db.

Настройка провайдеров OTA и конфигурация ZHA

Варианты источников OTA: встроенные провайдеры (производители), централизованный репозиторий zigpy-ota, репозиторий z2m (Zigbee2MQTT) и локальные файлы. Минимальная конфигурация в configuration.yaml для включения провайдеров:

zha:
  zigpy_config:
    ota:
      # включить отдельные провайдеры
      ikea_provider: true
      sonoff_provider: true

      # добавить локальную папку с .ota/.bin (advanced)
      extra_providers:
        - type: advanced
          path: /config/zigbee_ota
          warning: >-
            I understand I can *destroy* my devices by enabling OTA updates
            from files.

Шаги:

  1. Создайте /config/zigbee_ota и поместите туда проверенные .ota/.bin (если используете локально).
  2. Перезапустите Home Assistant после правок.
  3. Проверьте в логах ZHA/zigpy, что провайдеры успешно инициализировались.

Если образа нет в одном репозитории — попробуйте подключить z2m или локально добавить проверенный файл. Начинайте с обновления рядом с координатором.

Пошаговый процесс запуска OTA и чек‑лист

Пошагово — от подготовки до контроля:

  1. Бэкап Home Assistant и zigbee.db.
  2. Убедитесь в актуальной версии HA и интеграции ZHA.
  3. Проверьте источник образа и сопоставьте vendor id/model/image type.
  4. Обеспечьте питание/свежие батареи и хорошее покрытие (маршрутизаторы рядом).
  5. Если устройство sleepy — подготовьте способ пробуждения (кнопка).
  6. В интерфейсе HA: устройство → вкладка «Обновления» → нажмите Install/Update.
  7. Наблюдайте логи ZHA; не прерывайте процесс. После успешного обновления перезапустите устройство/проверьте функциональность.

Чек‑лист перед запуском:

  • [ ] Бэкап zigbee.db
  • [ ] Свежие батареи/питание
  • [ ] Маршрутизаторы в зоне обновления
  • [ ] Устройство пробуждено (если батарейное)
  • [ ] Провайдер с нужным образом активен

Частые ошибки

  • Update не начинается — устройство не пробуждено или батарея разряжена.
  • Обновление зависает/падает на X% — слабое покрытие, повторите рядом с координатором, обновляйте по одному устройству.
  • Неправильный образ — потеря функциональности или кирпич; всегда сверяйте идентификаторы.
  • Несогласованные провайдеры — дублирование образов может путать механизм выбора; временно отключите лишние провайдеры.

Обновления с локальных файлов особенно рискованы: одно неверное совпадение image type может привести к необратимым последствиям.

FAQ

  • Нужно ли обновлять все устройства? Только если производитель выкатил фикс/функцию, которую вы действительно хотите; обновление несёт риск.
  • Сколько времени занимает OTA? Обычно 10–30 минут на устройство, в зависимости от качества связи.
  • Можно ли автоматизировать обновления? Да — через автоматизации HA, но лучше проводить вручную и по одному устройству.
  • Как понять vendor id и image type? Смотрите диагностику устройства в ZHA: там отображаются идентификаторы, которые нужно сопоставлять с метаданными образа.

Заключение: правильная подготовка (бэкап, питание, покрытие), внимательный выбор образа и обновление по одному устройству — главные принципы безопасной OTA‑прошивки через ZHA. Если хотите — пришлите ваш zha: блок конфигурации или параметры устройства (manufacturer, model, ieee) — подготовлю конкретную проверку совместимости.