ESPHome 2026.7.0 - 2026年7月
ESPHome 2026.7.0 将 ESP32 和 nRF52 的默认工具链切换为原生构建(ESP-IDF 和 nRF Connect SDK),并落地了首批面向 EN18031 合规的协调安全基础设施:NVS 加密、OTA 降级保护,以及新的传输无关配置组件。贯穿本版的性能和内存优化工作包括:覆盖约 50 个组件的树级单精度浮点数扫描、针对 ESP8266 的 DRAM 节省、ESP-IDF 默认启用 ccache,以及共享的机器全局工具链缓存。
在功能方面,本次发布带来了一次重大的 Modbus 改造(重写解析器和无堆发送路径)、大幅扩展的 LVGL(动画、动态旋转、启动暂停)、新 ESP32-S31 上的千兆以太网、ESP-NOW v2 负载、ESP32 上 RTC 支持的偏好设置、11 个覆盖触摸屏控制器、电子墨水屏面板、IMU 和 Divoom Pixoo 64 的新组件,以及新 2.0.2 SDK 上的 Zigbee 端点合并。旧版 Tornado Web 仪表盘已退役,改为外部的设备构建器,同时放弃了对 Python 3.11 的支持。
升级检查清单
Section titled “升级检查清单”- 如果您的 ESP32 配置没有显式设置
toolchain:,现在将使用原生 ESP-IDF 编译;添加toolchain: platformio以保持先前行为 - 如果您的 nRF52 配置没有显式设置
toolchain:,现在将使用原生 nRF Connect SDK 构建;添加toolchain: platformio以保持先前行为 - 如果您在 Python 3.11 上使用
pip安装 ESPHome,请升级到 Python 3.12 或更高版本 - 如果您使用
pip安装 ESPHome 并使用内置的esphome dashboard命令,请安装并运行esphome-device-builder代替 - 如果您有 ESP32 Zigbee 设备,升级后必须重新加入、重新访谈和重新配置每个设备
- 如果您在 Zigbee
reporting:下设置了enabled或coordinator,请移除这些键 - 如果您使用
web_server: version: 1,请在 2027.1.0 之前计划迁移到 v2 或 v3 - 如果您按对象 ID 寻址
web_serverURL,请切换到实体名称 - 如果有托管在别处的浏览器页面调用您的
web_server端点,请将其来源添加到web_server: allowed_origins: - 如果您依赖
web_server默认启用的私有网络访问,请设置enable_private_network_access: true并将调用来源添加到allowed_origins: - 如果您使用
packages: !include mypackage.yaml,请将 include 包装在列表中:packages: [!include mypackage.yaml] - 如果您使用
FOUR_SCAN_16PX_HIGH、FOUR_SCAN_32PX_HIGH或FOUR_SCAN_64PX_HIGH作为 hub75 的scan_wiring,请重命名为SCAN_1_4_16PX_HIGH、SCAN_1_8_32PX_HIGH或SCAN_1_8_64PX_HIGH - 如果您在
modbus:下设置了disable_crc,请将其移除 - 如果您在
modbus:服务器上设置了send_wait_time或turnaround_time,请移除这些键 - 如果您依赖 modbus 客户端计时,请注意默认值已变更为
send_wait_time: 2000ms和turnaround_time: 600ms - 如果您使用
generic-ln882hki板,请根据出厂固件切换到generic-ln882h或generic-ln882h-tuya - 如果您使用 LN882H
wb02a板以及D1、D7、D8、D9或默认 I2C 引脚别名,请更新您的引脚号以匹配新映射 - 如果您的 lambda 或自动化将灯光亮度设置为
0,请注意该值现在会被保留,而不是被钳位到1.0 - 如果两个 Home Assistant 实例共享同一个
bluetooth_proxy,最新订阅者现在胜出,而非最旧的 - 如果您为没有 DCDC 稳压器的 nRF52 板构建,DCDC 设置不再强制,生成代码略有变化
- 如果您的 lambda 调用
value_accuracy_to_string()或MideaData::to_string(),请迁移到缓冲区变体(value_accuracy_to_buf()和to_str(buffer))
ESP32 和 nRF52 的原生工具链现已成为默认
Section titled “ESP32 和 nRF52 的原生工具链现已成为默认”esp32 平台的默认工具链从 PlatformIO 切换为原生 ESP-IDF
(#16910)。从本版本起,未显式设置 toolchain: 选项的配置将使用 ESP-IDF 编译。自 2026.1.0 以来显示的框架迁移通知,随着默认设置的落地也已移除
(#17023)。
工具链选择构建后端,而非框架:Arduino 和 ESP-IDF 框架均可在任一工具链上构建,原生工具链将 Arduino 作为 ESP-IDF 组件引入。显式设置 toolchain: platformio 的配置将继续与之前完全一样构建,而由向导或包生成的新配置将自动使用原生 ESP-IDF 工具链。ESP-IDF 现在被推荐同时作为工具链和框架的首选。
nrf52 平台做出相同的转变:本轮早些时候由
@tomaszduda23 添加的原生 nRF Connect SDK 构建(#16898)现已成为默认工具链
(#17319)。未显式设置 toolchain: 选项的配置将针对 nRF Connect SDK 2.9.2 构建,安装到下文所述的新共享工具链缓存中,同时 toolchain: platformio 在此也仍可作为退出选项。
ESPHome 设备构建器
Section titled “ESPHome 设备构建器”捆绑的 ESPHome 设备构建器 已更新,本轮大部分工作投入到了远程构建服务器上。
编译固件是设备构建器最慢的操作,在 Home Assistant Green 或 Raspberry Pi 这样的小型主机上,单次构建可能需要数分钟。远程构建服务器可以让该仪表盘将编译任务交给网络中更快的机器,例如运行 ESPHome Desktop 的台式机或笔记本电脑,后者构建固件并像往常一样发送回来安装。您的设备、配置和仪表盘都留在原处;只有构建任务发生了转移。
与构建服务器配对变得更容易了
为其他仪表盘构建的机器现在会在自己的仪表盘上标明这一点 (frontend#1240)。一旦另一个仪表盘与其配对,或开启远程构建后,设备列表上方会出现构建服务器部分,引导您通过三个步骤完成配对,而无需在设置中自行寻找各个组件。

从那里您可以打开配对窗口并观看倒计时,复制地址到发送仪表盘上输入 (#2075),并与发送方显示的指纹进行比对。配对后,该部分列出对端及其连接状态和构建队列,任何等待您处理的配对请求显示在顶部。设置中新增了相应的说明,旧的 仅用于远程计算 开关现在改为 远程计算仪表盘,决定先打开哪个部分,而不会隐藏任何内容。
远程构建在运行后也变得更加稳定。如果接收方重启,发送方现在会在 mDNS 上重新出现后立即重连,而不会等待退避超时(#2084)。接收方现在也可以提供 ESPHome 的 Beta 版本,因此运行不同版本的构建服务器(相对于 Beta 频道上的发送方)不再会悄悄回退到本地构建 (#2082)。某版本的第一个构建会从 PyPI 安装 ESPHome,可能需要几分钟,作业日志现在会明确告知,而不会静默等待 (#2083)。
如果您从未尝试过此功能,终端现在会显示构建计时器,而在没有配对构建服务器的仪表盘上,本地编译超过五分钟会提示将构建任务发送到更快的机器 (frontend#1183)。
离线与深度休眠更新
更新未唤醒的设备一直都是一个时机问题。针对休眠或不可达设备的 OTA 只会失败,这对于运行深度休眠的用户来说是熟悉的问题。
由 @rwalker777 贡献的排队离线更新修复了这一问题 (#1430, frontend#911)。如果设备在安装时处于离线状态,设备构建器会编译固件、排队更新,并在设备下次出现在网络上时刷入,无需您当时在场。
相关基础工作在 2026.6.0 中已完成,现在已准备好投入生产使用。它适用于整个设备集群:选择任意数量的设备并点击更新,无法到达的设备只会编译一次并排队等待下次出现,而不会失败(#1929)。在点击安装和构建完成之间掉线的设备也会被排队,而不是在最后一步失败 (#1964),而排队的更新在您返回时会重新打开为安装,携带排队的消息 (frontend#1181)。
快速入门导览
从全新安装到运行设备一直是 ESPHome 最困难的部分,本次发布对此进行了真正的尝试。设置现已以提供引导式导览作为结尾,导览通过使用设备构建器来教授,而不是描述它。
它一次突出显示一个真实控件,解释其用途,在重要步骤上等待您点击而不是自行跳过。经过十一步,它带您完成创建第一个设备、选择板子、命名、输入 WiFi 信息、熟悉设备导航器和编辑器、观察 YAML 面板同步变化、以及安装到板子的过程,最终在仪表盘上看到新设备。大约需要五分钟,您会得到一个真实设备而非一次性演示,可以随时关闭并在之后继续,且始终可从右上角菜单访问。
该导览是 @Erioldoesdesign、 @stvncode 和 @marcelveldt 的团队协作成果,涵盖设计、线框图和构建(frontend#1045、 frontend#1232)。围绕它的设置流程也同时进行了重建:新的欢迎屏幕、一个让初学者可以一键选择推荐路径的体验问题,以及一个将您转交至导览的结束屏幕。如果您在网络上已有设备构建器运行时设置桌面应用,设置会指出这一点并解释如何配对两者,从而让新机器立即为您已有的仪表盘构建固件 (frontend#1235)。
YAML 错误解释与自动修复
许多针对 ESPHome 报告的问题实际上并非 Bug,而是在编辑 YAML 时的小错误。本次发布致力于解决这一整类问题。
以前空格错误只会得到原始解析器输出,如 mapping values are not allowed here 或 could not find expected ':',而且只有当您想到去悬停提示波浪线时才能看到。它指向的行通常是解析器放弃的位置,而不是您出错的地方,对于不熟悉 YAML 的人来说几乎没有帮助。
编辑器现在会读取错误并告诉您实际出了什么问题,在固定横幅中命名需要更改的行和操作方法:“缩进不匹配:第 12 行 - platform 的缩进少于其属性。将第 12 行缩进 2 个空格,使 - platform 与其对齐。“旁边是一个 尝试自动修复 按钮,为您做出精确更改。这是一个尽力而为的猜测而非魔法,因此会在应用前针对您的配置进行验证,会告知是否还有其他错误残留,并以普通编辑的方式落地,您可以撤销
(frontend#1121、
frontend#1147、
frontend#1148)。
缩进并不是它解释的唯一问题。在需要空格的地方使用 Tab、以 @、% 或 * 开头需要引号的值、未闭合的引号、重复键、未闭合的括号或花括号,都会得到相同的平实语言处理。缺少空格的列表标记 -platform: gpio 会提供一键修复为 - platform: gpio(frontend#1149)。同样适用于脱离所属块的键,例如遗留在 api: 直接下方的 encryption 键,两个方向均可;设备构建器首先检查其组件目录以确认键的归属,如果无法确定则不给出错误猜测
(frontend#1164)。
设备日志行现在会链接到解释它们的文档
(frontend#1116、
frontend#1118)。十个常见警告和错误有定制解释,包括 took a long time for an operation、WiFi 重连循环、重复重置、OTA 回滚和 Bluetooth proxy 连接槽用尽,任何其他标记了组件的行会直接链接到该组件页面。
无头构建服务器
@jesserockz 添加了 --remote-build-only,将设备构建器作为专用构建盒子运行,完全没有 Web 界面(#1861):
esphome-device-builder --remote-build-only /var/lib/esphome-builder它仅提供对端链接,因此没有人可以点击 Accept。改为在首次启动时打开配对窗口,并将身份指纹和一次性密钥打印到控制台。从发送仪表盘配对,确认指纹与控制台匹配,并输入密钥,配对对话框知道要提前要求输入 (#1881、 frontend#1120)。该窗口仅配对一个仪表盘,然后关闭。
如果您希望保留 Web 界面但仍然将机器专用于构建,请在设置中开启 远程计算仪表盘,其下方会出现 隐藏设备构建器 选项,仅保留 构建服务器 视图
(#2077、
frontend#1244)。设备构建器也可以通过 --socket 监听 UNIX 套接字以支持反向代理配置,由 @vexofp 贡献
(#1862)。
构建
启动构建后不再灰显返回该构建的按钮。更新和安装现在会打开正在运行的作业,编辑仍可点击以便在编译时查看 YAML (frontend#1191、 frontend#1193、 frontend#1197)。下载和重试现在等待正在运行的构建完成,而不是取消并重新启动,这也意味着下载不会再给您一个半写入的二进制文件 (frontend#1199、 frontend#1201、 frontend#1204)。
批量 仅编译 动作允许您在部署之前跨多个设备检查更改 (frontend#1176)。ESP-IDF 构建现在会显示编译进度,从 ninja 构建计数器读取,而不是 ESP-IDF 从不打印的百分比 (#1880)。
特别感谢 @breti,其 QA 测试和详细问题报告贯穿了整个版本发布,但在任何 PR 统计中都不曾出现。
面向 EN18031 的安全与配置基础工作
Section titled “面向 EN18031 的安全与配置基础工作”本次发布落地了三块协调的安全基础设施,由 @kbx81 主导,共同推动 ESPHome 向联网消费设备的 EN18031 合规迈进。
ESP32 上的 NVS 加密(#17004)
使用 HMAC 外设的非易失性存储可选加密。密钥在运行时从用户选择的 eFuse 块中的 HMAC 密钥派生,因此不需要闪存加密。支持搭载 HMAC 外设的 ESP32 变体:S2、S3、C3、C5、C6、H2 和 P4。将 HMAC 密钥烧录到 eFuse 块中是永久且不可逆的操作,因此用户在启用此功能前应仔细阅读 esp32 文档。
OTA 降级保护(#17315)
已签名 ESP-IDF OTA 的软件防回滚。在切换启动分区之前,将分阶段镜像中烘焙的版本(来自 project: version:)与当前运行版本进行比较。覆盖所有 OTA 源:原生、http_request.ota 和 web_server。需要已签名的 OTA 才能生效。
配置组件(#17152)
一个全新的传输无关配置组件,管理未配置设备的配置窗口。api 和 esp32_improv 等来源向该组件注册,窗口在超时时关闭,此时任何配置相关的 API 客户端会通过 DISCONNECT_REASON_PROVISIONING_CLOSED 断开连接。
性能:单精度浮点数运算
Section titled “性能:单精度浮点数运算”由 @swoboda1337 主导,一次树级扫描将约 50 个组件中的静默
double 提升模式替换为单精度等效实现
(#17252、
#17253、
#17254、
#17255、
#17256、
#17260)。
该问题在 ESP32 上不可见,因为 ESP-IDF 未启用 -Wdouble-promotion:如 2.0 的字面量和 fmod、round、fabs 等函数会悄悄地将单精度值提升为 double,在没有硬件 double 的芯片上通过软 double 库运行结果,然后再收窄回 float。
测量影响:
hsv_to_rgb代码大小:ESP32 上从 108 字节降至 69 字节(-36%)- 消除的软 double 辅助函数调用:每个调用点约 8 次
- 涉及的组件:display、light、climate、大多数传感器驱动、
openthread、mqtt、speaker、graph等等
最后一波收尾(#17260)还将 sx126x 中的热点表达式如 std::pow(2, sf) 重写为 constexpr 位移,并将几个调用点切换为 std::numbers::pi_v<float>。
内存:ESP8266 DRAM 节省
Section titled “内存:ESP8266 DRAM 节省”ESP8266 上的每个字节 RAM 都很重要,由 @bdraco 进行的三项聚焦更改在不改变运行时行为的情况下回收了可观的 DRAM。
- libstdc++ 抛出消息字符串(#17341)——覆盖
std::__throw_*辅助函数以丢弃从未读取的消息参数。在一个 ratgdo 构建上节省约 96 字节 RAM。崩溃行为不变。 - lwIP glue DHCP 存根字符串(#17395)——
dhcp_cleanup()和dhcp_release()存根的静默等效实现。释放48字节 RAM 和88字节闪存,并移除每次 WiFi 断开时嘈杂的STUB: dhcp_cleanup日志。 - dashboard_import 包 URL(#17127)——将 mDNS TXT
package_import_url字符串从.rodata(DRAM)移至闪存。这是最后一个被固定在 RAM 中的 mDNS TXT 值。
构建系统:ccache 与共享工具链缓存
Section titled “构建系统:ccache 与共享工具链缓存”由 @swoboda1337 主导,ESP-IDF 和 nRF SDK 工具链同时获得了编译器级缓存和安装级共享。
ESP-IDF 构建现在默认启用 ccache(#17163、
#17136),当 ccache 二进制文件存在时,使用依赖模式(depfile 哈希而非预处理)和 IDF 工具路径下的缓存目录。可通过 IDF_CCACHE_ENABLE=0 退出。在 23 批 CI 矩阵中,累计 runner 时间从 543 分钟降至 504 分钟(约 7%),墙钟时间从 154 分钟降至 139 分钟。
工具链现在安装到机器全局缓存目录
(#17306、
#17353)。ESP-IDF 安装到
~/.cache/esphome/idf,nRF Connect SDK 安装到 ~/.cache/esphome/sdk-nrf,因此多 GB 的工具链安装在机器上的每个项目之间共享,而非按配置复制。Docker 和 Home Assistant 插件用户将其固定到持久卷,现有安装会在升级后重新下载一次。
配置验证也更快了,感谢 @frenck 的导入延迟:
aioesphomeapi.posix_tz 延迟使主机配置的 esphome config 中位墙钟时间减少约 33%,从 445 ms 降至 297 ms
(#17214),延迟 requests 导入再节省约 70 ms(约 16%)
(#17215)。
组件别名基础设施
Section titled “组件别名基础设施”一个新的核心机制(#16826)允许重命名组件而不破坏现有 YAML 配置。组件声明 ALIASES = [...](以及可选的
ALIAS_REMOVAL_VERSION),配置验证中的预扫描会重写旧键,同时 sys.meta_path 查找器解析 esphome.components.<oldname> 的 Python 导入。别名通过 AST 扫描发现,因此组件无需导入即可枚举。
新基础设施的第一个用户是 rp2 重命名
(#17145,由 @jesserockz 提交),将
rp2040 平台重命名为 rp2 以反映其对 RP2040 和 RP2350 两者的覆盖。旧版 rp2040: YAML 键和 esphome.components.rp2040 导入继续作为弃用别名工作,将在 2027.7.0 中移除。新的 rp2_2040 和 rp2_2350 变体 kwargs 已添加到 SplitDefault 和
require_framework_version 中,与 ESP32 模式一致。
Modbus 全面改造
Section titled “Modbus 全面改造”@exciton 通过多个 PR 完成了对 modbus 组件的重大改造。
客户端与服务器拆分(#11969)——Modbus 被拆分为
ModbusClientHub 和 ModbusServerHub,彻底退役了角色枚举。客户端组件移至
ModbusClientDevice(#11987),核心 API 表面在发布前重命名并稳定
(#17434、
#17378)。外部组件需要立即根据新 API 更新,下一版本计划进一步的客户端模式 API 清理。
重写解析器——逐字节解析被替换为基于缓冲区、感知帧长度的解析器,正确处理对端服务器响应、不支持的功能码和自定义功能码。响应跟踪使用 std::optional<ModbusDeviceCommand>,启用地址+功能码匹配、每个地址多个设备,以及两个新回调:on_modbus_no_response() 和 on_modbus_not_sent()。
无堆发送路径——新的 SmallInlineBuffer<8> 和 StaticVector<uint8_t, MAX_PDU_SIZE> 意味着 8 字节
Modbus 帧(读取和单寄存器写入的常见情况)内联在 deque 节点中,每帧零堆活动(#17282)。
服务器改进(#17205)——多寄存器值现在按完整跨度匹配,新增 allow_partial_read 选项,重叠寄存器被拒绝,过时的 RAW 值类型已从服务器模式中移除。
默认 send_wait_time 从 250ms 移至 2000ms,turnaround_time 从 100ms 移至 600ms。如果您以前是为了补偿旧解析器而覆盖这些值,请重新评估是否仍需要这些覆盖。
LVGL:动画、旋转与运行时更新
Section titled “LVGL:动画、旋转与运行时更新”@clydebarrow 在本版本中对 lvgl 组件进行了大幅扩展。
- 动画(#16796)——完整的 LVGL 动画支持,包括
from/to 插值、计时函数(gravity 等)、持续时间、循环和
auto_start。 - 动态旋转(#16773)——以度为单位的模板化
lvgl.display.set_rotation,新的on_landscape和on_portrait触发器,以及lvgl.update中的布局选项更新。 - 直接的
mapping语法(#15863)——更简洁的 LVGL 文本和图像src更新,直接使用 mapping。 - 启动暂停(#16973)——新的
paused配置选项在启动时抑制 LVGL 更新。对于不应在 API 连接前渲染无效状态的电子墨水屏尤其有用。 - 显示繁忙期间继续活动(#17374)——当使用
update_when_display_idle(电子墨水屏常见)时,LVGL 现在在显示刷新进行时仍处理用户输入并运行计时器。LVGL 刷新间隔(之前固定为 16 ms)现在可配置。
ESP32-S31 上的千兆以太网(#17277)——为新的支持 RGMII 的 ESP32-S31 变体添加了 type: GENERIC 和 type: YT8531 PHY,需要 ESP-IDF 6.1。YT8531 处理器覆盖自动协商重新启用和 RGMII Tx/Rx 延迟。ethernet 组件上新增了 power_pin 和 phy_registers 选项。
ESP-NOW v2 负载(#17360)——
espnow 组件新增 max_payload_size 选项,接受高达 1470 字节的帧(之前限制为 250)。默认值仍为 250;升至 1470 约消耗 44 KB RAM,默认值约 8 KB。需要 ESP-IDF ≥ 5.4 或 Arduino ≥ 3.2。
LN882X MQTT 支持(#17297)——LN882H 板终于可以 使用 mqtt 组件了。此前 LN882X 尽管共享 LibreTiny 后端却被阻止。
SX126x 数据增白(#17102)——通过新的 whitening_enable 和 whitening_initial 选项配置 FSK 数据增白(CCITT 算法)。
Bluetooth proxy 订阅者语义(#17423)——较晚的 订阅者现在接管单个订阅者槽位,取代陈旧的订阅者,而不是被静默拒绝。这修复了在 Home Assistant 重启后可能出现的”已连接但无广告”状态(在约 150 秒的保活窗口内)。用户无需更改配置,但观察到的行为确实发生了变化。
Zephyr/nRF52 上的 OpenThread 与 MTD 轮询控制
Section titled “Zephyr/nRF52 上的 OpenThread 与 MTD 轮询控制”基础 Zephyr/nRF52 支持(#16854)—— 由 @Ardumine 完成的 nRF52 Zephyr 平台上首次 openthread 支持。处理”加入网络”流程。
运行时轮询周期控制(#11766)——新的
set_poll_period 动作让最小线程设备(Sleepy End Device)临时切换到无线电常开以进行 OTA。http_request.ota 在 MTD 上速度提升约 10x,esphome.ota 也能开始正常工作。
ESP32 上的 RTC 支持偏好设置
Section titled “ESP32 上的 RTC 支持偏好设置”@bootc 让 ESP32 偏好设置后端遵守 make_preference() 的 in_flash=false 标志
(#17073),以与 ESP8266 相同的方式添加了 RTC 内存支持的偏好设置。共享字缓冲区加校验和格式提取到 preferences_rtc.h 中。
新的配置界面:
safe_mode: storage: rtc或flashwifi: fast_connect:字典形式,带enabled和storage子选项preferences: rtc_storage: true
ESP32-C2 和 ESP32-C61 没有 RTC RAM,会优雅回退。这是计划中的 DHCP 租约缓存的基础,已在 ESP32 PICO、S3、C3 和 C6 硬件上验证。
新显示屏、触摸控制器与外设
Section titled “新显示屏、触摸控制器与外设”本次发布新增了对新显示和触摸硬件的广泛支持,主要集中在 M5Stack、Waveshare 和 Seeed reTerminal 系列。
触摸控制器——cst328 由 @latonita 提交(#8011)、 st7123 为 M5Stack Tab5 集成的显示屏触摸驱动,由 @miniskipper 提交(#12075)、 gsl3670 用于 Seeed reTerminal D1001,由 @clydebarrow 提交(#16285),以及 cst9220 覆盖 CST9220 和 CST9217,由 @clydebarrow 提交(#16888)。
电子墨水屏显示屏——epaper_spi 组件新增了多个面板: Waveshare 7.5” V2 BWR 800×480 由 @twisterss 提交 (#15719)、 Seeed reTerminal E1004 13.3” 6 色(T133A01,双 CS SPI)由 @limengdu 提交 (#16706)、 Waveshare 2.13” V4 BWR(SSD1683)由 @profplump 提交 (#16828)、 Soldered Inkplate 2 由 @arunderwood 提交 (#16856), 以及 Seeed reTerminal-sticky 由 @clydebarrow 提交 (#16950)。it8951 电子墨水控制器,支持 M5Paper 和 Seeed reTerminal E1003/EE03(最高 1872×1404,16 级灰度),作为新组件由 @Passific 提交 (#15346)。
MIPI-SPI 显示屏——M5STACK ATOM3SR 由 @clydebarrow 提交 (#17344)和 Waveshare ESP32-S3-Touch-AMOLED-1.64(SH8601) 由 @crimike 提交(#17386)。
Divoom Pixoo 64——新的 pixoo 组件由 @jesserockz 提交(#16974),通过 SPI 驱动 64×64 RGB LED 矩阵,并为面板亮度暴露了灯光平台以及图像 API。
传感器与外设——ufm01 ScioSense UFM-01 超声波流量计由 @ljungqvist 提交(#16582),通过 UART 报告累积流量、流速、水温以及四个诊断二进制传感器。qmi8658 6 轴 IMU 由 @clydebarrow 提交(#16889),新增加速度计、陀螺仪和片上温度传感,带 motion 平台。waveshare_io_ch32v003 I/O 扩展器由 @latonita 提交(#10071),覆盖 Waveshare 较新 S3 板上的 CH32V003 扩展器,提供 EXIO GPIO、PWM 背光控制、ADC 电池电压传感器和 RTC 中断状态。
音频——pcm5122 组件新增模拟增益(0/-6 dB)、通道混音
(立体声/左/右/交换)、可配置音量范围、待机/断电开关和 XSMT 使能引脚,同时修复了一个时钟寄存器页 Bug,该 Bug 一直静默破坏时钟设置
(#17313),由 @remcom 提交。i2s_audio 扬声器现在接受更宽的流(例如 24 位输入到 16 位设备),并使用 esp-audio-libs 的 pcm_convert::copy_frames 就地收窄
(#16821)。
图像组件变为平台
Section titled “图像组件变为平台”@jesserockz 将 image: 重构为平台组件
(#17416)。新形式使用 platform: file、
platform: animation 和 platform: online_image,其中 animation 成为新文件平台的正式子组件。旧版顶层 image:、animation: 和 online_image: 键在 2027.1.0 之前继续工作,验证时会显示复制粘贴迁移警告。
Zigbee:SDK 2.0.2 与端点合并
Section titled “Zigbee:SDK 2.0.2 与端点合并”@luar123 将 ESP32 上的 zigbee 组件升级到了新的 esp-zigbee-sdk 2.0.2,以获得更好的 ESP-IDF 兼容性,并支持 ESP32-H4、H21 和 S31 变体 (#16869)。专用的 Zigbee 存储分区已退役,改为默认 NVS,报告配置也简化了:enabled/coordinator 区分已取消。
后续跟进(#17402)合并 ESP32 上组件的端点,允许用户手动组合它们。这使得单端点设备可以拥有多个传感器,符合 Zigbee 标准预期。两个 PR 都要求现有 Zigbee 设备在升级后重新加入、重新访谈和重新配置。
YAML 合并警告
Section titled “YAML 合并警告”@clydebarrow 添加了一个警告,当 YAML 合并(<<:)静默丢弃键时触发
(#17246)。两个顶层 api: 块通过 <<: 合并以前会丢弃一个而不做任何指示;ESPHome 现在会打印源位置,解释正在进行合并,并建议使用 packages: 进行深度合并。可通过 esphome: merge_warnings: false 切换。
其他值得注意的功能
Section titled “其他值得注意的功能”- 旧版 Web 仪表盘已移除(#17124)——内置的
Tornado 仪表盘已移除,改为外部的 ESPHome 设备构建器。
dashboardCLI 命令保留但隐藏,并打印迁移提示。Docker 和 Home Assistant 插件用户不受影响:他们已经路由到设备构建器。 - 放弃 Python 3.11 支持(#17280)——最低 Python 版本现在为 3.12。Home Assistant 插件和 Docker 镜像已在 3.12 上。
- BK7238 与 Tuya T1 板支持(#17288)——
LibreTiny 1.13.0 更新将 BK7238 板添加到
bk72xx平台:generic-bk7238、generic-bk7238-tuya和 Tuya T1 模块系列(t1-2s、t1-3s、t1-m、t1-u),在市场上设备中正变得常见。 - ESP32-S31 和 H4 的 PSRAM(#17192)——两个新变体均获得 PSRAM 接线:S31 八线模式 40/100/200/250 MHz,H4 四线模式 32/64 MHz。值来自 ESP-IDF release/v6.1 上的
esp_psramKconfig,八线模式验证现在由数据驱动,而非硬编码到 S3。 - 主机平台偏好目录(#11160)——新的
ESPHOME_PREFDIR环境变量覆盖 host 平台存储偏好的位置,在将 ESPHome 作为系统服务运行时(HOME可能未设置)很有用。 - Web 服务器 SSE 优化(#17400)——Logger 的已知消息长度现在通过 SSE 发送路径,避免了每次日志事件时的
strlen和strchr重扫描。无线路变化。 - Web 服务器 HTTP 摘要认证(#17541)——
web_server的auth:新增type:选项以选择basic或digest。摘要认证将密码留在网络之外(仅发送哈希),而不是 Basic 使用的可轻松逆推的 Base64;两者在浏览器中看起来相同。该方案在构建时固定,以便未使用的代码路径被编译掉。默认值暂为basic以避免破坏非浏览器 REST 客户端,将在 2027.1.0 改为digest;之后如需保持当前行为请显式设置type: basic。 - WiFi 漫游扫描抑制(#17012)——新的内部 API 允许组件请求暂停连接后的漫游扫描。第一个用户是 sendspin,现在在播放时抑制漫游扫描以防止可听见的卡顿 (#17133)。
- 运行时 UART 重新配置(#16990)——波特率、校验和其他 UART 设置现在可以在已打开的通道上运行时更改,而无需重新连接。已同时适用于标准 uart 和 usb_uart 组件。
- 关闭时亮度保留(#17103)——将亮度设置为 0 不再静默钳位到 1.0。如果随后的开启没有显式亮度且当前亮度为 0,则在开启时将亮度设置为 1.0。
- coex/sdkconfig 协调器(#17008)——单个协调器现在处理 ESP32 上的 WiFi/以太网/BLE 共存 sdkconfig 标志,消除冲突值(例如
ethernet与esp32_ble_tracker在CONFIG_SW_COEXIST_ENABLE上)。行为保持不变,内部辅助函数获得语义名称如request_wifi、request_ethernet和request_software_coexistence。 - 可视化编辑器可见性提示(#17449)——构建系统和框架内部现在标记
cv.Visibility,以便设备构建器可视化编辑器可以将其从通过浏览器编辑 YAML 的用户中隐藏。
本版本包含了来自 30 多位贡献者的 217 个拉取请求。衷心感谢让 2026.7.0 成为可能的所有人:
- @swoboda1337 - 45 个 PR,包括将 ESP-IDF 设为 esp32 默认工具链、树级单精度浮点运算扫描、ESP32-S31/H4/H21 支持、ccache 和共享工具链缓存、千兆以太网、ESP-NOW v2 负载,以及放弃 Python 3.11
- @jesserockz - 45 个 PR,包括通用组件别名基础设施、跨越 21 批次的
final类扫描、[pixoo] Divoom Pixoo 显示组件、[rp2] 平台重命名、[image] 平台重构,以及移除旧版 Web 仪表盘 - @clydebarrow - 17 个 PR,包括 LVGL 动画、动态旋转、启动暂停和显示繁忙期间继续活动、新的 [gsl3670] 和 [cst9220] 触摸屏、[qmi8658] IMU motion 平台、[mipi_spi] M5STACK ATOM3SR、YAML 合并丢弃警告,以及关闭时亮度保留
- @exciton - 9 个 PR,包括重大的 [modbus] 解析器重写和客户端/服务器中心拆分、无堆发送路径、带部分读取的寄存器范围修复,以及最终确定的 API 表面
- @tomaszduda23 - 8 个 PR,构建原生 nRF52 构建:原生 SDK 支持、上传流程、配置输入重建触发器、非 nRF52840 板支持、libc 选择,以及 OTA 错误报告
- @kahrendt - 6 个 PR,包括 WiFi 漫游扫描抑制、[sendspin] 播放集成、[i2s_audio] 流收窄,以及 microMP3 升级
- @Ardumine - 5 个 PR,扩展 nRF52/Zephyr 网络:BSD 套接字支持、基础 OpenThread、mDNS、[api] 支持,以及更大的 Zephyr 网络缓冲区
- @kbx81 - 4 个 PR,包括 ESP32 NVS 加密、OTA 降级保护、新的 [provisioning] 组件,以及 ESP32 网络/共存 sdkconfig 协调器
- @p1ngb4ck - 4 个 PR,包括 [usb_uart] 每设备波特率上限、FTDI RX 稳定性修复,以及向量
pop_back辅助函数 - @luar123 - 3 个 PR,包括 [zigbee] SDK 2.0.2 升级和 esp32 上的端点合并
- @frenck - 3 个 PR,延迟
aioesphomeapi和requests导入以加快配置验证,以及精炼 ESP32-S3 PSRAM 引脚警告 - @latonita - 2 个 PR,包括新的 [cst328] 触摸屏和 [waveshare_io_ch32v003] I/O 扩展器
- @rwrozelle - 2 个 PR,包括 [openthread] 面向 MTD 的
set_poll_period动作和 [socket] 唤醒请求门控修复 - @anunayk - 2 个 PR,包括 Zephyr GPIO 中断和 [ble_nus] 原子日志帧
- @remcom - 2 个 PR,包括 [pcm5122] 模拟增益、通道混音以及待机/断电工作,加上 [audio_file] MP3 检测修复
- @miniskipper - 新的 [st7123] 触摸控制器组件,用于 M5Stack Tab5
- @Passific - 新的 [it8951] 电子墨水控制器组件
- @ljungqvist - 新的 [ufm01] 超声波流量计组件
- @bootc - ESP32 上 RTC 支持的偏好设置,遵守
in_flash标志
同时还要感谢 @bdraco、@haku、 @Eelviny、@twisterss、 @ddrown、@limengdu、 @profplump、@arunderwood、 @kyvaith、@jspiros、 @guillempages、@zeroflow、 @mikelawrence、@jclehner、 @berikv、@Bl00d-B0b、 以及 @crimike 的贡献,以及所有报告问题、测试预发布版本和在社区中提供帮助的每一个人。
- ESP32:未显式设置
toolchain:时,ESP-IDF 现为默认工具链。请在您的esp32:块中添加toolchain: platformio以继续使用 PlatformIO 构建 #16910 - Python:最低支持的 Python 版本提升至 3.12。Home Assistant 插件和 Docker 不受影响;仅有 3.11 上的直接
pip安装需要升级 #17280 - nRF52:未显式设置
toolchain:时,原生 nRF Connect SDK 工具链现为默认。请在您的nrf52:块中添加toolchain: platformio以继续使用 PlatformIO 构建 #17319 - nRF52:Zephyr DCDC 设置不再由 ESPHome 强制,这会根据板设置略微改变生成代码,并允许为没有 DCDC 的板构建 #17373
- 旧版仪表盘:内置的 Tornado Web 仪表盘已移除。通过
pip安装的用户应安装并运行 esphome-device-builder 代替。Docker 和 Home Assistant 插件用户不受影响 #17124
- Bluetooth Proxy:最新的广告订阅者现在接管单个订阅者槽位,取代陈旧的订阅者,而不是被拒绝。修复了 Home Assistant 重启后”已连接但无广告”的问题(在约 150 秒的保活窗口内) #17423
- Hub75:已弃用的
scan_wiring名称FOUR_SCAN_16PX_HIGH、FOUR_SCAN_32PX_HIGH和FOUR_SCAN_64PX_HIGH已移除。请改用SCAN_1_4_16PX_HIGH、SCAN_1_8_32PX_HIGH和SCAN_1_8_64PX_HIGH#17118 - Light:将亮度设置为
0不再静默钳位到1.0。如果随后的开启没有显式亮度且当前亮度为0,则在开启时将亮度恢复为1.0#17103 - LibreTiny(LN882H):
generic-ln882hki板已移除;请根据出厂固件使用generic-ln882h或generic-ln882h-tuya。LN882H 默认日志 UART 现为UART1。LN882H 分区布局已变更(设备端 OTA 迁移由 LibreTiny 处理)。在wb02a板上,引脚别名已变更(D1→ GPIO6、D7→ GPIO5、D8→ GPIO9、D9→ GPIO24、新的D10→ GPIO25),默认 I2C 引脚顺序已变更 #17288 - Modbus:
disable_crc选项已移除,服务器模式中的send_wait_time和turnaround_time也已移除。客户端模式默认值已提升:send_wait_time250ms → 2000ms,turnaround_time100ms → 600ms #11969 - Packages:单包
!include形式已移除。请将 include 包装在列表中:packages: [!include mypackage.yaml]#17119 - Web Server:已弃用的对象 ID URL 匹配回退已移除。URL 仅按实体名称匹配 #17113
- Web Server:版本 1 已弃用。设置
version: 1时会发出配置警告;计划在 2027.1.0 移除。请迁移到 v2(默认)或 v3 #17109 - Web Server:携带
Origin头的跨域浏览器请求现在会被拒绝,除非来源与请求Host(同源)匹配或列在新的allowed_origins:选项中。没有Origin头的请求(curl、原生 API、其他非浏览器客户端)始终允许,因此这是针对浏览器混淆委托人/CSRF 情况的纵深防御,而非认证边界。私有网络访问现在默认关闭(以前为开启),启用时复用allowed_origins:授权预检;在没有允许来源的情况下启用 PNA 会在配置验证时拒绝 #17530 - Zigbee:Zigbee SDK 升级到 2.0.2 改变了存储布局,因此 ESP32 设备在升级后必须重新加入和重新配置。
reporting:配置值enabled和coordinator不再有效 #16869 - Zigbee:在 ESP32 上端点合并现在默认合并组件的端点,并允许用户手动组合。现有配置需要重新加入、重新访谈和重新配置 #17402
- 显示组件:MIPI 系列显示驱动(
mipi_spi、mipi_dsi和mipi_rgb)现在强制执行 PSRAM 和 I/O 扩展器等必需组件的配置。这仅适用于识别具有已知硬件分配的集成板的显示型号。 #17405
未记录的 API 变更
Section titled “未记录的 API 变更”调用内部字符串格式化辅助函数的 lambda 用户应注意以下移除。两种方法都在 6 个月前被弃用,改用避免 std::string 分配的基于缓冲区的变体。
-
Core:
value_accuracy_to_string()已移除。请使用value_accuracy_to_buf(),它写入调用者提供的VALUE_ACCURACY_MAX_LEN字节的缓冲区。 #17116Before:
std::string s = value_accuracy_to_string(value, accuracy);After:
char buf[VALUE_ACCURACY_MAX_LEN];value_accuracy_to_buf(buf, value, accuracy); -
Remote Base(Midea):
MideaData::to_string()已移除。请改用to_str(buffer),它将格式写入调用者提供的缓冲区。#17117Before:
std::string s = data.to_string();After:
char buf[32];data.to_str(buf); -
Dashboard Import(ESP8266):
package_import_url现在作为 PROGMEM 闪存字面量 (ProgmemStr)存储,而非 DRAM 中的普通const char *。现有消费者已将其作为闪存指针读取(mDNS 通过MDNS_STR_ARG,MQTT 通过 ArduinoJson 的__FlashStringHelper重载),因此在 ESP8266 上这是透明变更,在其他平台上无操作。在 ESP8266 上读取package_import_url的 lambda 不应将其作为普通const char *解引用。 #17127
开发者的破坏性变更
Section titled “开发者的破坏性变更”- Modbus API 拆分:
Modbus被拆分为ModbusClientHub和ModbusServerHub;ModbusDevice::set_parent()现在接受ModbusClientHub *;Modbus::register_device()已移除 (#11969、 #11987、 #12376) - Modbus API 命名:核心公开 API 表面在发布前重命名并稳定;下一版本计划进一步的客户端模式 API 清理 (#17378、 #17434)
- Modbus 功能码比较:移除了
ModbusFunctionCode和uint8_t之间的排序运算符(<、<=、>、>=)。请显式转换或使用helpers::is_function_code_*()#11969 - Select
state成员已移除:请改用current_option()或active_index()#17027 - Scheduler
std::string重载已移除:App.scheduler.set_timeout(std::string, ...)及相关std::string名称重载已删除;请传递const char *名称 #17111 get_object_id()和get_compilation_time()已移除:之前弃用的核心辅助函数已删除 #17112- 返回
std::string的GPIOPin::dump_summary()已移除:重写必须通过缓冲区形式返回 #17115 - UART
load_settings(bool)现在为纯虚函数:所有UARTComponent子类必须实现运行时设置更新 #16990 - API 预-1.14 object_id 向后兼容已移除:旧客户端回退路径已删除 #17108
- Preferences RTC 辅助函数已移动:字缓冲区 + 校验和格式提取到
preferences_rtc.h并在 ESP32/ESP8266 之间共享 #17073 - Network
use_address日志记录变更:运行时 MAC 后缀扩展移入网络组件 #17432 - 可配置类标记为
final:约 20 批组件向其运行时实例化的具体类添加final以允许去虚拟化 (#16952-#16972、 #17129、 #17130、 #17147) rp2040组件重命名为rp2:Python 导入esphome.components.rp2040和rp2040:YAML 键 在 2027.7.0 之前通过新的别名基础设施继续作为弃用别名工作 (#17145、 #16826)mipi_显示驱动程序模型配置变更:在模型定义中使用swap_xy=cv.UNDEFINED已弃用。 #17405
有关详细的迁移指南和 API 文档,请参见 ESPHome 开发者文档。
版本 2026.7.1 - 7月21日
Section titled “版本 2026.7.1 - 7月21日”- [emc2101] 修复负外部温度报告为大正值 esphome#17494 by @swoboda1337
- [haier] 修复室外除霜温度报告线圈温度 esphome#17492 by @swoboda1337
- [zephyr] 实现 ISRInternalGPIOPin::digital_write esphome#17601 by @quantum5
- [as3935_i2c] 读取寄存器时使用重复开始 esphome#17584 by @swoboda1337
- [micro_wake_word] 在 bundle 中包含本地模型文件 esphome#17604 by @bdraco
- [core] 改进框架镜像选择、下载错误和版本解析 esphome#17615 by @swoboda1337
- [http_request] 修复 IDF 后端中头部集合状态的返回后使用 esphome#17627 by @swoboda1337
- [web_server_idf] 使用 core format_hex_to 辅助函数进行摘要认证(修复 Arduino 构建) esphome#17608 by @swoboda1337
- [nrf52] 为 Zephyr SDK 发现设置 ZEPHYR_SDK_INSTALL_DIR esphome#17633 by @jesserockz
- Bump bundled esphome-device-builder to 1.6.2 esphome#17640 by @esphome[bot]
- Bump aioesphomeapi from 45.6.0 to 45.6.1 esphome#17653 by @dependabot[bot]
- Bump aioesphomeapi from 45.6.1 to 45.6.2 esphome#17654 by @dependabot[bot]
- Bump bundled esphome-device-builder to 1.6.3 esphome#17651 by @esphome[bot]
- [espidf] 当工具安装失败时建议安装缺失的系统库 esphome#17619 by @swoboda1337
- [core] 修复 Windows 上 srcFilter 排除被静默忽略 esphome#17648 by @bharvey88
- 在 Intel macOS 上将 cryptography 固定在 48.0.1 esphome#17658 by @bdraco
- 在 sdist 和 wheel 中发布组件 requirements.txt 文件 esphome#17660 by @bdraco
- [logs] 为深度休眠设备限制日志重连退避 esphome#17656 by @bdraco
- [nrf52] 将 PlatformIO 工具链 Python 包安装到专用 venv esphome#17635 by @jesserockz
- Bump bundled esphome-device-builder to 1.6.4 esphome#17662 by @esphome[bot]
- [esp32] 将推荐的 ESP-IDF 提升至 5.5.5,Arduino 提升至 3.3.10 esphome#17669 by @swoboda1337
- Bump bundled esphome-device-builder to 1.6.5 esphome#17675 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.6.6 esphome#17681 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.6.7 esphome#17696 by @esphome[bot]
- 生成 ESP-IDF 组件 CMakeLists 时拆分多 token build.flags 条目 esphome#17649 by @bharvey88
- [ssd1306] 修复 SH1106/SH1107 显示器忽略 offset_x esphome#17700 by @jesserockz
- [micro_wake_word] 并行下载模型 esphome#17701 by @bdraco
- [platformio] 接受作为库名传递的 git URL esphome#17697 by @bdraco
- [git] 检测中断的克隆并自动重新克隆 esphome#17690 by @bdraco
- [espidf] 使 openocd-esp32 可选,以便其 libusb 检查不会破坏安装 esphome#17686 by @bdraco
- [light] 修复 pulse 和其他效果 esphome#17645 by @clydebarrow
- Bump bundled esphome-device-builder to 1.6.8 esphome#17708 by @esphome[bot]
- [core] Python 版本变化时自动清理 PlatformIO 构建环境 esphome#17671 by @bdraco
- [platformio] 缓存副本缺少清单时重新下载库 esphome#17691 by @bdraco
- [http_request] 修复 http 响应体的使用 esphome#17713 by @kamaradclimber
- [platformio] 在无效库错误中包含缓存路径 esphome#17692 by @bdraco
- [espidf] 恢复中断的工具链下载而不是重新开始 esphome#17706 by @bdraco
- [wireguard] 将私钥标记为敏感,停止脱敏公钥 esphome#17736 by @bdraco
- [esp8266] 在 Apple Silicon Mac 上缺失 Rosetta 2 时快速失败 esphome#17737 by @bdraco
版本 2026.7.2 - 7月23日
Section titled “版本 2026.7.2 - 7月23日”- Bump aioesphomeapi from 45.6.2 to 45.7.0 esphome#17768 by @dependabot[bot]
- [sen5x] 添加模型选项以覆盖自动检测 esphome#17764 by @bharvey88
- [sendspin] 升级 sendspin-cpp 至 v0.7.0 esphome#17781 by @kahrendt
- [mipi_spi] 修复部分更新 Bug esphome#17747 by @Flautz
- [bundle] 编译提取的 bundle 时重映射绝对文件路径 esphome#17765 by @bdraco
- Bump bundled esphome-device-builder to 1.6.9 esphome#17793 by @esphome[bot]
版本 2026.7.3 - 7月28日
Section titled “版本 2026.7.3 - 7月28日”- Bump bundled esphome-device-builder to 1.6.10 esphome#17801 by @esphome[bot]
- [esp32_ble] 将 ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT 转发到 GAP 处理器 esphome#17833 by @mvoss96
- [espidf] 在原生 ESP-IDF 构建中遵守 compile_process_limit esphome#17857 by @swoboda1337
- [espidf] 在 app 源 glob 中包含 .cc、.cxx 和 .c++ 源文件 esphome#17754 by @ruimarinho
- Bump bundled esphome-device-builder to 1.7.0 esphome#17871 by @esphome[bot]
- [wifi] 锁定与 captive portal Web 任务共享的扫描结果 esphome#17850 by @bdraco
- [git] 修复在 esp-idf 工具链上克隆库时的子模块更新失败 esphome#17862 by @bdraco
- [captive_portal] 构建配置 JSON 时转义 SSID esphome#17872 by @jesserockz
- [ethernet] 为 ENC28J60 设置 SPI CS 保持时间 esphome#17885 by @swoboda1337 (breaking-change)
- [light] 确保亮度为 0 时二进制灯光关闭 esphome#17893 by @clydebarrow
- 更新 webserver 本地资源至 20260728-053845 esphome#17899 by @esphome[bot]
版本 2026.7.4 - 8月5日
Section titled “版本 2026.7.4 - 8月5日”- Bump filelock from 3.29.0 to 3.32.0 esphome#17759 by @dependabot[bot]
- Bump platformdirs from 4.10.0 to 4.11.0 esphome#17756 by @dependabot[bot]
- Bump bundled esphome-device-builder to 1.8.0 esphome#17953 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.8.1 esphome#17964 by @esphome[bot]
- [epaper_spi] 默认初始化序列为空而非 None esphome#17966 by @clydebarrow
- [git] 修复首次设备采用失败:锁定克隆缓存以防并发解析 esphome#17923 by @bdraco
- [espidf] 在生成的组件 CMakeLists 中使用正斜杠 esphome#17965 by @swoboda1337
- [esp32] 将工具链验证限制为受支持的值 esphome#17972 by @jesserockz
- [api] 修复溢出缓冲区排空重入时的双重释放 esphome#17969 by @bdraco
- Bump bundled esphome-device-builder to 1.8.2 esphome#17995 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.9.0 esphome#18017 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.9.1 esphome#18025 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.9.2 esphome#18051 by @esphome[bot]
- [esp32] 显式禁用 BLE 5.0 esphome#18047 by @ssieb
完整变更列表
Section titled “完整变更列表”- [epaper_spi] 元数据、Bug 修复、新模型 esphome#16950 by @clydebarrow (new-feature)
- [ufm01] 添加 UFM-01 超声波流量计组件 esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [openthread] 为 Zephyr/nRF52 平台添加基础 Openthread 支持 esphome#16854 by @Ardumine (new-feature)
- [sx126x] 添加数据增白选项 esphome#17102 by @jclehner (new-feature)
- [epaper_spi] 添加对 Inkplate 2 的支持 esphome#16856 by @arunderwood (new-feature)
- [epaper_spi] 添加对 Waveshare 2.13” V4 系列 B(R/B/W)的支持 esphome#16828 by @profplump (new-feature)
- [waveshare_io_ch32v003] Waveshare I/O 扩展器组件 esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [psram] 支持 ESP32-S31/H4 esphome#17192 by @swoboda1337 (new-feature)
- [host] 修复偏好设置目录处理 esphome#11160 by @haku (new-feature)
- [openthread] 为 MTD 设备提供控制 poll_period 的动作 esphome#11766 by @rwrozelle (new-feature)
- [it8951] 为 epaper_spi 添加 IT8951 电子墨水控制器支持 esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [esphome] 当 YAML 合并(
<<:)丢弃键时发出警告 esphome#17246 by @clydebarrow (new-feature) - [ethernet] 为 ESP32-S31 通过 RGMII 的通用和 YT8531 PHY(千兆) esphome#17277 by @swoboda1337 (new-feature)
- [qmi8658] QMI8658 IMU 的 motion 平台 esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] 添加 CST9220 和 CST9217 触摸屏支持 esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] 添加 Divoom Pixoo 显示组件 esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [mqtt] 添加 LN882X(LN882H)平台支持 esphome#17297 by @Bl00d-B0b (new-feature)
- [modbus_server] 修复寄存器范围问题并允许部分读取 esphome#17205 by @exciton (new-feature)
- [epaper_spi] 添加 Waveshare 7.5” V2 BWR 支持 esphome#15719 by @twisterss (new-feature)
- [st7123] 添加 ST7123 触摸控制器组件(M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [cst328] 触摸屏(Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [epaper_spi] 为 reTerminal E1004 添加 T133A01 6 色电子墨水驱动 esphome#16706 by @limengdu (new-feature)
- [esp32] 添加 RTC 支持的偏好设置(遵守 in_flash 标志) esphome#17073 by @bootc (new-feature)
- [mipi_spi] 添加 Waveshare-ESP32-S3-TOUCH-AMOLED-1.64 esphome#17386 by @crimike (new-feature)
- [nrf52] 允许用户选择 libc 版本 esphome#17408 by @tomaszduda23 (new-feature)
- [rp2] 将 rp2040 平台重命名为 rp2 esphome#17145 by @jesserockz (new-feature)
- [espnow] 为 ESP-NOW v2 帧添加 max_payload_size 选项 esphome#17360 by @swoboda1337 (new-feature)
- [mipi_spi] 添加 M5STACK ATOM3SR 显示器 esphome#17344 by @clydebarrow (new-feature)
- [esp32] 添加软件 OTA 降级保护 esphome#17315 by @kbx81 (new-feature)
- [lvgl] 显示繁忙期间继续活动 esphome#17374 by @clydebarrow (new-feature)
- [esp32] 添加 NVS 加密(HMAC 方案) esphome#17004 by @kbx81 (new-feature)
- [pcm5122] 添加模拟增益、通道混音、音量范围、待机/断电开关和 XSMT 使能引脚支持 esphome#17313 by @remcom (new-feature) (new-platform)
- [lvgl] 添加 paused 选项以在启动时抑制更新 esphome#16973 by @clydebarrow (new-feature)
- [provisioning] 添加配置窗口 esphome#17152 by @kbx81 (new-component) (new-feature)
- [lvgl] 添加动画 esphome#16796 by @clydebarrow (new-feature)
- [lvgl] 添加直接使用
mappingesphome#15863 by @clydebarrow (new-feature) - [zigbee] 允许在 esp32 上组合和合并端点 esphome#17402 by @luar123 (new-feature) (breaking-change)
- [image] 重构为平台组件 esphome#17416 by @jesserockz (new-component) (new-feature)
- [lvgl] 动态旋转功能 esphome#16773 by @clydebarrow (new-feature)
- [gsl3670] 添加新的触摸屏组件 esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
- [mipi_dsi] M5Stack Tab5 的新模型 esphome#17500 by @clydebarrow (new-feature)
- [web_server] 添加带可选方案的 HTTP 摘要认证 esphome#17541 by @jesserockz (new-feature)
- [ufm01] 添加 UFM-01 超声波流量计组件 esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [waveshare_io_ch32v003] Waveshare I/O 扩展器组件 esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [it8951] 为 epaper_spi 添加 IT8951 电子墨水控制器支持 esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [qmi8658] QMI8658 IMU 的 motion 平台 esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] 添加 CST9220 和 CST9217 触摸屏支持 esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] 添加 Divoom Pixoo 显示组件 esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [st7123] 添加 ST7123 触摸控制器组件(M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [cst328] 触摸屏(Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [provisioning] 添加配置窗口 esphome#17152 by @kbx81 (new-component) (new-feature)
- [image] 重构为平台组件 esphome#17416 by @jesserockz (new-component) (new-feature)
- [gsl3670] 添加新的触摸屏组件 esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
- [ufm01] 添加 UFM-01 超声波流量计组件 esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [waveshare_io_ch32v003] Waveshare I/O 扩展器组件 esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [it8951] 为 epaper_spi 添加 IT8951 电子墨水控制器支持 esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [qmi8658] QMI8658 IMU 的 motion 平台 esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] 添加 CST9220 和 CST9217 触摸屏支持 esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] 添加 Divoom Pixoo 显示组件 esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [st7123] 添加 ST7123 触摸控制器组件(M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [cst328] 触摸屏(Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [pcm5122] 添加模拟增益、通道混音、音量范围、待机/断电开关和 XSMT 使能引脚支持 esphome#17313 by @remcom (new-feature) (new-platform)
- [gsl3670] 添加新的触摸屏组件 esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
- [esp32] 将 ESP-IDF 设为默认工具链 esphome#16910 by @swoboda1337 (breaking-change)
- [select] 移除已弃用的 state 成员 esphome#17027 by @bdraco (breaking-change)
- [modbus] 修复解析并拆分服务器模式 esphome#11969 by @exciton (breaking-change)
- [web_server] 移除已弃用的对象 ID URL 匹配 esphome#17113 by @bdraco (breaking-change)
- [web_server] 弃用版本 1 esphome#17109 by @bdraco (breaking-change)
- [packages] 移除已弃用的单包 include 语法 esphome#17119 by @bdraco (breaking-change)
- [hub75] 移除已弃用的 scan_wiring 名称别名 esphome#17118 by @bdraco (breaking-change)
- [dashboard] 移除旧版 Web 仪表盘 esphome#17124 by @jesserockz (breaking-change)
- [core] 放弃 Python 3.11 支持 esphome#17280 by @swoboda1337 (breaking-change)
- [libretiny] 更新 LibreTiny 至 v1.13.0 esphome#17288 by @swoboda1337 (breaking-change)
- [zigbee] 将 zigbee sdk 升级至 2.0.2 esphome#16869 by @luar123 (breaking-change)
- [bluetooth_proxy] 接管陈旧的广告订阅而非拒绝新订阅者 esphome#17423 by @bdraco (breaking-change)
- [nrf52] 允许为非 nrf52840 板构建 esphome#17373 by @tomaszduda23 (breaking-change)
- [light] 关闭时保留亮度 esphome#17103 by @clydebarrow (breaking-change)
- [zigbee] 允许在 esp32 上组合和合并端点 esphome#17402 by @luar123 (new-feature) (breaking-change)
- [mipi][mipi_spi][mipi_dsi][mipi_rgb] 变换清理 esphome#17405 by @clydebarrow (breaking-change)
- [web_server] 添加带 allowed_origins 的 CORS 来源检查 esphome#17530 by @jesserockz (breaking-change)
- [tests] 在内存影响排除测试中模拟目标分支 esphome#16913 by @jesserockz
- [xpt2046] 触摸屏驱动增强 esphome#16414 by @ddrown
- [runtime_image] 改进错误日志记录 esphome#16943 by @guillempages
- [epaper_spi] 元数据、Bug 修复、新模型 esphome#16950 by @clydebarrow (new-feature)
- 在编码约定中添加 PEP 572 海象运算符偏好 esphome#16951 by @jesserockz
- Bump bundled esphome-device-builder to 1.0.5 esphome#17014 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.0.7 esphome#17018 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.0.8 esphome#17020 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.0.9 esphome#17021 by @esphome[bot]
- [ci] 用直接配置文件差异检查替换 clang-tidy 哈希 esphome#17019 by @swoboda1337
- [ufm01] 添加 UFM-01 超声波流量计组件 esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [nrf52] 添加原生构建支持 esphome#16898 by @tomaszduda23
- [core] 添加通用组件别名基础设施 esphome#16826 by @jesserockz
- [esp32] 将 ESP-IDF 设为默认工具链 esphome#16910 by @swoboda1337 (breaking-change)
- [socket] 修复在 LwIP 套接字接收事件上设置唤醒请求门控标志 esphome#17010 by @rwrozelle (完整变更列表请参见原文)
- Bump ruff from 0.15.16 to 0.15.17 esphome#16918 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.17.0 to 4.17.5 esphome#16919 by @dependabot[bot]
- Bump clang-tidy from 22.1.0.1 to 22.1.7 esphome#16984 by @dependabot[bot]
- Bump tzlocal from 5.3.1 to 5.4.3 esphome#17015 by @dependabot[bot]
- Bump pylint from 4.0.5 to 4.0.6 esphome#16983 by @dependabot[bot]
- Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.1 esphome#16986 by @dependabot[bot]
- Bump cryptography from 48.0.1 to 49.0.0 esphome#16985 by @dependabot[bot]
- Bump pytest from 9.0.3 to 9.1.0 esphome#16981 by @dependabot[bot]
- Bump actions/checkout from 6.0.3 to 7.0.0 esphome#17049 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.17.5 to 4.17.6 esphome#17047 by @dependabot[bot]
- Bump ruff from 0.15.17 to 0.15.18 esphome#17046 by @dependabot[bot]
- Bump py7zr from 1.1.0 to 1.1.3 esphome#17071 by @dependabot[bot]
- Bump resvg-py from 0.3.2 to 0.3.3 esphome#17070 by @dependabot[bot]
- Bump pytest from 9.1.0 to 9.1.1 esphome#17069 by @dependabot[bot]
- Bump actions/cache from 5.0.5 to 6.0.0 in /.github/actions/restore-python esphome#17169 by @dependabot[bot] (完整变更列表请参见原文)
