mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Use climate enums in nuheat (#70726)
This commit is contained in:
parent
c44391f368
commit
c534d0a90e
@ -11,13 +11,12 @@ from nuheat.util import (
|
|||||||
nuheat_to_fahrenheit,
|
nuheat_to_fahrenheit,
|
||||||
)
|
)
|
||||||
|
|
||||||
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,
|
||||||
CURRENT_HVAC_HEAT,
|
ClimateEntityFeature,
|
||||||
CURRENT_HVAC_IDLE,
|
HVACAction,
|
||||||
HVAC_MODE_AUTO,
|
HVACMode,
|
||||||
HVAC_MODE_HEAT,
|
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS, TEMP_FAHRENHEIT
|
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS, TEMP_FAHRENHEIT
|
||||||
@ -43,7 +42,7 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
# The device does not have an off function.
|
# The device does not have an off function.
|
||||||
# To turn it off set to min_temp and PRESET_PERMANENT_HOLD
|
# To turn it off set to min_temp and PRESET_PERMANENT_HOLD
|
||||||
OPERATION_LIST = [HVAC_MODE_AUTO, HVAC_MODE_HEAT]
|
OPERATION_LIST = [HVACMode.AUTO, HVACMode.HEAT]
|
||||||
|
|
||||||
PRESET_RUN = "Run Schedule"
|
PRESET_RUN = "Run Schedule"
|
||||||
PRESET_TEMPORARY_HOLD = "Temporary Hold"
|
PRESET_TEMPORARY_HOLD = "Temporary Hold"
|
||||||
@ -82,6 +81,7 @@ async def async_setup_entry(
|
|||||||
class NuHeatThermostat(CoordinatorEntity, ClimateEntity):
|
class NuHeatThermostat(CoordinatorEntity, ClimateEntity):
|
||||||
"""Representation of a NuHeat Thermostat."""
|
"""Representation of a NuHeat Thermostat."""
|
||||||
|
|
||||||
|
_attr_hvac_modes = OPERATION_LIST
|
||||||
_attr_supported_features = (
|
_attr_supported_features = (
|
||||||
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
|
ClimateEntityFeature.TARGET_TEMPERATURE | ClimateEntityFeature.PRESET_MODE
|
||||||
)
|
)
|
||||||
@ -125,24 +125,24 @@ class NuHeatThermostat(CoordinatorEntity, ClimateEntity):
|
|||||||
"""Return the unique id."""
|
"""Return the unique id."""
|
||||||
return self.coordinator.last_update_success and self._thermostat.online
|
return self.coordinator.last_update_success and self._thermostat.online
|
||||||
|
|
||||||
def set_hvac_mode(self, hvac_mode):
|
def set_hvac_mode(self, hvac_mode: HVACMode) -> None:
|
||||||
"""Set the system mode."""
|
"""Set the system mode."""
|
||||||
if hvac_mode == HVAC_MODE_AUTO:
|
if hvac_mode == HVACMode.AUTO:
|
||||||
self._set_schedule_mode(SCHEDULE_RUN)
|
self._set_schedule_mode(SCHEDULE_RUN)
|
||||||
elif hvac_mode == HVAC_MODE_HEAT:
|
elif hvac_mode == HVACMode.HEAT:
|
||||||
self._set_schedule_mode(SCHEDULE_HOLD)
|
self._set_schedule_mode(SCHEDULE_HOLD)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def hvac_mode(self):
|
def hvac_mode(self) -> HVACMode:
|
||||||
"""Return current setting heat or auto."""
|
"""Return current setting heat or auto."""
|
||||||
if self._schedule_mode in (SCHEDULE_TEMPORARY_HOLD, SCHEDULE_HOLD):
|
if self._schedule_mode in (SCHEDULE_TEMPORARY_HOLD, SCHEDULE_HOLD):
|
||||||
return HVAC_MODE_HEAT
|
return HVACMode.HEAT
|
||||||
return HVAC_MODE_AUTO
|
return HVACMode.AUTO
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def hvac_action(self):
|
def hvac_action(self) -> HVACAction:
|
||||||
"""Return current operation heat or idle."""
|
"""Return current operation heat or idle."""
|
||||||
return CURRENT_HVAC_HEAT if self._thermostat.heating else CURRENT_HVAC_IDLE
|
return HVACAction.HEATING if self._thermostat.heating else HVACAction.IDLE
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def min_temp(self):
|
def min_temp(self):
|
||||||
@ -178,11 +178,6 @@ class NuHeatThermostat(CoordinatorEntity, ClimateEntity):
|
|||||||
"""Return available preset modes."""
|
"""Return available preset modes."""
|
||||||
return PRESET_MODES
|
return PRESET_MODES
|
||||||
|
|
||||||
@property
|
|
||||||
def hvac_modes(self):
|
|
||||||
"""Return list of possible operation modes."""
|
|
||||||
return OPERATION_LIST
|
|
||||||
|
|
||||||
def set_preset_mode(self, preset_mode):
|
def set_preset_mode(self, preset_mode):
|
||||||
"""Update the hold mode of the thermostat."""
|
"""Update the hold mode of the thermostat."""
|
||||||
self._set_schedule_mode(
|
self._set_schedule_mode(
|
||||||
@ -218,7 +213,7 @@ class NuHeatThermostat(CoordinatorEntity, ClimateEntity):
|
|||||||
preset_mode, SCHEDULE_RUN
|
preset_mode, SCHEDULE_RUN
|
||||||
)
|
)
|
||||||
elif self._schedule_mode == SCHEDULE_HOLD or (
|
elif self._schedule_mode == SCHEDULE_HOLD or (
|
||||||
hvac_mode and hvac_mode == HVAC_MODE_HEAT
|
hvac_mode and hvac_mode == HVACMode.HEAT
|
||||||
):
|
):
|
||||||
target_schedule_mode = SCHEDULE_HOLD
|
target_schedule_mode = SCHEDULE_HOLD
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user