From 65a7a6d22a1d0c8bb70830b7195804a70e642af9 Mon Sep 17 00:00:00 2001 From: Li Shuzhen Date: Tue, 19 Aug 2025 14:36:30 +0800 Subject: [PATCH] fix: correct the property value format after expression calculation (#1366) --- custom_components/xiaomi_home/miot/miot_device.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/custom_components/xiaomi_home/miot/miot_device.py b/custom_components/xiaomi_home/miot/miot_device.py index 500734c..671dd7c 100644 --- a/custom_components/xiaomi_home/miot/miot_device.py +++ b/custom_components/xiaomi_home/miot/miot_device.py @@ -1108,6 +1108,8 @@ class MIoTServiceEntity(Entity): ): continue value: Any = prop.value_format(params['value']) + value = prop.eval_expr(value) + value = prop.value_format(value) self._prop_value_map[prop] = value if prop in self._prop_changed_subs: self._prop_changed_subs[prop](prop, value) @@ -1279,8 +1281,9 @@ class MIoTPropertyEntity(Entity): def __on_value_changed(self, params: dict, ctx: Any) -> None: _LOGGER.debug('property changed, %s', params) - self._value = self.spec.value_format(params['value']) - self._value = self.spec.eval_expr(self._value) + value: Any = self.spec.value_format(params['value']) + value = self.spec.eval_expr(value) + self._value = self.spec.value_format(value) if not self._pending_write_ha_state_timer: self.async_write_ha_state()