diff --git a/homeassistant/components/template/fan.py b/homeassistant/components/template/fan.py index 18a7d8262e0..51dce0f8d56 100644 --- a/homeassistant/components/template/fan.py +++ b/homeassistant/components/template/fan.py @@ -523,7 +523,6 @@ class TemplateFan(TemplateEntity, FanEntity): speed = str(speed) if speed in self._speed_list: - self._state = STATE_OFF if speed == SPEED_OFF else STATE_ON self._speed = speed self._percentage = self.speed_to_percentage(speed) self._preset_mode = speed if speed in self.preset_modes else None @@ -552,7 +551,6 @@ class TemplateFan(TemplateEntity, FanEntity): return if 0 <= percentage <= 100: - self._state = STATE_OFF if percentage == 0 else STATE_ON self._percentage = percentage if self._speed_list: self._speed = self.percentage_to_speed(percentage) @@ -569,7 +567,6 @@ class TemplateFan(TemplateEntity, FanEntity): preset_mode = str(preset_mode) if preset_mode in self.preset_modes: - self._state = STATE_ON self._speed = preset_mode self._percentage = None self._preset_mode = preset_mode diff --git a/tests/components/template/test_fan.py b/tests/components/template/test_fan.py index 2b9059017c6..34dccd7d172 100644 --- a/tests/components/template/test_fan.py +++ b/tests/components/template/test_fan.py @@ -246,6 +246,10 @@ async def test_templates_with_entities(hass, calls): await hass.async_block_till_done() _verify(hass, STATE_ON, None, 0, True, DIRECTION_FORWARD, None) + hass.states.async_set(_STATE_INPUT_BOOLEAN, False) + await hass.async_block_till_done() + _verify(hass, STATE_OFF, None, 0, True, DIRECTION_FORWARD, None) + async def test_templates_with_entities_and_invalid_percentage(hass, calls): """Test templates with values from other entities.""" @@ -274,7 +278,7 @@ async def test_templates_with_entities_and_invalid_percentage(hass, calls): await hass.async_start() await hass.async_block_till_done() - _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None) + _verify(hass, STATE_ON, SPEED_OFF, 0, None, None, None) hass.states.async_set("sensor.percentage", "33") await hass.async_block_till_done() @@ -299,7 +303,7 @@ async def test_templates_with_entities_and_invalid_percentage(hass, calls): hass.states.async_set("sensor.percentage", "0") await hass.async_block_till_done() - _verify(hass, STATE_OFF, SPEED_OFF, 0, None, None, None) + _verify(hass, STATE_ON, SPEED_OFF, 0, None, None, None) async def test_templates_with_entities_and_preset_modes(hass, calls):