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:
epenet 2022-04-25 13:33:51 +02:00 committed by GitHub
parent 0fd2a7dc83
commit d52234a57a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 16 deletions

View file

@ -3,13 +3,13 @@ from __future__ import annotations
from typing import Any
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import (
ATTR_HVAC_MODE,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
PRESET_COMFORT,
PRESET_ECO,
ClimateEntityFeature,
HVACMode,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
@ -32,7 +32,7 @@ from .const import (
)
from .model import ClimateExtraAttributes
OPERATION_LIST = [HVAC_MODE_HEAT, HVAC_MODE_OFF]
OPERATION_LIST = [HVACMode.HEAT, HVACMode.OFF]
MIN_TEMPERATURE = 8
MAX_TEMPERATURE = 28
@ -113,18 +113,18 @@ class FritzboxThermostat(FritzBoxEntity, ClimateEntity):
OFF_REPORT_SET_TEMPERATURE,
OFF_API_TEMPERATURE,
):
return HVAC_MODE_OFF
return HVACMode.OFF
return HVAC_MODE_HEAT
return HVACMode.HEAT
@property
def hvac_modes(self) -> list[str]:
def hvac_modes(self) -> list[HVACMode]:
"""Return the list of available operation modes."""
return OPERATION_LIST
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
"""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)
else:
await self.async_set_temperature(

View file

@ -13,13 +13,12 @@ from homeassistant.components.climate.const import (
ATTR_PRESET_MODE,
ATTR_PRESET_MODES,
DOMAIN,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
PRESET_COMFORT,
PRESET_ECO,
SERVICE_SET_HVAC_MODE,
SERVICE_SET_PRESET_MODE,
SERVICE_SET_TEMPERATURE,
HVACMode,
)
from homeassistant.components.fritzbox.const import (
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_CURRENT_TEMPERATURE] == 18
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_MIN_TEMP] == 8
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_TEMPERATURE] == 19.5
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")
assert state
@ -261,7 +260,7 @@ async def test_set_temperature_mode_off(hass: HomeAssistant, fritz: Mock):
SERVICE_SET_TEMPERATURE,
{
ATTR_ENTITY_ID: ENTITY_ID,
ATTR_HVAC_MODE: HVAC_MODE_OFF,
ATTR_HVAC_MODE: HVACMode.OFF,
ATTR_TEMPERATURE: 123,
},
True,
@ -281,7 +280,7 @@ async def test_set_temperature_mode_heat(hass: HomeAssistant, fritz: Mock):
SERVICE_SET_TEMPERATURE,
{
ATTR_ENTITY_ID: ENTITY_ID,
ATTR_HVAC_MODE: HVAC_MODE_HEAT,
ATTR_HVAC_MODE: HVACMode.HEAT,
ATTR_TEMPERATURE: 123,
},
True,
@ -299,7 +298,7 @@ async def test_set_hvac_mode_off(hass: HomeAssistant, fritz: Mock):
assert await hass.services.async_call(
DOMAIN,
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,
)
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(
DOMAIN,
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,
)
assert device.set_target_temperature.call_args_list == [call(22)]