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