监听事件
当 Home Assistant 内部发生特定事件时,您的 集成 可能需要采取行动。 Home Assistant 提供事件助手来侦听特定事件类型并直接访问事件总线。这些助手经过高度优化,可最大程度地减少回调次数。如果您需要侦听的特定事件已经有一个帮助程序,那么最好使用该帮助程序而不是直接侦听事件总线。
可用的事件助手
事件助手在 homeassistant.helpers.event 命名空间中可用。这些函数返回一个取消侦听器的可调用函数。
以下函数的同步版本也可用,无需 async_ 前缀。
示例
跟踪实体状态变化
跟踪模板更改
跟踪实体注册表更改
跟踪时间变化
追踪太阳
直接监听事件总线
有两个函数可用于创建侦听器。这两个函数都返回一个可取消侦听器的可调用函数。
async_listen_once- 监听该事件一次,不再触发async_listen- 收听直至取消
使用 async_listen 的情况很少见,因为 EVENT_HOMEASSISTANT_START、EVENT_HOMEASSISTANT_STARTED 和 EVENT_HOMEASSISTANT_STOP 每次运行仅触发一次。
异步上下文
同步上下文
常见事件
以下事件通常是直接监听的。
其他活动
除非 集成 是 Core 的一部分,否则很少直接监听这些事件。通常有一个可用的帮助程序来使用这些事件,在这种情况下,不应直接侦听它们。

