mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Auto select thermostat preset when selecting temperature (#134146)
This commit is contained in:
parent
40348890da
commit
8172afd9f4
@ -268,6 +268,7 @@ class GenericThermostat(ClimateEntity, RestoreEntity):
|
||||
else:
|
||||
self._attr_preset_modes = [PRESET_NONE]
|
||||
self._presets = presets
|
||||
self._presets_inv = {v: k for k, v in presets.items()}
|
||||
|
||||
async def async_added_to_hass(self) -> None:
|
||||
"""Run when entity about to be added."""
|
||||
@ -421,6 +422,7 @@ class GenericThermostat(ClimateEntity, RestoreEntity):
|
||||
"""Set new target temperature."""
|
||||
if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None:
|
||||
return
|
||||
self._attr_preset_mode = self._presets_inv.get(temperature, PRESET_NONE)
|
||||
self._target_temp = temperature
|
||||
await self._async_control_heating(force=True)
|
||||
self.async_write_ha_state()
|
||||
|
@ -319,6 +319,20 @@ async def test_set_target_temp(hass: HomeAssistant) -> None:
|
||||
assert state.attributes.get("temperature") == 30.0
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("setup_comp_2")
|
||||
async def test_set_target_temp_change_preset(hass: HomeAssistant) -> None:
|
||||
"""Test the setting of the target temperature.
|
||||
|
||||
Verify that preset is changed.
|
||||
"""
|
||||
await common.async_set_temperature(hass, 30)
|
||||
state = hass.states.get(ENTITY)
|
||||
assert state.attributes.get("preset_mode") == PRESET_NONE
|
||||
await common.async_set_temperature(hass, 20)
|
||||
state = hass.states.get(ENTITY)
|
||||
assert state.attributes.get("preset_mode") == PRESET_COMFORT
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("preset", "temp"),
|
||||
[
|
||||
|
Loading…
x
Reference in New Issue
Block a user