Fix for exception when checking if fan without speed is on (#39096)

* Fix for exception when checking if fan without speed is on

* Organized imports

* Space
This commit is contained in:
kbickar 2020-08-21 10:20:28 -04:00 committed by GitHub
parent 00b05d764d
commit 2ec546db3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 8 deletions

View file

@ -22,6 +22,8 @@ from homeassistant.const import (
CONF_PAYLOAD_ON,
CONF_STATE,
CONF_UNIQUE_ID,
STATE_OFF,
STATE_ON,
)
from homeassistant.core import callback
import homeassistant.helpers.config_validation as cv
@ -153,7 +155,7 @@ class MqttFan(
def __init__(self, config, config_entry, discovery_data):
"""Initialize the MQTT fan."""
self._unique_id = config.get(CONF_UNIQUE_ID)
self._state = False
self._state = STATE_OFF
self._speed = None
self._oscillation = None
self._supported_features = 0
@ -255,9 +257,9 @@ class MqttFan(
"""Handle new received MQTT message."""
payload = templates[CONF_STATE](msg.payload)
if payload == self._payload["STATE_ON"]:
self._state = True
self._state = STATE_ON
elif payload == self._payload["STATE_OFF"]:
self._state = False
self._state = STATE_OFF
self.async_write_ha_state()
if self._topic[CONF_STATE_TOPIC] is not None:
@ -335,7 +337,7 @@ class MqttFan(
@property
def is_on(self):
"""Return true if device is on."""
return self._state
return self._state == STATE_ON
@property
def name(self) -> str:
@ -377,7 +379,7 @@ class MqttFan(
if speed:
await self.async_set_speed(speed)
if self._optimistic:
self._state = True
self._state = STATE_ON
self.async_write_ha_state()
async def async_turn_off(self, **kwargs) -> None:
@ -393,7 +395,7 @@ class MqttFan(
self._config[CONF_RETAIN],
)
if self._optimistic:
self._state = False
self._state = STATE_OFF
self.async_write_ha_state()
async def async_set_speed(self, speed: str) -> None: