Merge pull request #19019 from emontnemery/fix_mqtt_availability

Fix entity unavailable after reconfiguring MQTT availability
This commit is contained in:
emontnemery 2018-12-05 22:14:37 +01:00 committed by GitHub
commit 06285d1bf3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -828,10 +828,10 @@ class MqttAvailability(Entity):
payload_not_available: Optional[str]) -> None:
"""Initialize the availability mixin."""
self._availability_sub_state = None
self._available = False # type: bool
self._availability_topic = availability_topic
self._availability_qos = qos
self._available = self._availability_topic is None # type: bool
self._payload_available = payload_available
self._payload_not_available = payload_not_available
@ -852,7 +852,6 @@ class MqttAvailability(Entity):
"""(Re)Setup."""
self._availability_topic = config.get(CONF_AVAILABILITY_TOPIC)
self._availability_qos = config.get(CONF_QOS)
self._available = self._availability_topic is None # type: bool
self._payload_available = config.get(CONF_PAYLOAD_AVAILABLE)
self._payload_not_available = config.get(CONF_PAYLOAD_NOT_AVAILABLE)
@ -887,7 +886,7 @@ class MqttAvailability(Entity):
@property
def available(self) -> bool:
"""Return if the device is available."""
return self._available
return self._availability_topic is None or self._available
class MqttDiscoveryUpdate(Entity):