触发事件
一些集成代表具有事件的设备或服务,例如检测到运动或按下瞬时按钮时。集成可以通过在Home Assistant中将这些事件作为事件触发,使其对用户可用。
你的集成应该触发<domain>_event类型的事件。例如,ZHA集成触发zha_event事件。
如果事件与特定设备/服务相关,则应正确归因。通过向事件数据添加device_id属性来实现,该属性包含设备注册表中的设备标识符。
event_data = {"device_id": "my-device-id", "type": "motion_detected"}
hass.bus.async_fire("mydomain_event", event_data)
如果设备或服务仅触发事件,则需要在设备注册表中手动注册它。
使事件对用户可访问
设备触发器可以根据有效负载附加到特定事件上,并将使事件对用户可访问。通过设备触发器,用户将能够查看设备的所有可用事件,并在其自动化中使用它。
注意事项
与事件相关的代码不应成为集成实体逻辑的一部分。你希望在__init__.py中的async_setup_entry内部启用将集成事件转换为Home Assistant事件的逻辑。
实体状态不应代表事件。例如,你不希望有一个二进制传感器在事件发生时开启30秒。
1353

被折叠的 条评论
为什么被折叠?



