From 0f4fc5657b06b73b6d1613f6ce7c45f0caf3f120 Mon Sep 17 00:00:00 2001 From: krahabb <13969600+krahabb@users.noreply.github.com> Date: Wed, 4 Dec 2024 14:57:18 +0000 Subject: [PATCH] try fix mts200 external sensor update (#504) --- custom_components/meross_lan/const.py | 6 ++++ .../meross_lan/helpers/namespaces.py | 32 +++++++++---------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/custom_components/meross_lan/const.py b/custom_components/meross_lan/const.py index 8adce28..b1d6ee4 100644 --- a/custom_components/meross_lan/const.py +++ b/custom_components/meross_lan/const.py @@ -201,6 +201,12 @@ class ProfileConfigType( """for polled entities over cloud MQTT use 'at least' this""" PARAM_CONFIG_UPDATE_PERIOD = 300 """read device config polling period""" +PARAM_SENSOR_FAST_UPDATE_PERIOD = 0 +"""fast varying sensors polling period (this should lead to updates at every poll depending on polling policy)""" +PARAM_SENSOR_MEDIUM_UPDATE_PERIOD = 55 +"""medium speed varying sensors polling period (not as critical as FAST_UPDATEs that need to be queried asap)""" +PARAM_SENSOR_SLOW_UPDATE_PERIOD = 300 +"""slowly varying sensors polling period""" PARAM_DIAGNOSTIC_UPDATE_PERIOD = 300 """read diagnostic sensors only every ... second""" PARAM_ENERGY_UPDATE_PERIOD = 55 diff --git a/custom_components/meross_lan/helpers/namespaces.py b/custom_components/meross_lan/helpers/namespaces.py index 681c9e8..185257a 100644 --- a/custom_components/meross_lan/helpers/namespaces.py +++ b/custom_components/meross_lan/helpers/namespaces.py @@ -788,7 +788,7 @@ def _handle_void(self, header: dict, payload: dict): NamespaceHandler.async_poll_lazy, ), mn.Appliance_System_Runtime: ( - 300, + mlc.PARAM_SENSOR_SLOW_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, 330, 0, @@ -816,21 +816,21 @@ def _handle_void(self, header: dict, payload: dict): NamespaceHandler.async_poll_smart, ), mn.Appliance_Control_Diffuser_Sensor: ( - 300, + mlc.PARAM_SENSOR_SLOW_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 100, NamespaceHandler.async_poll_lazy, ), mn.Appliance_Control_Electricity: ( - 0, + mlc.PARAM_SENSOR_FAST_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, 430, 0, NamespaceHandler.async_poll_smart, ), mn.Appliance_Control_ElectricityX: ( - 0, + mlc.PARAM_SENSOR_FAST_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 100, @@ -886,7 +886,7 @@ def _handle_void(self, header: dict, payload: dict): NamespaceHandler.async_poll_lazy, ), mn.Appliance_Control_Sensor_Latest: ( - 300, + mlc.PARAM_SENSOR_SLOW_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 80, @@ -921,18 +921,18 @@ def _handle_void(self, header: dict, payload: dict): NamespaceHandler.async_poll_lazy, ), mn.Appliance_Control_Thermostat_Frost: ( - 0, + mlc.PARAM_SENSOR_SLOW_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 80, - NamespaceHandler.async_poll_smart, + NamespaceHandler.async_poll_lazy, ), mn.Appliance_Control_Thermostat_Overheat: ( - 0, - 0, + mlc.PARAM_SENSOR_SLOW_UPDATE_PERIOD, + mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 140, - NamespaceHandler.async_poll_default, + NamespaceHandler.async_poll_lazy, ), mn.Appliance_Control_Thermostat_Timer: ( 0, @@ -956,11 +956,11 @@ def _handle_void(self, header: dict, payload: dict): NamespaceHandler.async_poll_lazy, ), mn.Appliance_Control_Thermostat_Sensor: ( - 0, - 0, + mlc.PARAM_SENSOR_SLOW_UPDATE_PERIOD, + mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 40, - NamespaceHandler.async_poll_default, + NamespaceHandler.async_poll_lazy, ), mn.Appliance_GarageDoor_Config: ( mlc.PARAM_CONFIG_UPDATE_PERIOD, @@ -981,14 +981,14 @@ def _handle_void(self, header: dict, payload: dict): mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 40, - NamespaceHandler.async_poll_smart, + NamespaceHandler.async_poll_lazy, ), mn.Appliance_Hub_Mts100_Adjust: ( mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 40, - NamespaceHandler.async_poll_smart, + NamespaceHandler.async_poll_lazy, ), mn.Appliance_Hub_Mts100_All: ( mlc.PARAM_HEARTBEAT_PERIOD, @@ -1009,7 +1009,7 @@ def _handle_void(self, header: dict, payload: dict): mlc.PARAM_CLOUDMQTT_UPDATE_PERIOD, mlc.PARAM_HEADER_SIZE, 60, - NamespaceHandler.async_poll_smart, + NamespaceHandler.async_poll_lazy, ), mn.Appliance_Hub_Sensor_All: ( mlc.PARAM_HEARTBEAT_PERIOD,