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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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):