跳转到内容

ESP32 Hosted 协处理器更新

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

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

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

在嵌入式模式下,固件二进制文件编译到设备的闪存中。当您希望 将特定固件版本与设备捆绑时,这非常有用。

# Example configuration entry for embedded mode
update:
- platform: esp32_hosted
type: embedded
path: coprocessor-firmware.bin
sha256: 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef

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

# Example configuration entry for HTTP mode
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): 要使用的更新模式。必须为 embedded 或 http。
  • path (必填, string): 协处理器固件二进制文件(.bin)的路径。 该路径相对于您的 ESPHome 配置文件。

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

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

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

  • 还包括 Update 的所有其他选项。

此更新平台需要:

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

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

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

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