Use climate enums in sensibo (#70734)

pull/70764/head
epenet 2022-04-26 09:01:32 +02:00 committed by GitHub
parent 24b7d1f47b
commit ba7cff505e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 25 deletions

View File

@ -4,15 +4,7 @@ from __future__ import annotations
import voluptuous as vol
from homeassistant.components.climate import ClimateEntity
from homeassistant.components.climate.const import (
HVAC_MODE_COOL,
HVAC_MODE_DRY,
HVAC_MODE_FAN_ONLY,
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
ClimateEntityFeature,
)
from homeassistant.components.climate.const import ClimateEntityFeature, HVACMode
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import (
ATTR_STATE,
@ -40,12 +32,12 @@ FIELD_TO_FLAG = {
}
SENSIBO_TO_HA = {
"cool": HVAC_MODE_COOL,
"heat": HVAC_MODE_HEAT,
"fan": HVAC_MODE_FAN_ONLY,
"auto": HVAC_MODE_HEAT_COOL,
"dry": HVAC_MODE_DRY,
"off": HVAC_MODE_OFF,
"cool": HVACMode.COOL,
"heat": HVACMode.HEAT,
"fan": HVACMode.FAN_ONLY,
"auto": HVACMode.HEAT_COOL,
"dry": HVACMode.DRY,
"off": HVACMode.OFF,
}
HA_TO_SENSIBO = {value: key for key, value in SENSIBO_TO_HA.items()}
@ -113,16 +105,14 @@ class SensiboClimate(SensiboDeviceBaseEntity, ClimateEntity):
return self.device_data.humidity
@property
def hvac_mode(self) -> str:
def hvac_mode(self) -> HVACMode:
"""Return hvac operation."""
return (
SENSIBO_TO_HA[self.device_data.hvac_mode]
if self.device_data.device_on
else HVAC_MODE_OFF
)
if self.device_data.device_on:
return SENSIBO_TO_HA[self.device_data.hvac_mode]
return HVACMode.OFF
@property
def hvac_modes(self) -> list[str]:
def hvac_modes(self) -> list[HVACMode]:
"""Return the list of available hvac operation modes."""
return [SENSIBO_TO_HA[mode] for mode in self.device_data.hvac_modes]
@ -213,9 +203,9 @@ class SensiboClimate(SensiboDeviceBaseEntity, ClimateEntity):
await self._async_set_ac_state_property("fanLevel", fan_mode)
async def async_set_hvac_mode(self, hvac_mode: str) -> None:
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
"""Set new target operation mode."""
if hvac_mode == HVAC_MODE_OFF:
if hvac_mode == HVACMode.OFF:
await self._async_set_ac_state_property("on", False)
return
@ -265,5 +255,5 @@ class SensiboClimate(SensiboDeviceBaseEntity, ClimateEntity):
async def async_assume_state(self, state) -> None:
"""Sync state with api."""
await self._async_set_ac_state_property("on", state != HVAC_MODE_OFF, True)
await self._async_set_ac_state_property("on", state != HVACMode.OFF, True)
await self.coordinator.async_refresh()