1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00

Use "medium" instead of "med" for the medium fan mode in Coolmaster (#157253)

This commit is contained in:
tan-lawrence
2025-11-27 19:27:49 +08:00
committed by GitHub
parent 2bb51e1146
commit 0769163b67
2 changed files with 23 additions and 5 deletions

View File

@@ -8,6 +8,10 @@ from typing import Any
from pycoolmasternet_async import SWING_MODES
from homeassistant.components.climate import (
FAN_AUTO,
FAN_HIGH,
FAN_LOW,
FAN_MEDIUM,
ClimateEntity,
ClimateEntityFeature,
HVACMode,
@@ -31,7 +35,16 @@ CM_TO_HA_STATE = {
HA_STATE_TO_CM = {value: key for key, value in CM_TO_HA_STATE.items()}
FAN_MODES = ["low", "med", "high", "auto"]
CM_TO_HA_FAN = {
"low": FAN_LOW,
"med": FAN_MEDIUM,
"high": FAN_HIGH,
"auto": FAN_AUTO,
}
HA_FAN_TO_CM = {value: key for key, value in CM_TO_HA_FAN.items()}
FAN_MODES = list(CM_TO_HA_FAN.values())
_LOGGER = logging.getLogger(__name__)
@@ -111,7 +124,7 @@ class CoolmasterClimate(CoolmasterEntity, ClimateEntity):
@property
def fan_mode(self):
"""Return the fan setting."""
return self._unit.fan_speed
return CM_TO_HA_FAN[self._unit.fan_speed]
@property
def fan_modes(self):
@@ -138,7 +151,7 @@ class CoolmasterClimate(CoolmasterEntity, ClimateEntity):
async def async_set_fan_mode(self, fan_mode: str) -> None:
"""Set new fan mode."""
_LOGGER.debug("Setting fan mode of %s to %s", self.unique_id, fan_mode)
self._unit = await self._unit.set_fan_speed(fan_mode)
self._unit = await self._unit.set_fan_speed(HA_FAN_TO_CM[fan_mode])
self.async_write_ha_state()
async def async_set_swing_mode(self, swing_mode: str) -> None:

View File

@@ -167,23 +167,28 @@ async def test_set_temperature(
assert hass.states.get("climate.l1_100").attributes[ATTR_TEMPERATURE] == 30
@pytest.mark.parametrize("target_fan_mode", FAN_MODES)
async def test_set_fan_mode(
hass: HomeAssistant,
load_int: ConfigEntry,
target_fan_mode: str,
) -> None:
"""Test the Coolmaster climate set fan mode."""
assert hass.states.get("climate.l1_100").attributes[ATTR_FAN_MODE] == FAN_LOW
await hass.services.async_call(
CLIMATE_DOMAIN,
SERVICE_SET_FAN_MODE,
{
ATTR_ENTITY_ID: "climate.l1_100",
ATTR_FAN_MODE: FAN_HIGH,
ATTR_FAN_MODE: target_fan_mode,
},
blocking=True,
)
await hass.async_block_till_done()
assert hass.states.get("climate.l1_100").attributes[ATTR_FAN_MODE] == FAN_HIGH
assert (
hass.states.get("climate.l1_100").attributes[ATTR_FAN_MODE] == target_fan_mode
)
async def test_set_swing_mode(