From 21badfc40f1af0e03e82598af6b7a44e81324ab4 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 27 Apr 2022 09:00:00 +0200 Subject: [PATCH] Use shorthand attributes in template vacuum (#70847) --- homeassistant/components/template/vacuum.py | 64 +++++++-------------- 1 file changed, 22 insertions(+), 42 deletions(-) diff --git a/homeassistant/components/template/vacuum.py b/homeassistant/components/template/vacuum.py index 9ded3c5d675..2a004eabc9a 100644 --- a/homeassistant/components/template/vacuum.py +++ b/homeassistant/components/template/vacuum.py @@ -145,83 +145,63 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): self._template = config.get(CONF_VALUE_TEMPLATE) self._battery_level_template = config.get(CONF_BATTERY_LEVEL_TEMPLATE) self._fan_speed_template = config.get(CONF_FAN_SPEED_TEMPLATE) - self._supported_features = VacuumEntityFeature.START + self._attr_supported_features = VacuumEntityFeature.START self._start_script = Script(hass, config[SERVICE_START], friendly_name, DOMAIN) self._pause_script = None if pause_action := config.get(SERVICE_PAUSE): self._pause_script = Script(hass, pause_action, friendly_name, DOMAIN) - self._supported_features |= VacuumEntityFeature.PAUSE + self._attr_supported_features |= VacuumEntityFeature.PAUSE self._stop_script = None if stop_action := config.get(SERVICE_STOP): self._stop_script = Script(hass, stop_action, friendly_name, DOMAIN) - self._supported_features |= VacuumEntityFeature.STOP + self._attr_supported_features |= VacuumEntityFeature.STOP self._return_to_base_script = None if return_to_base_action := config.get(SERVICE_RETURN_TO_BASE): self._return_to_base_script = Script( hass, return_to_base_action, friendly_name, DOMAIN ) - self._supported_features |= VacuumEntityFeature.RETURN_HOME + self._attr_supported_features |= VacuumEntityFeature.RETURN_HOME self._clean_spot_script = None if clean_spot_action := config.get(SERVICE_CLEAN_SPOT): self._clean_spot_script = Script( hass, clean_spot_action, friendly_name, DOMAIN ) - self._supported_features |= VacuumEntityFeature.CLEAN_SPOT + self._attr_supported_features |= VacuumEntityFeature.CLEAN_SPOT self._locate_script = None if locate_action := config.get(SERVICE_LOCATE): self._locate_script = Script(hass, locate_action, friendly_name, DOMAIN) - self._supported_features |= VacuumEntityFeature.LOCATE + self._attr_supported_features |= VacuumEntityFeature.LOCATE self._set_fan_speed_script = None if set_fan_speed_action := config.get(SERVICE_SET_FAN_SPEED): self._set_fan_speed_script = Script( hass, set_fan_speed_action, friendly_name, DOMAIN ) - self._supported_features |= VacuumEntityFeature.FAN_SPEED + self._attr_supported_features |= VacuumEntityFeature.FAN_SPEED self._state = None self._battery_level = None - self._fan_speed = None + self._attr_fan_speed = None if self._template: - self._supported_features |= VacuumEntityFeature.STATE + self._attr_supported_features |= VacuumEntityFeature.STATE if self._battery_level_template: - self._supported_features |= VacuumEntityFeature.BATTERY + self._attr_supported_features |= VacuumEntityFeature.BATTERY # List of valid fan speeds - self._fan_speed_list = config[CONF_FAN_SPEED_LIST] - - @property - def supported_features(self) -> int: - """Flag supported features.""" - return self._supported_features + self._attr_fan_speed_list = config[CONF_FAN_SPEED_LIST] @property def state(self): """Return the status of the vacuum cleaner.""" return self._state - @property - def battery_level(self): - """Return the battery level of the vacuum cleaner.""" - return self._battery_level - - @property - def fan_speed(self): - """Return the fan speed of the vacuum cleaner.""" - return self._fan_speed - - @property - def fan_speed_list(self) -> list: - """Get the list of available fan speeds.""" - return self._fan_speed_list - async def async_start(self): """Start or resume the cleaning task.""" await self._start_script.async_run(context=self._context) @@ -266,8 +246,8 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): if self._set_fan_speed_script is None: return - if fan_speed in self._fan_speed_list: - self._fan_speed = fan_speed + if fan_speed in self._attr_fan_speed_list: + self._attr_fan_speed = fan_speed await self._set_fan_speed_script.async_run( {ATTR_FAN_SPEED: fan_speed}, context=self._context ) @@ -275,7 +255,7 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): _LOGGER.error( "Received invalid fan speed: %s. Expected: %s", fan_speed, - self._fan_speed_list, + self._attr_fan_speed_list, ) async def async_added_to_hass(self): @@ -334,27 +314,27 @@ class TemplateVacuum(TemplateEntity, StateVacuumEntity): _LOGGER.error( "Received invalid battery level: %s. Expected: 0-100", battery_level ) - self._battery_level = None + self._attr_battery_level = None return - self._battery_level = battery_level_int + self._attr_battery_level = battery_level_int @callback def _update_fan_speed(self, fan_speed): if isinstance(fan_speed, TemplateError): # This is legacy behavior - self._fan_speed = None + self._attr_fan_speed = None self._state = None return - if fan_speed in self._fan_speed_list: - self._fan_speed = fan_speed + if fan_speed in self._attr_fan_speed_list: + self._attr_fan_speed = fan_speed elif fan_speed == STATE_UNKNOWN: - self._fan_speed = None + self._attr_fan_speed = None else: _LOGGER.error( "Received invalid fan speed: %s. Expected: %s", fan_speed, - self._fan_speed_list, + self._attr_fan_speed_list, ) - self._fan_speed = None + self._attr_fan_speed = None