OTA - обновление прошивки устройства по радиоканалу, а OTA-файл - готовый образ такой прошивки. Начиная с версии Home Assistant 2024.1 интеграция ZHA не предлагает обновления из внешних OTA-файлов. Пользователям форума помогало включить файловые обновления в конфигурации zigpy (библиотека Zigbee, на которой работает ZHA): ключи allow_file_providers и otau_directory, плюс файл прошивки в указанном каталоге. Отдельно на форуме описан ручной запуск обновления командой кластера OTA.
Как выглядит проблема
В обсуждениях ZHA не предлагает обновление прошивки. Описаны три варианта симптома:
- ZHA не предлагает внешние OTA-файлы для обновления устройств начиная с версии 2024.1.
- Лампа ThirdReality ZL1 показывается с актуальной прошивкой, обновление не предлагается.
- У Sonoff TRVZB версия прошивки отображается как неизвестная, и официальный источник OTA обновление тоже не предлагает.
В тех же обсуждениях появляется сообщение об ошибке:
No OTA image is available
Причина
В одной ветке причиной названо отключение обновлений из файлов в ZHA. Заметили это на версии Home Assistant 2024.1. В ветке дана ссылка на pull request home-assistant/core №111159.
| Причина | Как проверить | Что сделать |
|---|---|---|
| OTA-обновления из файлов отключены в ZHA | ZHA не предлагает обновление из файла (с версии 2024.1); у TRVZB версия прошивки показывалась неизвестной | Включить файловые обновления в конфигурации zigpy и указать каталог с OTA-файлами |
Причина названа в одной ветке форума.
Что помогло
Помогли два способа: включение файловых OTA в конфигурации zigpy и ручной запуск обновления командой кластера из Инструментов разработчика (Developer tools). Оба известны только с форума.
Включить файловые OTA в конфигурации zigpy
Основной рабочий вариант: помог в 2 ветках форума из 2, где его пробовали, - 3 сообщения об успехе и ни одного о неудаче.
Работающая конфигурация из форума выглядит так:
zigpy_config:
ota:
allow_file_providers: "I understand I can *destroy* my devices by enabling OTA updates from files. Some OTA updates can be mistakenly applied to the wrong device, breaking it. I am consciously using this at my own risk."
otau_directory: /config/zha/ota
Файл прошивки кладут в каталог из otau_directory. Для Sonoff TRVZB в ветке использовали файл trvzb_v1.2.1.ota из репозитория zigbee-OTA.
В форумных ветках встречается другая форма той же настройки, через extra_providers, вместе с провайдером Sonoff:
zha:
custom_quirks_path: /config/custom_zha_quirks/
zigpy_config:
ota:
extra_providers:
- type: sonoff
- type: advanced
warning: I understand I can *destroy* my devices by enabling OTA updates from
files. Some OTA updates can be mistakenly applied to the wrong
device, breaking it. I am consciously using this at my own risk.
path: /config/zigpy_ota
В ветках попадались и такие ключи, без пояснений в документации:
allow_advanced_ota_dir: 'I understand I can *destroy* my devices by enabling OTA
updates from files. Some OTA updates can be mistakenly applied to the
wrong device, breaking it. I am consciously using this at my own risk.'
advanced_ota_dir: '/path/to/ota/files' # Like `/config/zha_ota/`
Запустить обновление командой кластера
Запасной вариант: помог в 1 ветке форума из 1, где его пробовали, - одно сообщение об успехе. Обновление запускают сервисом zha.issue_zigbee_cluster_command из Инструментов разработчика, устройству отправляется команда кластера OTA с cluster_id: 25:
service: zha.issue_zigbee_cluster_command
data:
ieee: <INSERT IEEE OF DEVICE HERE>
endpoint_id: 1
cluster_type: out
command_type: client
cluster_id: 25
command: 0
args:
- 0
- 100
Вместо <INSERT IEEE OF DEVICE HERE> подставляют IEEE-адрес (уникальный адрес Zigbee-устройства) нужного устройства.
Если не помогло
Не сработало включение отдельного провайдера 3REALITY: в ветке про лампу ThirdReality ZL1 после настройки ключом thirdreality_provider со значением true обновление так и не появилось, зафиксирован один отчет о неудаче. Совет устарел. В документации ZHA сказано: «OTA for a few manufacturers is enabled by default, currently Ledvance, Sonoff, Inovelli, and ThirdReality». OTA для ThirdReality уже включена по умолчанию, а ключа thirdreality_provider в документации нет, так что дополнительная настройка не нужна.
Если ZHA вообще не управляет устройством, это другой случай - например, с клапаном полива GIEX GX-02.
Частые вопросы
С какой версии ZHA не предлагает файлы OTA?
Начиная с Home Assistant 2024.1. На этой версии пользователи заметили, что внешние OTA-файлы перестали предлагаться. При этом OTA для ряда производителей включена по умолчанию: в документации ZHA перечислены Ledvance, Sonoff, Inovelli и ThirdReality. Для файлов, которые пользователь добавляет сам, помогала отдельная настройка в конфигурации zigpy с подтверждением риска.
Какие устройства затронуты?
В ветках упомянуты четыре устройства: датчик движения Aqara P1 (lumi.motion.ac02), Sonoff TRVZB, лампа ThirdReality ZL1 (3RCB01057Z) и устройство Philips без указания модели. Симптомы описаны для двух из них: у TRVZB версия прошивки показывается неизвестной, лампа ZL1 отображается обновленной.
Где взять файл прошивки для Sonoff TRVZB?
В репозитории zigbee-OTA на GitHub опубликован файл trvzb_v1.2.1.ota, в каталоге images/Sonoff. Именно его использовали в ветке про TRVZB. Скачанный файл кладут в каталог, указанный в otau_directory.
Что означает ошибка No OTA image is available?
Дословно это «нет доступного образа OTA»: для устройства нет файла прошивки, который можно предложить. Сообщение приводится в обсуждениях, где обновления не предлагались. Наличие OTA по умолчанию его не исключает: у ThirdReality она включена, а обновление все равно не предлагалось.



