Clean up left-behind dispatcher handlers when removing RainMachine (#18488)

* Clean up left-behind dispatcher handlers when removing RainMachine

* Member comments
This commit is contained in:
Aaron Bach 2018-11-17 02:42:50 -07:00 committed by Martin Hjelmare
parent 6b2f50b29e
commit e73b9b9b8f
4 changed files with 16 additions and 26 deletions

View file

@ -186,13 +186,8 @@ class RainMachineProgram(RainMachineSwitch):
async def async_added_to_hass(self):
"""Register callbacks."""
self._async_unsub_dispatcher_connect = async_dispatcher_connect(
self.hass, PROGRAM_UPDATE_TOPIC, self._program_updated)
async def async_will_remove_from_hass(self):
"""Disconnect dispatcher listener when removed."""
if self._async_unsub_dispatcher_connect:
self._async_unsub_dispatcher_connect()
self._dispatcher_handlers.append(async_dispatcher_connect(
self.hass, PROGRAM_UPDATE_TOPIC, self._program_updated))
async def async_turn_off(self, **kwargs) -> None:
"""Turn the program off."""
@ -256,10 +251,10 @@ class RainMachineZone(RainMachineSwitch):
async def async_added_to_hass(self):
"""Register callbacks."""
async_dispatcher_connect(
self.hass, PROGRAM_UPDATE_TOPIC, self._program_updated)
async_dispatcher_connect(
self.hass, ZONE_UPDATE_TOPIC, self._program_updated)
self._dispatcher_handlers.append(async_dispatcher_connect(
self.hass, PROGRAM_UPDATE_TOPIC, self._program_updated))
self._dispatcher_handlers.append(async_dispatcher_connect(
self.hass, ZONE_UPDATE_TOPIC, self._program_updated))
async def async_turn_off(self, **kwargs) -> None:
"""Turn the zone off."""