Tweak MQTT availability (#37719)

This commit is contained in:
Erik Montnemery 2020-07-10 18:39:18 +02:00 committed by GitHub
parent 67b18aef5b
commit 383db60dff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1045,11 +1045,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."""
@ -1116,7 +1119,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