Added DPS value type configuration

This commit is contained in:
DeeSe
2022-07-07 14:07:19 +02:00
parent 54dbc3a359
commit f06b8ccb49
4 changed files with 9 additions and 3 deletions

View File

@@ -32,6 +32,7 @@ from .const import (
CONF_FAN_SPEED_CONTROL,
CONF_FAN_SPEED_MAX,
CONF_FAN_SPEED_MIN,
CONF_FAN_DPS_TYPE
)
_LOGGER = logging.getLogger(__name__)
@@ -48,6 +49,7 @@ def flow_schema(dps):
vol.Optional(CONF_FAN_SPEED_MIN, default=1): cv.positive_int,
vol.Optional(CONF_FAN_SPEED_MAX, default=9): cv.positive_int,
vol.Optional(CONF_FAN_ORDERED_LIST, default="disabled"): cv.string,
vol.Optional(CONF_FAN_DPS_TYPE, default='str'): vol.In(["str", "int"]),
}
@@ -73,6 +75,7 @@ class LocaltuyaFan(LocalTuyaEntity, FanEntity):
)
self._ordered_list = self._config.get(CONF_FAN_ORDERED_LIST).split(",")
self._ordered_list_mode = None
self._dps_type = int if self._config.get(CONF_FAN_DPS_TYPE) == "int" else str
if isinstance(self._ordered_list, list) and len(self._ordered_list) > 1:
self._use_ordered_list = True
@@ -138,7 +141,7 @@ class LocaltuyaFan(LocalTuyaEntity, FanEntity):
await self.async_turn_on()
if self._use_ordered_list:
await self._device.set_dp(
str(
self._dps_type(
percentage_to_ordered_list_item(self._ordered_list, percentage)
),
self._config.get(CONF_FAN_SPEED_CONTROL),
@@ -151,7 +154,7 @@ class LocaltuyaFan(LocalTuyaEntity, FanEntity):
else:
await self._device.set_dp(
str(
self._dps_type(
math.ceil(
percentage_to_ranged_value(self._speed_range, percentage)
)
@@ -221,7 +224,7 @@ class LocaltuyaFan(LocalTuyaEntity, FanEntity):
)
if current_speed is not None:
self._percentage = ordered_list_item_to_percentage(
self._ordered_list, current_speed
self._ordered_list, str(current_speed)
)
else: