mirror of
https://github.com/home-assistant/core.git
synced 2025-07-15 17:27:10 +00:00
Use climate enums in balboa (#70626)
This commit is contained in:
parent
df2a4223da
commit
7fb0691a8b
@ -3,17 +3,15 @@ from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
|
||||
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
|
||||
from homeassistant.components.climate import ClimateEntity
|
||||
from homeassistant.components.climate.const import (
|
||||
CURRENT_HVAC_HEAT,
|
||||
CURRENT_HVAC_IDLE,
|
||||
FAN_HIGH,
|
||||
FAN_LOW,
|
||||
FAN_MEDIUM,
|
||||
FAN_OFF,
|
||||
HVAC_MODE_AUTO,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
ClimateEntityFeature,
|
||||
HVACAction,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import (
|
||||
@ -67,9 +65,9 @@ class BalboaSpaClimate(BalboaEntity, ClimateEntity):
|
||||
value: key for key, value in self._balboa_to_ha_blower_map.items()
|
||||
}
|
||||
self._balboa_to_ha_heatmode_map = {
|
||||
self._client.HEATMODE_READY: HVAC_MODE_HEAT,
|
||||
self._client.HEATMODE_RNR: HVAC_MODE_AUTO,
|
||||
self._client.HEATMODE_REST: HVAC_MODE_OFF,
|
||||
self._client.HEATMODE_READY: HVACMode.HEAT,
|
||||
self._client.HEATMODE_RNR: HVACMode.AUTO,
|
||||
self._client.HEATMODE_REST: HVACMode.OFF,
|
||||
}
|
||||
self._ha_heatmode_to_balboa_map = {
|
||||
value: key for key, value in self._balboa_to_ha_heatmode_map.items()
|
||||
@ -99,8 +97,8 @@ class BalboaSpaClimate(BalboaEntity, ClimateEntity):
|
||||
def hvac_action(self) -> str:
|
||||
"""Return the current operation mode."""
|
||||
if self._client.get_heatstate() >= self._client.ON:
|
||||
return CURRENT_HVAC_HEAT
|
||||
return CURRENT_HVAC_IDLE
|
||||
return HVACAction.HEATING
|
||||
return HVACAction.IDLE
|
||||
|
||||
@property
|
||||
def fan_mode(self) -> str:
|
||||
|
@ -1,4 +1,6 @@
|
||||
"""Constants for the Balboa Spa Client integration."""
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
|
||||
from homeassistant.components.climate.const import (
|
||||
@ -6,9 +8,7 @@ from homeassistant.components.climate.const import (
|
||||
FAN_LOW,
|
||||
FAN_MEDIUM,
|
||||
FAN_OFF,
|
||||
HVAC_MODE_AUTO,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.const import Platform
|
||||
|
||||
@ -17,7 +17,7 @@ _LOGGER = logging.getLogger(__name__)
|
||||
DOMAIN = "balboa"
|
||||
|
||||
CLIMATE_SUPPORTED_FANSTATES = [FAN_OFF, FAN_LOW, FAN_MEDIUM, FAN_HIGH]
|
||||
CLIMATE_SUPPORTED_MODES = [HVAC_MODE_AUTO, HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
||||
CLIMATE_SUPPORTED_MODES = [HVACMode.AUTO, HVACMode.HEAT, HVACMode.OFF]
|
||||
CONF_SYNC_TIME = "sync_time"
|
||||
DEFAULT_SYNC_TIME = False
|
||||
PLATFORMS = [Platform.BINARY_SENSOR, Platform.CLIMATE]
|
||||
|
@ -13,18 +13,13 @@ from homeassistant.components.climate.const import (
|
||||
ATTR_MIN_TEMP,
|
||||
ATTR_PRESET_MODE,
|
||||
ATTR_PRESET_MODES,
|
||||
CURRENT_HVAC_HEAT,
|
||||
CURRENT_HVAC_IDLE,
|
||||
FAN_HIGH,
|
||||
FAN_LOW,
|
||||
FAN_MEDIUM,
|
||||
FAN_OFF,
|
||||
HVAC_MODE_AUTO,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
SUPPORT_FAN_MODE,
|
||||
SUPPORT_PRESET_MODE,
|
||||
SUPPORT_TARGET_TEMPERATURE,
|
||||
ClimateEntityFeature,
|
||||
HVACAction,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.const import ATTR_TEMPERATURE, TEMP_FAHRENHEIT
|
||||
from homeassistant.core import HomeAssistant
|
||||
@ -41,9 +36,9 @@ FAN_SETTINGS = [
|
||||
]
|
||||
|
||||
HVAC_SETTINGS = [
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
HVAC_MODE_AUTO,
|
||||
HVACMode.HEAT,
|
||||
HVACMode.OFF,
|
||||
HVACMode.AUTO,
|
||||
]
|
||||
|
||||
ENTITY_CLIMATE = "climate.fakespa_climate"
|
||||
@ -58,13 +53,13 @@ async def test_spa_defaults(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
assert state
|
||||
assert (
|
||||
state.attributes["supported_features"]
|
||||
== SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE
|
||||
== ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
|
||||
)
|
||||
assert state.state == HVAC_MODE_HEAT
|
||||
assert state.state == HVACMode.HEAT
|
||||
assert state.attributes[ATTR_MIN_TEMP] == 10.0
|
||||
assert state.attributes[ATTR_MAX_TEMP] == 40.0
|
||||
assert state.attributes[ATTR_PRESET_MODE] == "Ready"
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == CURRENT_HVAC_IDLE
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == HVACAction.IDLE
|
||||
|
||||
|
||||
async def test_spa_defaults_fake_tscale(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
@ -78,13 +73,13 @@ async def test_spa_defaults_fake_tscale(hass: HomeAssistant, client: MagicMock)
|
||||
assert state
|
||||
assert (
|
||||
state.attributes["supported_features"]
|
||||
== SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE
|
||||
== ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
|
||||
)
|
||||
assert state.state == HVAC_MODE_HEAT
|
||||
assert state.state == HVACMode.HEAT
|
||||
assert state.attributes[ATTR_MIN_TEMP] == 10.0
|
||||
assert state.attributes[ATTR_MAX_TEMP] == 40.0
|
||||
assert state.attributes[ATTR_PRESET_MODE] == "Ready"
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == CURRENT_HVAC_IDLE
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == HVACAction.IDLE
|
||||
|
||||
|
||||
async def test_spa_with_blower(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
@ -102,7 +97,9 @@ async def test_spa_with_blower(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
assert state
|
||||
assert (
|
||||
state.attributes["supported_features"]
|
||||
== SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE | SUPPORT_FAN_MODE
|
||||
== ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
| ClimateEntityFeature.PRESET_MODE
|
||||
| ClimateEntityFeature.FAN_MODE
|
||||
)
|
||||
|
||||
for fan_state in range(4):
|
||||
@ -151,7 +148,7 @@ async def test_spa_hvac_modes(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
state = await _patch_spa_heatmode(hass, config_entry, heat_mode, client)
|
||||
assert state
|
||||
modes = state.attributes.get(ATTR_HVAC_MODES)
|
||||
assert [HVAC_MODE_AUTO, HVAC_MODE_HEAT, HVAC_MODE_OFF] == modes
|
||||
assert [HVACMode.AUTO, HVACMode.HEAT, HVACMode.OFF] == modes
|
||||
assert state.state == HVAC_SETTINGS[heat_mode]
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
@ -166,10 +163,10 @@ async def test_spa_hvac_action(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
# try out the different heat states
|
||||
state = await _patch_spa_heatstate(hass, config_entry, 1, client)
|
||||
assert state
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == CURRENT_HVAC_HEAT
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == HVACAction.HEATING
|
||||
|
||||
state = await _patch_spa_heatstate(hass, config_entry, 0, client)
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == CURRENT_HVAC_IDLE
|
||||
assert state.attributes[ATTR_HVAC_ACTION] == HVACAction.IDLE
|
||||
|
||||
|
||||
async def test_spa_preset_modes(hass: HomeAssistant, client: MagicMock) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user