diff --git a/homeassistant/components/vallox/__init__.py b/homeassistant/components/vallox/__init__.py index 6f88afa66cf..031c47a1233 100644 --- a/homeassistant/components/vallox/__init__.py +++ b/homeassistant/components/vallox/__init__.py @@ -1,6 +1,5 @@ """Support for Vallox ventilation units.""" -from datetime import timedelta import ipaddress import logging @@ -15,19 +14,21 @@ from homeassistant.helpers.discovery import async_load_platform from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.event import async_track_time_interval +from .const import ( + DEFAULT_FAN_SPEED_AWAY, + DEFAULT_FAN_SPEED_BOOST, + DEFAULT_FAN_SPEED_HOME, + DEFAULT_NAME, + DOMAIN, + METRIC_KEY_PROFILE_FAN_SPEED_AWAY, + METRIC_KEY_PROFILE_FAN_SPEED_BOOST, + METRIC_KEY_PROFILE_FAN_SPEED_HOME, + SIGNAL_VALLOX_STATE_UPDATE, + STATE_PROXY_SCAN_INTERVAL, +) + _LOGGER = logging.getLogger(__name__) -DOMAIN = "vallox" -DEFAULT_NAME = "Vallox" -SIGNAL_VALLOX_STATE_UPDATE = "vallox_state_update" -SCAN_INTERVAL = timedelta(seconds=60) - -# Various metric keys that are reused between profiles. -METRIC_KEY_MODE = "A_CYC_MODE" -METRIC_KEY_PROFILE_FAN_SPEED_HOME = "A_CYC_HOME_SPEED_SETTING" -METRIC_KEY_PROFILE_FAN_SPEED_AWAY = "A_CYC_AWAY_SPEED_SETTING" -METRIC_KEY_PROFILE_FAN_SPEED_BOOST = "A_CYC_BOOST_SPEED_SETTING" - CONFIG_SCHEMA = vol.Schema( { DOMAIN: vol.Schema( @@ -93,10 +94,6 @@ SERVICE_TO_METHOD = { }, } -DEFAULT_FAN_SPEED_HOME = 50 -DEFAULT_FAN_SPEED_AWAY = 25 -DEFAULT_FAN_SPEED_BOOST = 65 - async def async_setup(hass, config): """Set up the client and boot the platforms.""" @@ -126,7 +123,7 @@ async def async_setup(hass, config): hass.async_create_task(async_load_platform(hass, "sensor", DOMAIN, {}, config)) hass.async_create_task(async_load_platform(hass, "fan", DOMAIN, {}, config)) - async_track_time_interval(hass, state_proxy.async_update, SCAN_INTERVAL) + async_track_time_interval(hass, state_proxy.async_update, STATE_PROXY_SCAN_INTERVAL) return True @@ -218,7 +215,7 @@ class ValloxServiceHandler: async def async_set_profile_fan_speed_away( self, fan_speed: int = DEFAULT_FAN_SPEED_AWAY ) -> bool: - """Set the fan speed in percent for the Home profile.""" + """Set the fan speed in percent for the Away profile.""" _LOGGER.debug("Setting Away fan speed to: %d%%", fan_speed) try: diff --git a/homeassistant/components/vallox/const.py b/homeassistant/components/vallox/const.py new file mode 100644 index 00000000000..038e46043da --- /dev/null +++ b/homeassistant/components/vallox/const.py @@ -0,0 +1,22 @@ +"""Constants for the Vallox integration.""" + +from datetime import timedelta + +DOMAIN = "vallox" +DEFAULT_NAME = "Vallox" + +SIGNAL_VALLOX_STATE_UPDATE = "vallox_state_update" +STATE_PROXY_SCAN_INTERVAL = timedelta(seconds=60) + +# Common metric keys and (default) values. +METRIC_KEY_MODE = "A_CYC_MODE" +METRIC_KEY_PROFILE_FAN_SPEED_HOME = "A_CYC_HOME_SPEED_SETTING" +METRIC_KEY_PROFILE_FAN_SPEED_AWAY = "A_CYC_AWAY_SPEED_SETTING" +METRIC_KEY_PROFILE_FAN_SPEED_BOOST = "A_CYC_BOOST_SPEED_SETTING" + +MODE_ON = 0 +MODE_OFF = 5 + +DEFAULT_FAN_SPEED_HOME = 50 +DEFAULT_FAN_SPEED_AWAY = 25 +DEFAULT_FAN_SPEED_BOOST = 65 diff --git a/homeassistant/components/vallox/fan.py b/homeassistant/components/vallox/fan.py index e167791e702..0c887daaef5 100644 --- a/homeassistant/components/vallox/fan.py +++ b/homeassistant/components/vallox/fan.py @@ -6,12 +6,14 @@ from homeassistant.components.fan import FanEntity from homeassistant.core import callback from homeassistant.helpers.dispatcher import async_dispatcher_connect -from . import ( +from .const import ( DOMAIN, METRIC_KEY_MODE, METRIC_KEY_PROFILE_FAN_SPEED_AWAY, METRIC_KEY_PROFILE_FAN_SPEED_BOOST, METRIC_KEY_PROFILE_FAN_SPEED_HOME, + MODE_OFF, + MODE_ON, SIGNAL_VALLOX_STATE_UPDATE, ) @@ -109,7 +111,7 @@ class ValloxFan(FanEntity): try: # Fetch if the whole device is in regular operation state. mode = self._state_proxy.fetch_metric(METRIC_KEY_MODE) - if mode == 0: + if mode == MODE_ON: self._state = True else: self._state = False @@ -161,7 +163,7 @@ class ValloxFan(FanEntity): if self._state is False: try: - await self._client.set_values({METRIC_KEY_MODE: 0}) + await self._client.set_values({METRIC_KEY_MODE: MODE_ON}) # This state change affects other entities like sensors. Force # an immediate update that can be observed by all parties @@ -178,7 +180,7 @@ class ValloxFan(FanEntity): """Turn the device off.""" if self._state is True: try: - await self._client.set_values({METRIC_KEY_MODE: 5}) + await self._client.set_values({METRIC_KEY_MODE: MODE_OFF}) # Same as for turn_on method. await self._state_proxy.async_update(None) diff --git a/homeassistant/components/vallox/sensor.py b/homeassistant/components/vallox/sensor.py index 4e4dc6cdddf..99365762977 100644 --- a/homeassistant/components/vallox/sensor.py +++ b/homeassistant/components/vallox/sensor.py @@ -22,7 +22,8 @@ from homeassistant.const import ( from homeassistant.core import callback from homeassistant.helpers.dispatcher import async_dispatcher_connect -from . import DOMAIN, METRIC_KEY_MODE, SIGNAL_VALLOX_STATE_UPDATE, ValloxStateProxy +from . import ValloxStateProxy +from .const import DOMAIN, METRIC_KEY_MODE, MODE_ON, SIGNAL_VALLOX_STATE_UPDATE _LOGGER = logging.getLogger(__name__) @@ -101,7 +102,7 @@ class ValloxFanSpeedSensor(ValloxSensor): """Fetch state from the ventilation unit.""" try: # If device is in regular operation, continue. - if self._state_proxy.fetch_metric(METRIC_KEY_MODE) == 0: + if self._state_proxy.fetch_metric(METRIC_KEY_MODE) == MODE_ON: await super().async_update() else: # Report zero percent otherwise.