mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 15:17:35 +00:00
Use climate enums in elkm1 (#70635)
This commit is contained in:
parent
8d71595f31
commit
e235926037
@ -8,17 +8,14 @@ from elkm1_lib.elements import Element
|
|||||||
from elkm1_lib.elk import Elk
|
from elkm1_lib.elk import Elk
|
||||||
from elkm1_lib.thermostats import Thermostat
|
from elkm1_lib.thermostats import Thermostat
|
||||||
|
|
||||||
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_TARGET_TEMP_HIGH,
|
ATTR_TARGET_TEMP_HIGH,
|
||||||
ATTR_TARGET_TEMP_LOW,
|
ATTR_TARGET_TEMP_LOW,
|
||||||
FAN_AUTO,
|
FAN_AUTO,
|
||||||
FAN_ON,
|
FAN_ON,
|
||||||
HVAC_MODE_COOL,
|
ClimateEntityFeature,
|
||||||
HVAC_MODE_FAN_ONLY,
|
HVACMode,
|
||||||
HVAC_MODE_HEAT,
|
|
||||||
HVAC_MODE_HEAT_COOL,
|
|
||||||
HVAC_MODE_OFF,
|
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import PRECISION_WHOLE
|
from homeassistant.const import PRECISION_WHOLE
|
||||||
@ -29,25 +26,25 @@ from . import ElkEntity, create_elk_entities
|
|||||||
from .const import DOMAIN
|
from .const import DOMAIN
|
||||||
|
|
||||||
SUPPORT_HVAC = [
|
SUPPORT_HVAC = [
|
||||||
HVAC_MODE_OFF,
|
HVACMode.OFF,
|
||||||
HVAC_MODE_HEAT,
|
HVACMode.HEAT,
|
||||||
HVAC_MODE_COOL,
|
HVACMode.COOL,
|
||||||
HVAC_MODE_HEAT_COOL,
|
HVACMode.HEAT_COOL,
|
||||||
HVAC_MODE_FAN_ONLY,
|
HVACMode.FAN_ONLY,
|
||||||
]
|
]
|
||||||
HASS_TO_ELK_HVAC_MODES = {
|
HASS_TO_ELK_HVAC_MODES = {
|
||||||
HVAC_MODE_OFF: (ThermostatMode.OFF.value, ThermostatFan.AUTO.value),
|
HVACMode.OFF: (ThermostatMode.OFF.value, ThermostatFan.AUTO.value),
|
||||||
HVAC_MODE_HEAT: (ThermostatMode.HEAT.value, None),
|
HVACMode.HEAT: (ThermostatMode.HEAT.value, None),
|
||||||
HVAC_MODE_COOL: (ThermostatMode.COOL.value, None),
|
HVACMode.COOL: (ThermostatMode.COOL.value, None),
|
||||||
HVAC_MODE_HEAT_COOL: (ThermostatMode.AUTO.value, None),
|
HVACMode.HEAT_COOL: (ThermostatMode.AUTO.value, None),
|
||||||
HVAC_MODE_FAN_ONLY: (ThermostatMode.OFF.value, ThermostatFan.ON.value),
|
HVACMode.FAN_ONLY: (ThermostatMode.OFF.value, ThermostatFan.ON.value),
|
||||||
}
|
}
|
||||||
ELK_TO_HASS_HVAC_MODES = {
|
ELK_TO_HASS_HVAC_MODES = {
|
||||||
ThermostatMode.OFF.value: HVAC_MODE_OFF,
|
ThermostatMode.OFF.value: HVACMode.OFF,
|
||||||
ThermostatMode.COOL.value: HVAC_MODE_COOL,
|
ThermostatMode.COOL.value: HVACMode.COOL,
|
||||||
ThermostatMode.HEAT.value: HVAC_MODE_HEAT,
|
ThermostatMode.HEAT.value: HVACMode.HEAT,
|
||||||
ThermostatMode.EMERGENCY_HEAT.value: HVAC_MODE_HEAT,
|
ThermostatMode.EMERGENCY_HEAT.value: HVACMode.HEAT,
|
||||||
ThermostatMode.AUTO.value: HVAC_MODE_HEAT_COOL,
|
ThermostatMode.AUTO.value: HVACMode.HEAT_COOL,
|
||||||
}
|
}
|
||||||
HASS_TO_ELK_FAN_MODES = {
|
HASS_TO_ELK_FAN_MODES = {
|
||||||
FAN_AUTO: (None, ThermostatFan.AUTO.value),
|
FAN_AUTO: (None, ThermostatFan.AUTO.value),
|
||||||
@ -87,7 +84,7 @@ class ElkThermostat(ElkEntity, ClimateEntity):
|
|||||||
def __init__(self, element: Element, elk: Elk, elk_data: dict[str, Any]) -> None:
|
def __init__(self, element: Element, elk: Elk, elk_data: dict[str, Any]) -> None:
|
||||||
"""Initialize climate entity."""
|
"""Initialize climate entity."""
|
||||||
super().__init__(element, elk, elk_data)
|
super().__init__(element, elk, elk_data)
|
||||||
self._state: str = HVAC_MODE_OFF
|
self._state: str = HVACMode.OFF
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def temperature_unit(self) -> str:
|
def temperature_unit(self) -> str:
|
||||||
@ -137,7 +134,7 @@ class ElkThermostat(ElkEntity, ClimateEntity):
|
|||||||
return self._state
|
return self._state
|
||||||
|
|
||||||
@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 SUPPORT_HVAC
|
return SUPPORT_HVAC
|
||||||
|
|
||||||
@ -172,7 +169,7 @@ class ElkThermostat(ElkEntity, ClimateEntity):
|
|||||||
if fan is not None:
|
if fan is not None:
|
||||||
self._element.set(ThermostatSetting.FAN.value, fan)
|
self._element.set(ThermostatSetting.FAN.value, fan)
|
||||||
|
|
||||||
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
|
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
|
||||||
"""Set thermostat operation mode."""
|
"""Set thermostat operation mode."""
|
||||||
thermostat_mode, fan_mode = HASS_TO_ELK_HVAC_MODES[hvac_mode]
|
thermostat_mode, fan_mode = HASS_TO_ELK_HVAC_MODES[hvac_mode]
|
||||||
self._elk_set(thermostat_mode, fan_mode)
|
self._elk_set(thermostat_mode, fan_mode)
|
||||||
@ -192,7 +189,7 @@ class ElkThermostat(ElkEntity, ClimateEntity):
|
|||||||
|
|
||||||
async def async_set_fan_mode(self, fan_mode: str) -> None:
|
async def async_set_fan_mode(self, fan_mode: str) -> None:
|
||||||
"""Set new target fan mode."""
|
"""Set new target fan mode."""
|
||||||
thermostat_mode, elk_fan_mode = HASS_TO_ELK_HVAC_MODES[fan_mode]
|
thermostat_mode, elk_fan_mode = HASS_TO_ELK_FAN_MODES[fan_mode]
|
||||||
self._elk_set(thermostat_mode, elk_fan_mode)
|
self._elk_set(thermostat_mode, elk_fan_mode)
|
||||||
|
|
||||||
async def async_set_temperature(self, **kwargs: Any) -> None:
|
async def async_set_temperature(self, **kwargs: Any) -> None:
|
||||||
@ -206,5 +203,5 @@ class ElkThermostat(ElkEntity, ClimateEntity):
|
|||||||
|
|
||||||
def _element_changed(self, element: Element, changeset: Any) -> None:
|
def _element_changed(self, element: Element, changeset: Any) -> None:
|
||||||
self._state = ELK_TO_HASS_HVAC_MODES[self._element.mode]
|
self._state = ELK_TO_HASS_HVAC_MODES[self._element.mode]
|
||||||
if self._state == HVAC_MODE_OFF and self._element.fan == ThermostatFan.ON.value:
|
if self._state == HVACMode.OFF and self._element.fan == ThermostatFan.ON.value:
|
||||||
self._state = HVAC_MODE_FAN_ONLY
|
self._state = HVACMode.FAN_ONLY
|
||||||
|
Loading…
x
Reference in New Issue
Block a user