事件
Home Assistant 的核心是事件总线。事件总线允许任何集成触发或监听事件。
事件与状态变化
所有实体都会产生状态变化事件。每次实体状态发生变化时,都会产生一个状态变化事件。状态变化事件只是事件总线上的一种事件类型,但还有其他类型的事件,例如用于各种集成之间协调的内置事件。
状态变化事件与事件实体
不要将状态变化事件与事件实体混淆。事件实体是一种特殊类型的实体,它本身会产生事件状态变化,就像所有其他实体一样。
任何状态变化都会在事件总线上作为 state_changed 事件发布,包含实体的先前状态和新状态。
通用字段
所有事件都共享这些基本字段。
此外,所有事件都包含一个 data 字典,其中包含特定于事件的信息。这些信息在下面进行描述。
内置事件(核心)
call_service
当执行服务动作时触发此事件。
component_loaded
当新集成被加载并初始化时触发此事件。
请注意,虽然 Home Assistant 启动时会为每个加载的集成触发此事件,但 Home Assistant 的自动化引擎是最后启动的。因此,此事件不能用于在启动期间运行自动化,因为它会错过这些事件。
core_config_updated
当核心配置更新时触发此事件,例如位置发生更改时。
它不包含额外数据。
data_entry_flow_progressed
当数据录入流程发生变化时触发此事件,前端使用它来重新加载流程状态。
homeassistant_start、homeassistant_started
这些事件在 Home Assistant 启动期间按以下顺序触发:
homeassistant_starthomeassistant_started
这些事件不包含额外数据。
如果您想在 Home Assistant 启动事件上触发自动化,我们建议使用特殊的 Home Assistant 触发器,而不是监听这些事件。
homeassistant_stop、homeassistant_final_write、homeassistant_close
这些事件在 Home Assistant 关闭期间按以下顺序触发:
homeassistant_stophomeassistant_final_writehomeassistant_close
这些事件不包含额外数据。
请注意,homeassistant_final_write 和 homeassistant_close 不能与自动化一起使用,因为当它们被触发时,自动化引擎已经停止了。
如果您想在 Home Assistant 停止事件上触发自动化,我们建议使用特殊的 Home Assistant 触发器,而不是监听这些事件。
logbook_entry
service_registered
当在 Home Assistant 中注册新的服务动作时触发此事件。
service_removed
当从 Home Assistant 中移除服务动作时触发此事件。
state_changed
当状态发生变化时触发此事件。它包含实体标识符以及实体的 new_state 和 old_state,它们都是状态对象。
themes_updated
当主题被设置或重新加载后触发此事件。它不包含额外数据。
user_added
当添加用户时触发此事件。
user_removed
当移除用户时触发此事件。
内置事件(默认集成)
automation_reloaded
集成:automation
当自动化被重新加载并可能发生变化时触发此事件。
此事件不包含额外数据。
automation_triggered
集成:automation
当自动化被触发时触发此事件。
scene_reloaded
当场景被重新加载并可能发生变化时触发此事件。
此事件不包含额外数据。
script_started
集成:script
当脚本运行时触发此事件。脚本可以由用户调用或由自动化触发。由此产生的变化可以被追踪,因为所有相关事件将与此事件共享相同的上下文。

