mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +00:00
Use climate enums in daikin (#70766)
This commit is contained in:
parent
cf8f2132a2
commit
3440be803c
@ -5,30 +5,19 @@ import logging
|
||||
|
||||
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 (
|
||||
ATTR_FAN_MODE,
|
||||
ATTR_HVAC_MODE,
|
||||
ATTR_PRESET_MODE,
|
||||
ATTR_SWING_MODE,
|
||||
CURRENT_HVAC_COOL,
|
||||
CURRENT_HVAC_HEAT,
|
||||
CURRENT_HVAC_IDLE,
|
||||
CURRENT_HVAC_OFF,
|
||||
HVAC_MODE_COOL,
|
||||
HVAC_MODE_DRY,
|
||||
HVAC_MODE_FAN_ONLY,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_HEAT_COOL,
|
||||
HVAC_MODE_OFF,
|
||||
PRESET_AWAY,
|
||||
PRESET_BOOST,
|
||||
PRESET_ECO,
|
||||
PRESET_NONE,
|
||||
ClimateEntityFeature,
|
||||
HVACAction,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import ATTR_TEMPERATURE, CONF_HOST, CONF_NAME, TEMP_CELSIUS
|
||||
@ -53,27 +42,27 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
|
||||
)
|
||||
|
||||
HA_STATE_TO_DAIKIN = {
|
||||
HVAC_MODE_FAN_ONLY: "fan",
|
||||
HVAC_MODE_DRY: "dry",
|
||||
HVAC_MODE_COOL: "cool",
|
||||
HVAC_MODE_HEAT: "hot",
|
||||
HVAC_MODE_HEAT_COOL: "auto",
|
||||
HVAC_MODE_OFF: "off",
|
||||
HVACMode.FAN_ONLY: "fan",
|
||||
HVACMode.DRY: "dry",
|
||||
HVACMode.COOL: "cool",
|
||||
HVACMode.HEAT: "hot",
|
||||
HVACMode.HEAT_COOL: "auto",
|
||||
HVACMode.OFF: "off",
|
||||
}
|
||||
|
||||
DAIKIN_TO_HA_STATE = {
|
||||
"fan": HVAC_MODE_FAN_ONLY,
|
||||
"dry": HVAC_MODE_DRY,
|
||||
"cool": HVAC_MODE_COOL,
|
||||
"hot": HVAC_MODE_HEAT,
|
||||
"auto": HVAC_MODE_HEAT_COOL,
|
||||
"off": HVAC_MODE_OFF,
|
||||
"fan": HVACMode.FAN_ONLY,
|
||||
"dry": HVACMode.DRY,
|
||||
"cool": HVACMode.COOL,
|
||||
"hot": HVACMode.HEAT,
|
||||
"auto": HVACMode.HEAT_COOL,
|
||||
"off": HVACMode.OFF,
|
||||
}
|
||||
|
||||
HA_STATE_TO_CURRENT_HVAC = {
|
||||
HVAC_MODE_COOL: CURRENT_HVAC_COOL,
|
||||
HVAC_MODE_HEAT: CURRENT_HVAC_HEAT,
|
||||
HVAC_MODE_OFF: CURRENT_HVAC_OFF,
|
||||
HVACMode.COOL: HVACAction.COOLING,
|
||||
HVACMode.HEAT: HVACAction.HEATING,
|
||||
HVACMode.OFF: HVACAction.OFF,
|
||||
}
|
||||
|
||||
HA_PRESET_TO_DAIKIN = {
|
||||
@ -212,29 +201,29 @@ class DaikinClimate(ClimateEntity):
|
||||
await self._set(kwargs)
|
||||
|
||||
@property
|
||||
def hvac_action(self):
|
||||
def hvac_action(self) -> HVACAction | None:
|
||||
"""Return the current state."""
|
||||
ret = HA_STATE_TO_CURRENT_HVAC.get(self.hvac_mode)
|
||||
if (
|
||||
ret in (CURRENT_HVAC_COOL, CURRENT_HVAC_HEAT)
|
||||
ret in (HVACAction.COOLING, HVACAction.HEATING)
|
||||
and self._api.device.support_compressor_frequency
|
||||
and self._api.device.compressor_frequency == 0
|
||||
):
|
||||
return CURRENT_HVAC_IDLE
|
||||
return HVACAction.IDLE
|
||||
return ret
|
||||
|
||||
@property
|
||||
def hvac_mode(self):
|
||||
def hvac_mode(self) -> HVACMode:
|
||||
"""Return current operation ie. heat, cool, idle."""
|
||||
daikin_mode = self._api.device.represent(HA_ATTR_TO_DAIKIN[ATTR_HVAC_MODE])[1]
|
||||
return DAIKIN_TO_HA_STATE.get(daikin_mode, HVAC_MODE_HEAT_COOL)
|
||||
return DAIKIN_TO_HA_STATE.get(daikin_mode, HVACMode.HEAT_COOL)
|
||||
|
||||
@property
|
||||
def hvac_modes(self):
|
||||
def hvac_modes(self) -> list[HVACMode]:
|
||||
"""Return the list of available operation modes."""
|
||||
return self._list.get(ATTR_HVAC_MODE)
|
||||
|
||||
async def async_set_hvac_mode(self, hvac_mode):
|
||||
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
|
||||
"""Set HVAC mode."""
|
||||
await self._set({ATTR_HVAC_MODE: hvac_mode})
|
||||
|
||||
@ -331,7 +320,7 @@ class DaikinClimate(ClimateEntity):
|
||||
async def async_turn_off(self):
|
||||
"""Turn device off."""
|
||||
await self._api.device.set(
|
||||
{HA_ATTR_TO_DAIKIN[ATTR_HVAC_MODE]: HA_STATE_TO_DAIKIN[HVAC_MODE_OFF]}
|
||||
{HA_ATTR_TO_DAIKIN[ATTR_HVAC_MODE]: HA_STATE_TO_DAIKIN[HVACMode.OFF]}
|
||||
)
|
||||
|
||||
@property
|
||||
|
Loading…
x
Reference in New Issue
Block a user