From 91dbc2aaf61eb6c593847d76ee68d2f0ce342671 Mon Sep 17 00:00:00 2001 From: oamchronicle Date: Sun, 23 Nov 2025 09:01:53 +0800 Subject: [PATCH] fix: https://github.com/XiaoMi/ha_xiaomi_home/issues/1456 Signed-off-by: oamchronicle --- custom_components/xiaomi_home/miot/miot_device.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/custom_components/xiaomi_home/miot/miot_device.py b/custom_components/xiaomi_home/miot/miot_device.py index 524462a..4860851 100644 --- a/custom_components/xiaomi_home/miot/miot_device.py +++ b/custom_components/xiaomi_home/miot/miot_device.py @@ -1282,7 +1282,20 @@ class MIoTPropertyEntity(Entity): def __on_value_changed(self, params: dict, ctx: Any) -> None: _LOGGER.debug('property changed, %s', params) - value: Any = self.spec.value_format(params['value']) + + raw_value = params["value"] + + if isinstance(raw_value, str): + try: + numeric_value = float(raw_value) + if numeric_value.is_integer(): + raw_value = int(numeric_value) + else: + raw_value = numeric_value + except ValueError: + pass + + value = self.spec.value_format(raw_value) value = self.spec.eval_expr(value) self._value = self.spec.value_format(value) if not self._pending_write_ha_state_timer: