跳转到内容

通过 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),它们不会重定向,或增加缓冲区大小。

此组件期望 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_urlsummary 是可选的,但此处显示的所有其他字段都是必需的。

如果 path 以以下内容开头:

  • httphttpspath 被视为完整 URL,将用于获取固件二进制文件。
  • 正斜杠(/):path 将附加到为 source 指定的主机名(“绝对”路径)。
  • 任何其他字符:path 将在修剪清单文件名后附加到 source(如上所述)。

请注意,单个 JSON 文件中可以指定多个 builds