实体事件以正确的生命周期方法订阅
推理
实体可能需要订阅事件,例如。从集成库中获取,并在新事件出现时更新状态。
为了执行正确的此操作,实体应在实体方法 async_added_to_hass 中订阅并注册回调更新。
在实体平台帮助程序注册实体之后调用此实体方法,并且该实体现在将具有调用的所有接口,例如 self.hass 和 self.async_write_ha_state。
注册更新回调之前的这个阶段将导致错误,例如回调。尝试访问 self.hass 或写入状态更新。
为了避免内存喷射,实体应该取消订阅事件,即。在实体方法 async_will_remove_from_hass 中取消注册更新回调。
实施示例
在下面的示例中,self.client.events.subscribe 返回一个函数,调用该函数时,会取消实体对事件的订阅。
因此我们在 async_added_to_hass 中订阅事件并在 async_will_remove_from_hass 中取消订阅。
ZZ保护0ZZ
Info
可以使用生命周期函数来简化上面的示例。 这节省了在实体中存储回调函数的需要。
例外情况
这条规则没有例外。

