diff --git a/homeassistant/components/tuya/base.py b/homeassistant/components/tuya/base.py index d61c83b17ad..f4bc0dc561f 100644 --- a/homeassistant/components/tuya/base.py +++ b/homeassistant/components/tuya/base.py @@ -46,6 +46,10 @@ class IntegerTypeData: """Scale a value.""" return value * 1.0 / (10 ** self.scale) + def scale_value_back(self, value: float | int) -> int: + """Return raw value for scaled.""" + return int(value * (10 ** self.scale)) + def remap_value_to( self, value: float, diff --git a/homeassistant/components/tuya/number.py b/homeassistant/components/tuya/number.py index c724f6e79a3..8db2e4debd5 100644 --- a/homeassistant/components/tuya/number.py +++ b/homeassistant/components/tuya/number.py @@ -259,9 +259,9 @@ class TuyaNumberEntity(TuyaEntity, NumberEntity): # and determine unit of measurement if self._status_range.type == "Integer": self._type_data = IntegerTypeData.from_json(self._status_range.values) - self._attr_max_value = self._type_data.max - self._attr_min_value = self._type_data.min - self._attr_step = self._type_data.step + self._attr_max_value = self._type_data.max_scaled + self._attr_min_value = self._type_data.min_scaled + self._attr_step = self._type_data.step_scaled if description.unit_of_measurement is None: self._attr_unit_of_measurement = self._type_data.unit @@ -290,7 +290,7 @@ class TuyaNumberEntity(TuyaEntity, NumberEntity): [ { "code": self.entity_description.key, - "value": self._type_data.scale_value(value), + "value": self._type_data.scale_value_back(value), } ] )