Align Comelit climate code to humidifier (#113747)

This commit is contained in:
Simone Chemelli 2024-03-19 08:42:07 +01:00 committed by GitHub
parent 2582172ad1
commit ae55e8e1ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -25,7 +25,7 @@ from .const import DOMAIN
from .coordinator import ComelitSerialBridge from .coordinator import ComelitSerialBridge
class ClimaMode(StrEnum): class ClimaComelitMode(StrEnum):
"""Serial Bridge clima modes.""" """Serial Bridge clima modes."""
AUTO = "A" AUTO = "A"
@ -34,8 +34,8 @@ class ClimaMode(StrEnum):
UPPER = "U" UPPER = "U"
class ClimaAction(StrEnum): class ClimaComelitCommand(StrEnum):
"""Serial Bridge clima actions.""" """Serial Bridge clima commands."""
OFF = "off" OFF = "off"
ON = "on" ON = "on"
@ -45,28 +45,28 @@ class ClimaAction(StrEnum):
API_STATUS: dict[str, dict[str, Any]] = { API_STATUS: dict[str, dict[str, Any]] = {
ClimaMode.OFF: { ClimaComelitMode.OFF: {
"action": "off", "action": "off",
"hvac_mode": HVACMode.OFF, "hvac_mode": HVACMode.OFF,
"hvac_action": HVACAction.OFF, "hvac_action": HVACAction.OFF,
}, },
ClimaMode.LOWER: { ClimaComelitMode.LOWER: {
"action": "lower", "action": "lower",
"hvac_mode": HVACMode.COOL, "hvac_mode": HVACMode.COOL,
"hvac_action": HVACAction.COOLING, "hvac_action": HVACAction.COOLING,
}, },
ClimaMode.UPPER: { ClimaComelitMode.UPPER: {
"action": "upper", "action": "upper",
"hvac_mode": HVACMode.HEAT, "hvac_mode": HVACMode.HEAT,
"hvac_action": HVACAction.HEATING, "hvac_action": HVACAction.HEATING,
}, },
} }
MODE_TO_ACTION: dict[HVACMode, ClimaAction] = { MODE_TO_ACTION: dict[HVACMode, ClimaComelitCommand] = {
HVACMode.OFF: ClimaAction.OFF, HVACMode.OFF: ClimaComelitCommand.OFF,
HVACMode.AUTO: ClimaAction.AUTO, HVACMode.AUTO: ClimaComelitCommand.AUTO,
HVACMode.COOL: ClimaAction.MANUAL, HVACMode.COOL: ClimaComelitCommand.MANUAL,
HVACMode.HEAT: ClimaAction.MANUAL, HVACMode.HEAT: ClimaComelitCommand.MANUAL,
} }
@ -139,7 +139,7 @@ class ComelitClimateEntity(CoordinatorEntity[ComelitSerialBridge], ClimateEntity
@property @property
def _api_automatic(self) -> bool: def _api_automatic(self) -> bool:
"""Return device in automatic/manual mode.""" """Return device in automatic/manual mode."""
return self._clima[3] == ClimaMode.AUTO return self._clima[3] == ClimaComelitMode.AUTO
@property @property
def target_temperature(self) -> float: def target_temperature(self) -> float:
@ -155,7 +155,7 @@ class ComelitClimateEntity(CoordinatorEntity[ComelitSerialBridge], ClimateEntity
def hvac_mode(self) -> HVACMode | None: def hvac_mode(self) -> HVACMode | None:
"""HVAC current mode.""" """HVAC current mode."""
if self._api_mode == ClimaMode.OFF: if self._api_mode == ClimaComelitMode.OFF:
return HVACMode.OFF return HVACMode.OFF
if self._api_automatic: if self._api_automatic:
@ -170,7 +170,7 @@ class ComelitClimateEntity(CoordinatorEntity[ComelitSerialBridge], ClimateEntity
def hvac_action(self) -> HVACAction | None: def hvac_action(self) -> HVACAction | None:
"""HVAC current action.""" """HVAC current action."""
if self._api_mode == ClimaMode.OFF: if self._api_mode == ClimaComelitMode.OFF:
return HVACAction.OFF return HVACAction.OFF
if not self._api_active: if not self._api_active:
@ -189,10 +189,10 @@ class ComelitClimateEntity(CoordinatorEntity[ComelitSerialBridge], ClimateEntity
return return
await self.coordinator.api.set_clima_status( await self.coordinator.api.set_clima_status(
self._device.index, ClimaAction.MANUAL self._device.index, ClimaComelitCommand.MANUAL
) )
await self.coordinator.api.set_clima_status( await self.coordinator.api.set_clima_status(
self._device.index, ClimaAction.SET, target_temp self._device.index, ClimaComelitCommand.SET, target_temp
) )
async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None: async def async_set_hvac_mode(self, hvac_mode: HVACMode) -> None:
@ -200,7 +200,7 @@ class ComelitClimateEntity(CoordinatorEntity[ComelitSerialBridge], ClimateEntity
if hvac_mode != HVACMode.OFF: if hvac_mode != HVACMode.OFF:
await self.coordinator.api.set_clima_status( await self.coordinator.api.set_clima_status(
self._device.index, ClimaAction.ON self._device.index, ClimaComelitCommand.ON
) )
await self.coordinator.api.set_clima_status( await self.coordinator.api.set_clima_status(
self._device.index, MODE_TO_ACTION[hvac_mode] self._device.index, MODE_TO_ACTION[hvac_mode]