Налаштовуємо локальний OTA-індекс для Zigbee2MQTT

В цій статті я описую, як налаштувати локальний OTA-індекс для Zigbee2MQTT і оновлювати пристрої власними файлами прошивки. Цей спосіб чудово підходить як для пристроїв, які можна зробити своїми руками, так і для тестування альтернативних прошивок.

Налаштування описується на прикладі bluetooth-датчика температури та вологості Xiaomi LYWSD03MMC, який раніше було перешито на Zigbee.

Я буду робити все в консолі, але також можна використовувати для цього, наприклад, File Editor, який ви можете встановити як доповнення у Home Assistant.

1. Йдемо у /config/zigbee2mqtt/

2. Відкриваємо файл configuration.yaml, наприкінці якого додаємо наступні рядки:

ota:
  disable_automatic_update_check: true
  zigbee_ota_override_index_location: my_index.json

3. В цій же теці створюємо теку ota, в якій будуть зберігатися файли прошивок.

4. Завантажуємо в теку ota файл прошивки. В моєму випадку – це файл db15-0203-99993001-ATC_v46.zigbee

5. Створюємо файл індексу my_index.json, який ми описали у пункті 2, і додаємо в нього наступні рядки:

[
    {
	"url": "ota/db15-0203-99993001-ATC_v46.zigbee",
        "force": true
    }
]
В тестовому редакторі nano додаємо рядки

6. Зберігаємо і перезапускаємо Zigbee2MQTT.

7. Відкриваємо Zigbee2MQTT і натискаємо вгорі на вкладку OTA.

8. Натискаємо Check All або Check for new updates для вашого пристрою і нова прошивка стане доступною для прошивки.

9. Натискаємо Update device firmware й очікуємо завершення процесу. Процес прошивки тривалий. У мене це зайняло понад 15 хвилин.

Зауваги!

Оскільки процес OTA дуже вимогливий до батареї, переконайтеся, що ви використовуєте новий акумулятор з рівнем заряду вище 70%.