跳转到内容

ESP32 托管协处理器更新

此平台允许您更新通过 ESP32 托管 组件连接的 ESP32 协处理器的固件。支持两种更新模式:

  • 嵌入式模式:固件二进制文件在编译时嵌入到设备闪存中
  • HTTP 模式:固件在运行时从远程 URL 获取

该组件自动检测当前协处理器固件版本,并与可用版本进行比较。如果版本不同,Home Assistant 或通过 ESPHome API 将显示可用更新。

在嵌入式模式中,固件二进制文件被编译到设备闪存中。当您想将特定固件版本与设备捆绑时很有用。

# 嵌入式模式的示例配置条目
update:
- platform: esp32_hosted
type: embedded
path: coprocessor-firmware.bin
sha256: 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

在 HTTP 模式中,固件从远程清单 URL 获取。这允许自动更新而无需重新编译 ESPHome 配置。该组件将定期检查更新,并根据主机库版本选择最佳兼容版本。

# HTTP 模式的示例配置条目
http_request:
update:
- platform: esp32_hosted
type: http
source: https://esphome.github.io/esp-hosted-firmware/manifest/esp32c6.json
update_interval: 6h

HTTP 模式需要具有以下格式的 JSON 清单文件:

{
"versions": [
{
"version": "2.7.0",
"url": "https://example.com/firmware/esp32c6-2.7.0.bin",
"sha256": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
},
{
"version": "2.6.0",
"url": "https://example.com/firmware/esp32c6-2.6.0.bin",
"sha256": "fedcba0987654321fedcba0987654321fedcba0987654321fedcba0987654321"
}
]
}

组件将自动选择与主机库兼容的最高版本(即固件版本必须小于或等于编译到 ESPHome 中的 ESP-Hosted 库版本)。

  • type (必填, string):要使用的更新模式。必须是 embeddedhttp
  • path (必填, string):协处理器固件二进制文件(.bin)的路径。路径相对于您的 ESPHome 配置文件。

  • sha256 (必填, string):固件二进制文件的 SHA256 哈希值。这用于在编译时和刷写到协处理器之前的运行时验证固件的完整性。

  • source (必填, url):包含可用固件版本的 JSON 清单文件的 URL。

  • update_interval (可选, 时间):检查更新的频率。默认为 6h

  • 更新的所有其他选项。

此更新平台需要:

  • 主机设备(运行 ESPHome):ESP32-H2ESP32-P4
  • 协处理器(被更新):ESP-Hosted 支持的任何 ESP32 变体(例如示例中所示的 ESP32-C6

对于嵌入式模式,主机设备必须有足够的闪存空间来存储协处理器固件二进制文件。

支持的协处理器变体的预构建固件二进制文件和清单可在 esphome.github.io/esp-hosted-firmware 获取。这些可直接用于 HTTP 模式,或下载用于嵌入式模式。

有关构建自定义固件的说明,请参阅 esp-hosted-firmware 仓库。