mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Unsubscribe ozw listeners (#38787)
This commit is contained in:
parent
e9b50706a9
commit
7949357180
@ -193,13 +193,16 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry):
|
||||
]
|
||||
|
||||
# Listen to events for node and value changes
|
||||
options.listen(EVENT_NODE_ADDED, async_node_added)
|
||||
options.listen(EVENT_NODE_CHANGED, async_node_changed)
|
||||
options.listen(EVENT_NODE_REMOVED, async_node_removed)
|
||||
options.listen(EVENT_VALUE_ADDED, async_value_added)
|
||||
options.listen(EVENT_VALUE_CHANGED, async_value_changed)
|
||||
options.listen(EVENT_VALUE_REMOVED, async_value_removed)
|
||||
options.listen(EVENT_INSTANCE_EVENT, async_instance_event)
|
||||
for event, event_callback in (
|
||||
(EVENT_NODE_ADDED, async_node_added),
|
||||
(EVENT_NODE_CHANGED, async_node_changed),
|
||||
(EVENT_NODE_REMOVED, async_node_removed),
|
||||
(EVENT_VALUE_ADDED, async_value_added),
|
||||
(EVENT_VALUE_CHANGED, async_value_changed),
|
||||
(EVENT_VALUE_REMOVED, async_value_removed),
|
||||
(EVENT_INSTANCE_EVENT, async_instance_event),
|
||||
):
|
||||
ozw_data[DATA_UNSUBSCRIBE].append(options.listen(event, event_callback))
|
||||
|
||||
# Register Services
|
||||
services = ZWaveServices(hass, manager)
|
||||
|
@ -162,10 +162,14 @@ class ZWaveDeviceEntity(Entity):
|
||||
|
||||
async def async_added_to_hass(self):
|
||||
"""Call when entity is added."""
|
||||
# add dispatcher and OZW listeners callbacks,
|
||||
self.options.listen(EVENT_VALUE_CHANGED, self._value_changed)
|
||||
self.options.listen(EVENT_INSTANCE_STATUS_CHANGED, self._instance_updated)
|
||||
# add to on_remove so they will be cleaned up on entity removal
|
||||
# Add dispatcher and OZW listeners callbacks.
|
||||
# Add to on_remove so they will be cleaned up on entity removal.
|
||||
self.async_on_remove(
|
||||
self.options.listen(EVENT_VALUE_CHANGED, self._value_changed)
|
||||
)
|
||||
self.async_on_remove(
|
||||
self.options.listen(EVENT_INSTANCE_STATUS_CHANGED, self._instance_updated)
|
||||
)
|
||||
self.async_on_remove(
|
||||
async_dispatcher_connect(
|
||||
self.hass, const.SIGNAL_DELETE_ENTITY, self._delete_callback
|
||||
@ -266,14 +270,6 @@ class ZWaveDeviceEntity(Entity):
|
||||
if values_id == self.values.values_id:
|
||||
await self.async_remove()
|
||||
|
||||
async def async_will_remove_from_hass(self) -> None:
|
||||
"""Call when entity will be removed from hass."""
|
||||
# cleanup OZW listeners
|
||||
self.options.listeners[EVENT_VALUE_CHANGED].remove(self._value_changed)
|
||||
self.options.listeners[EVENT_INSTANCE_STATUS_CHANGED].remove(
|
||||
self._instance_updated
|
||||
)
|
||||
|
||||
|
||||
def create_device_name(node: OZWNode):
|
||||
"""Generate sensible (short) default device name from a OZWNode."""
|
||||
|
Loading…
x
Reference in New Issue
Block a user