В цій статті я описую, як налаштувати локальний OTA-індекс для Zigbee2MQTT і оновлювати пристрої власними файлами прошивки. Цей спосіб чудово підходить як для пристроїв, які можна зробити своїми руками, так і для тестування альтернативних прошивок.
Налаштування описується на прикладі bluetooth-датчика температури та вологості Xiaomi LYWSD03MMC, який раніше було перешито на Zigbee.
Я буду робити все в консолі, але також можна використовувати для цього, наприклад, ,
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
}
]
6. Зберігаємо і перезапускаємо Zigbee2MQTT.
7. Відкриваємо Zigbee2MQTT і натискаємо вгорі на вкладку OTA.
8. Натискаємо Check All або Check for new updates для вашого пристрою і нова прошивка стане доступною для прошивки.
9. Натискаємо Update device firmware й очікуємо завершення процесу. Процес прошивки тривалий. У мене це зайняло понад 15 хвилин.


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