support boolean for HVAC Eco preset

This commit is contained in:
2024-05-29 13:10:00 -04:00
parent f27de00793
commit 34ab80ad93
6 changed files with 12 additions and 1 deletions

View File

@@ -42,6 +42,7 @@ from .const import (
CONF_TEMP_MIN,
CONF_ECO_DP,
CONF_ECO_VALUE,
CONF_ECO_VALUE_BOOL,
CONF_HEURISTIC_ACTION,
CONF_HVAC_ACTION_DP,
CONF_HVAC_ACTION_SET,
@@ -168,6 +169,7 @@ def flow_schema(dps):
vol.Optional(CONF_HVAC_ACTION_SET): vol.In(list(HVAC_ACTION_SETS.keys())),
vol.Optional(CONF_ECO_DP): vol.In(dps),
vol.Optional(CONF_ECO_VALUE): str,
vol.Optional(CONF_ECO_VALUE_BOOL): bool,
vol.Optional(CONF_PRESET_DP): vol.In(dps),
vol.Optional(CONF_PRESET_SET): vol.In(list(PRESET_SETS.keys())),
vol.Optional(CONF_TEMPERATURE_UNIT): vol.In(
@@ -224,6 +226,7 @@ class LocaltuyaClimate(LocalTuyaEntity, ClimateEntity):
)
self._conf_eco_dp = self._config.get(CONF_ECO_DP)
self._conf_eco_value = self._config.get(CONF_ECO_VALUE, "ECO")
self._conf_eco_value_bool = self._config.get(CONF_ECO_VALUE_BOOL)
self._has_presets = self.has_config(CONF_ECO_DP) or self.has_config(
CONF_PRESET_DP
)
@@ -413,7 +416,10 @@ class LocaltuyaClimate(LocalTuyaEntity, ClimateEntity):
async def async_set_preset_mode(self, preset_mode):
"""Set new target preset mode."""
if preset_mode == PRESET_ECO:
await self._device.set_dp(self._conf_eco_value, self._conf_eco_dp)
if self._conf_eco_value_bool:
await self._device.set_dp(True, self._conf_eco_dp)
else:
await self._device.set_dp(self._conf_eco_value, self._conf_eco_dp)
return
await self._device.set_dp(
self._conf_preset_set[preset_mode], self._conf_preset_dp