Skip to content

Commit 4ebbabc

Browse files
Unsub dispatcher when removing entity from hass (#33510)
* Unsub dispatcher when removing entity from hass * Update homeassistant/components/plaato/sensor.py Co-Authored-By: Martin Hjelmare <[email protected]> * Update homeassistant/components/volvooncall/__init__.py Co-Authored-By: Martin Hjelmare <[email protected]> Co-authored-by: Martin Hjelmare <[email protected]>
1 parent 314bc07 commit 4ebbabc

File tree

71 files changed

+354
-208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+354
-208
lines changed

homeassistant/components/abode/camera.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ async def async_added_to_hass(self):
4848
)
4949

5050
signal = f"abode_camera_capture_{self.entity_id}"
51-
async_dispatcher_connect(self.hass, signal, self.capture)
51+
self.async_on_remove(async_dispatcher_connect(self.hass, signal, self.capture))
5252

5353
def capture(self):
5454
"""Request a new image capture."""

homeassistant/components/abode/switch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ async def async_added_to_hass(self):
5353
await super().async_added_to_hass()
5454

5555
signal = f"abode_trigger_automation_{self.entity_id}"
56-
async_dispatcher_connect(self.hass, signal, self.trigger)
56+
self.async_on_remove(async_dispatcher_connect(self.hass, signal, self.trigger))
5757

5858
def turn_on(self, **kwargs):
5959
"""Enable the automation."""

homeassistant/components/aftership/sensor.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,8 +145,10 @@ def icon(self):
145145

146146
async def async_added_to_hass(self):
147147
"""Register callbacks."""
148-
self.hass.helpers.dispatcher.async_dispatcher_connect(
149-
UPDATE_TOPIC, self._force_update
148+
self.async_on_remove(
149+
self.hass.helpers.dispatcher.async_dispatcher_connect(
150+
UPDATE_TOPIC, self._force_update
151+
)
150152
)
151153

152154
async def _force_update(self):

homeassistant/components/alarmdecoder/alarm_control_panel.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,10 @@ def __init__(self, auto_bypass, code_arm_required):
9696

9797
async def async_added_to_hass(self):
9898
"""Register callbacks."""
99-
self.hass.helpers.dispatcher.async_dispatcher_connect(
100-
SIGNAL_PANEL_MESSAGE, self._message_callback
99+
self.async_on_remove(
100+
self.hass.helpers.dispatcher.async_dispatcher_connect(
101+
SIGNAL_PANEL_MESSAGE, self._message_callback
102+
)
101103
)
102104

103105
def _message_callback(self, message):

homeassistant/components/alarmdecoder/binary_sensor.py

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,28 @@ def __init__(
7979

8080
async def async_added_to_hass(self):
8181
"""Register callbacks."""
82-
self.hass.helpers.dispatcher.async_dispatcher_connect(
83-
SIGNAL_ZONE_FAULT, self._fault_callback
82+
self.async_on_remove(
83+
self.hass.helpers.dispatcher.async_dispatcher_connect(
84+
SIGNAL_ZONE_FAULT, self._fault_callback
85+
)
8486
)
8587

86-
self.hass.helpers.dispatcher.async_dispatcher_connect(
87-
SIGNAL_ZONE_RESTORE, self._restore_callback
88+
self.async_on_remove(
89+
self.hass.helpers.dispatcher.async_dispatcher_connect(
90+
SIGNAL_ZONE_RESTORE, self._restore_callback
91+
)
8892
)
8993

90-
self.hass.helpers.dispatcher.async_dispatcher_connect(
91-
SIGNAL_RFX_MESSAGE, self._rfx_message_callback
94+
self.async_on_remove(
95+
self.hass.helpers.dispatcher.async_dispatcher_connect(
96+
SIGNAL_RFX_MESSAGE, self._rfx_message_callback
97+
)
9298
)
9399

94-
self.hass.helpers.dispatcher.async_dispatcher_connect(
95-
SIGNAL_REL_MESSAGE, self._rel_message_callback
100+
self.async_on_remove(
101+
self.hass.helpers.dispatcher.async_dispatcher_connect(
102+
SIGNAL_REL_MESSAGE, self._rel_message_callback
103+
)
96104
)
97105

98106
@property

homeassistant/components/alarmdecoder/sensor.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ def __init__(self, hass):
2929

3030
async def async_added_to_hass(self):
3131
"""Register callbacks."""
32-
self.hass.helpers.dispatcher.async_dispatcher_connect(
33-
SIGNAL_PANEL_MESSAGE, self._message_callback
32+
self.async_on_remove(
33+
self.hass.helpers.dispatcher.async_dispatcher_connect(
34+
SIGNAL_PANEL_MESSAGE, self._message_callback
35+
)
3436
)
3537

3638
def _message_callback(self, message):

homeassistant/components/android_ip_webcam/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,9 @@ def async_ipcam_update(host):
309309
return
310310
self.async_schedule_update_ha_state(True)
311311

312-
async_dispatcher_connect(self.hass, SIGNAL_UPDATE_DATA, async_ipcam_update)
312+
self.async_on_remove(
313+
async_dispatcher_connect(self.hass, SIGNAL_UPDATE_DATA, async_ipcam_update)
314+
)
313315

314316
@property
315317
def should_poll(self):

homeassistant/components/aqualogic/sensor.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@ def icon(self):
9999

100100
async def async_added_to_hass(self):
101101
"""Register callbacks."""
102-
self.hass.helpers.dispatcher.async_dispatcher_connect(
103-
UPDATE_TOPIC, self.async_update_callback
102+
self.async_on_remove(
103+
self.hass.helpers.dispatcher.async_dispatcher_connect(
104+
UPDATE_TOPIC, self.async_update_callback
105+
)
104106
)
105107

106108
@callback

homeassistant/components/aqualogic/switch.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ def __init__(self, processor, switch_type):
6464
"aux_6": States.AUX_6,
6565
"aux_7": States.AUX_7,
6666
}[switch_type]
67-
self._unsub_disp = None
6867

6968
@property
7069
def name(self):
@@ -101,11 +100,8 @@ def turn_off(self, **kwargs):
101100

102101
async def async_added_to_hass(self):
103102
"""Register callbacks."""
104-
self._unsub_disp = self.hass.helpers.dispatcher.async_dispatcher_connect(
105-
UPDATE_TOPIC, self.async_write_ha_state
103+
self.async_on_remove(
104+
self.hass.helpers.dispatcher.async_dispatcher_connect(
105+
UPDATE_TOPIC, self.async_write_ha_state
106+
)
106107
)
107-
108-
async def async_will_remove_from_hass(self):
109-
"""When entity will be removed from hass."""
110-
self._unsub_disp()
111-
self._unsub_disp = None

homeassistant/components/arcam_fmj/media_player.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,22 @@ def _stopped(host):
142142
if host == self._state.client.host:
143143
self.async_schedule_update_ha_state(force_refresh=True)
144144

145-
self.hass.helpers.dispatcher.async_dispatcher_connect(SIGNAL_CLIENT_DATA, _data)
145+
self.async_on_remove(
146+
self.hass.helpers.dispatcher.async_dispatcher_connect(
147+
SIGNAL_CLIENT_DATA, _data
148+
)
149+
)
146150

147-
self.hass.helpers.dispatcher.async_dispatcher_connect(
148-
SIGNAL_CLIENT_STARTED, _started
151+
self.async_on_remove(
152+
self.hass.helpers.dispatcher.async_dispatcher_connect(
153+
SIGNAL_CLIENT_STARTED, _started
154+
)
149155
)
150156

151-
self.hass.helpers.dispatcher.async_dispatcher_connect(
152-
SIGNAL_CLIENT_STOPPED, _stopped
157+
self.async_on_remove(
158+
self.hass.helpers.dispatcher.async_dispatcher_connect(
159+
SIGNAL_CLIENT_STOPPED, _stopped
160+
)
153161
)
154162

155163
async def async_update(self):

0 commit comments

Comments
 (0)