Use climate enums in fritzbox (#70650)
* Use climate enums in fritzbox * Adjust tests * Update homeassistant/components/fritzbox/climate.py Co-authored-by: Erik Montnemery <erik@montnemery.com> Co-authored-by: Erik Montnemery <erik@montnemery.com>
This commit is contained in:
parent
0fd2a7dc83
commit
d52234a57a
2 changed files with 15 additions and 16 deletions
|
@ -3,13 +3,13 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
|
from homeassistant.components.climate import ClimateEntity
|
||||||
from homeassistant.components.climate.const import (
|
from homeassistant.components.climate.const import (
|
||||||
ATTR_HVAC_MODE,
|
ATTR_HVAC_MODE,
|
||||||
HVAC_MODE_HEAT,
|
|
||||||
HVAC_MODE_OFF,
|
|
||||||
PRESET_COMFORT,
|
PRESET_COMFORT,
|
||||||
PRESET_ECO,
|
PRESET_ECO,
|
||||||
|
ClimateEntityFeature,
|
||||||
|
HVACMode,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
|
@ -32,7 +32,7 @@ from .const import (
|
||||||
)
|
)
|
||||||
from .model import ClimateExtraAttributes
|
from .model import ClimateExtraAttributes
|
||||||
|
|
||||||
OPERATION_LIST = [HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
OPERATION_LIST = [HVACMode.HEAT, HVACMode.OFF]
|
||||||
|
|
||||||
MIN_TEMPERATURE = 8
|
MIN_TEMPERATURE = 8
|
||||||
MAX_TEMPERATURE = 28
|
MAX_TEMPERATURE = 28
|
||||||
|
@ -113,18 +113,18 @@ class FritzboxThermostat(FritzBoxEntity, ClimateEntity):
|
||||||
OFF_REPORT_SET_TEMPERATURE,
|
OFF_REPORT_SET_TEMPERATURE,
|
||||||
OFF_API_TEMPERATURE,
|
OFF_API_TEMPERATURE,
|
||||||
):
|
):
|
||||||
return HVAC_MODE_OFF
|
return HVACMode.OFF
|
||||||
|
|
||||||
return HVAC_MODE_HEAT
|
return HVACMode.HEAT
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def hvac_modes(self) -> list[str]:
|
def hvac_modes(self) -> list[HVACMode]:
|
||||||
"""Return the list of available operation modes."""
|
"""Return the list of available operation modes."""
|
||||||
return OPERATION_LIST
|
return OPERATION_LIST
|
||||||
|
|
||||||
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
|
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
|
||||||
"""Set new operation mode."""
|
"""Set new operation mode."""
|
||||||
if hvac_mode == HVAC_MODE_OFF:
|
if hvac_mode == HVACMode.OFF:
|
||||||
await self.async_set_temperature(temperature=OFF_REPORT_SET_TEMPERATURE)
|
await self.async_set_temperature(temperature=OFF_REPORT_SET_TEMPERATURE)
|
||||||
else:
|
else:
|
||||||
await self.async_set_temperature(
|
await self.async_set_temperature(
|
||||||
|
|
|
@ -13,13 +13,12 @@ from homeassistant.components.climate.const import (
|
||||||
ATTR_PRESET_MODE,
|
ATTR_PRESET_MODE,
|
||||||
ATTR_PRESET_MODES,
|
ATTR_PRESET_MODES,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
HVAC_MODE_HEAT,
|
|
||||||
HVAC_MODE_OFF,
|
|
||||||
PRESET_COMFORT,
|
PRESET_COMFORT,
|
||||||
PRESET_ECO,
|
PRESET_ECO,
|
||||||
SERVICE_SET_HVAC_MODE,
|
SERVICE_SET_HVAC_MODE,
|
||||||
SERVICE_SET_PRESET_MODE,
|
SERVICE_SET_PRESET_MODE,
|
||||||
SERVICE_SET_TEMPERATURE,
|
SERVICE_SET_TEMPERATURE,
|
||||||
|
HVACMode,
|
||||||
)
|
)
|
||||||
from homeassistant.components.fritzbox.const import (
|
from homeassistant.components.fritzbox.const import (
|
||||||
ATTR_STATE_BATTERY_LOW,
|
ATTR_STATE_BATTERY_LOW,
|
||||||
|
@ -62,7 +61,7 @@ async def test_setup(hass: HomeAssistant, fritz: Mock):
|
||||||
assert state.attributes[ATTR_BATTERY_LEVEL] == 23
|
assert state.attributes[ATTR_BATTERY_LEVEL] == 23
|
||||||
assert state.attributes[ATTR_CURRENT_TEMPERATURE] == 18
|
assert state.attributes[ATTR_CURRENT_TEMPERATURE] == 18
|
||||||
assert state.attributes[ATTR_FRIENDLY_NAME] == CONF_FAKE_NAME
|
assert state.attributes[ATTR_FRIENDLY_NAME] == CONF_FAKE_NAME
|
||||||
assert state.attributes[ATTR_HVAC_MODES] == [HVAC_MODE_HEAT, HVAC_MODE_OFF]
|
assert state.attributes[ATTR_HVAC_MODES] == [HVACMode.HEAT, HVACMode.OFF]
|
||||||
assert state.attributes[ATTR_MAX_TEMP] == 28
|
assert state.attributes[ATTR_MAX_TEMP] == 28
|
||||||
assert state.attributes[ATTR_MIN_TEMP] == 8
|
assert state.attributes[ATTR_MIN_TEMP] == 8
|
||||||
assert state.attributes[ATTR_PRESET_MODE] is None
|
assert state.attributes[ATTR_PRESET_MODE] is None
|
||||||
|
@ -73,7 +72,7 @@ async def test_setup(hass: HomeAssistant, fritz: Mock):
|
||||||
assert state.attributes[ATTR_STATE_WINDOW_OPEN] == "fake_window"
|
assert state.attributes[ATTR_STATE_WINDOW_OPEN] == "fake_window"
|
||||||
assert state.attributes[ATTR_TEMPERATURE] == 19.5
|
assert state.attributes[ATTR_TEMPERATURE] == 19.5
|
||||||
assert ATTR_STATE_CLASS not in state.attributes
|
assert ATTR_STATE_CLASS not in state.attributes
|
||||||
assert state.state == HVAC_MODE_HEAT
|
assert state.state == HVACMode.HEAT
|
||||||
|
|
||||||
state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_battery")
|
state = hass.states.get(f"{SENSOR_DOMAIN}.{CONF_FAKE_NAME}_battery")
|
||||||
assert state
|
assert state
|
||||||
|
@ -261,7 +260,7 @@ async def test_set_temperature_mode_off(hass: HomeAssistant, fritz: Mock):
|
||||||
SERVICE_SET_TEMPERATURE,
|
SERVICE_SET_TEMPERATURE,
|
||||||
{
|
{
|
||||||
ATTR_ENTITY_ID: ENTITY_ID,
|
ATTR_ENTITY_ID: ENTITY_ID,
|
||||||
ATTR_HVAC_MODE: HVAC_MODE_OFF,
|
ATTR_HVAC_MODE: HVACMode.OFF,
|
||||||
ATTR_TEMPERATURE: 123,
|
ATTR_TEMPERATURE: 123,
|
||||||
},
|
},
|
||||||
True,
|
True,
|
||||||
|
@ -281,7 +280,7 @@ async def test_set_temperature_mode_heat(hass: HomeAssistant, fritz: Mock):
|
||||||
SERVICE_SET_TEMPERATURE,
|
SERVICE_SET_TEMPERATURE,
|
||||||
{
|
{
|
||||||
ATTR_ENTITY_ID: ENTITY_ID,
|
ATTR_ENTITY_ID: ENTITY_ID,
|
||||||
ATTR_HVAC_MODE: HVAC_MODE_HEAT,
|
ATTR_HVAC_MODE: HVACMode.HEAT,
|
||||||
ATTR_TEMPERATURE: 123,
|
ATTR_TEMPERATURE: 123,
|
||||||
},
|
},
|
||||||
True,
|
True,
|
||||||
|
@ -299,7 +298,7 @@ async def test_set_hvac_mode_off(hass: HomeAssistant, fritz: Mock):
|
||||||
assert await hass.services.async_call(
|
assert await hass.services.async_call(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_SET_HVAC_MODE,
|
SERVICE_SET_HVAC_MODE,
|
||||||
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_HVAC_MODE: HVAC_MODE_OFF},
|
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_HVAC_MODE: HVACMode.OFF},
|
||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
assert device.set_target_temperature.call_args_list == [call(0)]
|
assert device.set_target_temperature.call_args_list == [call(0)]
|
||||||
|
@ -315,7 +314,7 @@ async def test_set_hvac_mode_heat(hass: HomeAssistant, fritz: Mock):
|
||||||
assert await hass.services.async_call(
|
assert await hass.services.async_call(
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_SET_HVAC_MODE,
|
SERVICE_SET_HVAC_MODE,
|
||||||
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_HVAC_MODE: HVAC_MODE_HEAT},
|
{ATTR_ENTITY_ID: ENTITY_ID, ATTR_HVAC_MODE: HVACMode.HEAT},
|
||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
assert device.set_target_temperature.call_args_list == [call(22)]
|
assert device.set_target_temperature.call_args_list == [call(22)]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue