1
0
mirror of https://github.com/home-assistant/core.git synced 2026-03-01 22:30:12 +00:00

Use climate enums in oem (#70727)

This commit is contained in:
epenet
2022-04-26 09:19:38 +02:00
committed by GitHub
parent 76dd82f8e5
commit df2a4223da

View File

@@ -5,18 +5,11 @@ from oemthermostat import Thermostat
import requests
import voluptuous as vol
from homeassistant.components.climate import (
PLATFORM_SCHEMA,
ClimateEntity,
ClimateEntityFeature,
)
from homeassistant.components.climate import PLATFORM_SCHEMA, ClimateEntity
from homeassistant.components.climate.const import (
CURRENT_HVAC_HEAT,
CURRENT_HVAC_IDLE,
CURRENT_HVAC_OFF,
HVAC_MODE_AUTO,
HVAC_MODE_HEAT,
HVAC_MODE_OFF,
ClimateEntityFeature,
HVACAction,
HVACMode,
)
from homeassistant.const import (
ATTR_TEMPERATURE,
@@ -42,7 +35,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
}
)
SUPPORT_HVAC = [HVAC_MODE_AUTO, HVAC_MODE_HEAT, HVAC_MODE_OFF]
SUPPORT_HVAC = [HVACMode.AUTO, HVACMode.HEAT, HVACMode.OFF]
def setup_platform(
@@ -69,6 +62,7 @@ def setup_platform(
class ThermostatDevice(ClimateEntity):
"""Interface class for the oemthermostat module."""
_attr_hvac_modes = SUPPORT_HVAC
_attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
def __init__(self, thermostat, name):
@@ -83,24 +77,16 @@ class ThermostatDevice(ClimateEntity):
self._mode = None
@property
def hvac_mode(self):
def hvac_mode(self) -> HVACMode:
"""Return hvac operation ie. heat, cool mode.
Need to be one of HVAC_MODE_*.
"""
if self._mode == 2:
return HVAC_MODE_HEAT
return HVACMode.HEAT
if self._mode == 1:
return HVAC_MODE_AUTO
return HVAC_MODE_OFF
@property
def hvac_modes(self):
"""Return the list of available hvac operation modes.
Need to be a subset of HVAC_MODES.
"""
return SUPPORT_HVAC
return HVACMode.AUTO
return HVACMode.OFF
@property
def name(self):
@@ -113,13 +99,13 @@ class ThermostatDevice(ClimateEntity):
return TEMP_CELSIUS
@property
def hvac_action(self):
def hvac_action(self) -> HVACAction:
"""Return current hvac i.e. heat, cool, idle."""
if not self._mode:
return CURRENT_HVAC_OFF
return HVACAction.OFF
if self._state:
return CURRENT_HVAC_HEAT
return CURRENT_HVAC_IDLE
return HVACAction.HEATING
return HVACAction.IDLE
@property
def current_temperature(self):
@@ -131,13 +117,13 @@ class ThermostatDevice(ClimateEntity):
"""Return the temperature we try to reach."""
return self._setpoint
def set_hvac_mode(self, hvac_mode):
def set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set new target hvac mode."""
if hvac_mode == HVAC_MODE_AUTO:
if hvac_mode == HVACMode.AUTO:
self.thermostat.mode = 1
elif hvac_mode == HVAC_MODE_HEAT:
elif hvac_mode == HVACMode.HEAT:
self.thermostat.mode = 2
elif hvac_mode == HVAC_MODE_OFF:
elif hvac_mode == HVACMode.OFF:
self.thermostat.mode = 0
def set_temperature(self, **kwargs):