通过 HTTP 请求的托管更新
此平台允许您管理 ESPHome 设备更新的部署。它通过读取 JSON 清单文件 并使用它来确定是否存在更新来工作。
要使用它,您的设备配置中需要以下组件:
# 示例配置条目update: - platform: http_request name: 固件更新 source: http://example.com/manifest.json-
source (必填, string):包含固件元数据的 YAML 清单文件的 URL。
-
update_interval (可选, 时间):检查(不安装)更新的间隔。默认为 6 小时。
-
更新的所有其他选项。
WARNING
GitHub 发布 URL(例如 https://github.com/<user>/<repo>/releases/latest/download/manifest.json)重定向到非常长的 URL,可能超过 HTTP 请求 组件的默认 512 字节缓冲区限制,导致更新检查因”缓冲区不足”错误而失败。
请改用 GitHub Pages URL(例如 https://<user>.github.io/<repo>/firmware/manifest.json),它们不会重定向,或增加缓冲区大小。
更新清单格式
Section titled “更新清单格式”此组件期望 ESP-Web-Tools 清单,并在 ota 块中进行扩展,结构如下:
{ "name": "我的 ESPHome 项目", "version": "2024.6.1", "builds": [ { "chipFamily": "ESP32-C3", "ota": { "md5": "1234567890abcdef1234567890abcdef", "path": "/local/esp32c3/firmware.bin", "release_url": "http://example.com/releases/10", "summary": "另一个更新" } } ]}虽然 release_url 和 summary 是可选的,但此处显示的所有其他字段都是必需的。
如果 path 以以下内容开头:
http或https:path被视为完整 URL,将用于获取固件二进制文件。- 正斜杠(
/):path将附加到为source指定的主机名(“绝对”路径)。 - 任何其他字符:
path将在修剪清单文件名后附加到source(如上所述)。
请注意,单个 JSON 文件中可以指定多个 builds。