Config entry state 转换已更改
在卸载和移除 entries 时的 config entry state 转换已被修改:
-
新增了一个状态
ConfigEntryState.UNLOAD_IN_PROGRESS,在调用集成的async_unload_entry之前设置
原因:- 使编写在最后一条 config entry 卸载之后应运行的清理代码变得更简单
- 改善与 config entries 的 reload 和 unload 相关的问题的调试
-
当集成的
async_unload_entry返回 False 时,config entry state 将被设置为ConfigEntryState.FAILED_UNLOAD
原因:- 如果
async_unload_entry返回False,我们不能假设集成仍处于已加载状态,很可能它已经部分卸载了自身,尤其是考虑到这是我们推荐的模式:
- 如果
-
在调用集成的
async_remove_entry之前,config entry 会从hass.config_entries中移除
原因:- 使编写在最后一条 config entry 移除之后应运行的清理代码变得更简单
自定义集成作者需要检查并在必要时更新他们的集成的 async_unload_entry 和 async_remove_entry。
最常见的需要更新的模式如下:
如果自定义集成的最低 Home Assistant 版本设置为 2025.3.0,现在可以简化为:
如果自定义集成需要与早期版本的 Home Assistant Core 保持向后兼容:
更多背景信息请参阅 config entry 文档 以及 home assistant core PR #138522。

