十二 Home Assistant 事件的处理

触发事件

一些集成代表具有事件的设备或服务,例如检测到运动或按下瞬时按钮时。集成可以通过在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秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值