From 114fbb1278e9391ca32e7c71a68ad77c5d3f8670 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Fri, 10 Jul 2020 18:39:18 +0200 Subject: [PATCH] Tweak MQTT availability (#37719) --- homeassistant/components/mqtt/__init__.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/mqtt/__init__.py b/homeassistant/components/mqtt/__init__.py index b743626ebbb..5742281f89d 100644 --- a/homeassistant/components/mqtt/__init__.py +++ b/homeassistant/components/mqtt/__init__.py @@ -1021,11 +1021,14 @@ class MqttAvailability(Entity): """Subscribe MQTT events.""" await super().async_added_to_hass() await self._availability_subscribe_topics() - async_dispatcher_connect(self.hass, MQTT_CONNECTED, self.async_mqtt_connect) - async_dispatcher_connect(self.hass, MQTT_DISCONNECTED, self.async_mqtt_connect) self.async_on_remove( async_dispatcher_connect(self.hass, MQTT_CONNECTED, self.async_mqtt_connect) ) + self.async_on_remove( + async_dispatcher_connect( + self.hass, MQTT_DISCONNECTED, self.async_mqtt_connect + ) + ) async def availability_discovery_update(self, config: dict): """Handle updated discovery message.""" @@ -1092,7 +1095,7 @@ class MqttAvailability(Entity): @property def available(self) -> bool: """Return if the device is available.""" - if not self.hass.data[DATA_MQTT].connected: + if not self.hass.data[DATA_MQTT].connected and not self.hass.is_stopping: return False return not self._avail_topics or self._available