Перейти к содержимому

🚀 OTA — обзор

🔁 Поток (упрощённо)

1. Сборка (локально или CI)
2. latest.json + manifest.json + firmware.bin на сервере (MinIO S3)
3. Устройство: HTTP GET latest.json
4. Сравнение текущей и доступной версии
5. Если новая: HTTPS GET firmware.bin → OTA flash → reboot

🧱 Два слоя

  1. ESPHome (на устройстве) — в шаблоне есть блок ota: (часто esphome + http_request), скрипты проверки URL манифеста и кнопки OTA: проверить / установить в HA.
  2. Инфраструктура (на сервере) — CI кладёт артефакты на диск (nginx) и зеркалит в MinIO; манифесты и ссылки в latest.json указывают на публичный S3 (ota-s3.m3zold-lab.tech/firmware/<channel>/). Кодом отвечают scripts/generate_metadata.py и .github/workflows/ota-pipeline.yml.

📁 Полезные пути в репо

  • ДиректорияesphomeFlasher/
    • Директория.github/workflows/
      • ota-pipeline.yml сборка матрицы + SCP на сервер + MinIO mirror
    • Директорияfirmwares/
      • ota-pipeline-matrix.json матрица OTA каналов (1 запись = 1 firmware × board)
      • Директорияota-server/ примеры сгенерированных latest.json / manifest.json
    • Директорияscripts/
      • generate_metadata.py latest.json, manifest.json, MD5 hash, changelog
      • flasher.py локально: -a ota

📚 Дальше