From a008d282593d108d5dedff7e2d8c3d690feccec7 Mon Sep 17 00:00:00 2001 From: imbeacon Date: Wed, 18 Sep 2024 13:12:23 +0300 Subject: [PATCH] Fix for bad report strategy overwriting --- thingsboard_gateway/connectors/modbus/modbus_connector.py | 7 +++++-- thingsboard_gateway/connectors/modbus/slave.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/thingsboard_gateway/connectors/modbus/modbus_connector.py b/thingsboard_gateway/connectors/modbus/modbus_connector.py index d333bec5..ed4ad777 100644 --- a/thingsboard_gateway/connectors/modbus/modbus_connector.py +++ b/thingsboard_gateway/connectors/modbus/modbus_connector.py @@ -256,8 +256,11 @@ def __add_slave_to_devices(self): def __load_slaves(self): for device in self.__config.get('master', {'slaves': []}).get('slaves', []): - self.__slaves.append(Slave(**{**device, 'connector': self, 'gateway': self.__gateway, 'logger': self.__log, - 'callback': ModbusConnector.callback, REPORT_STRATEGY_PARAMETER: self.__main_report_strategy})) + slave_config = {**device, 'connector': self, 'gateway': self.__gateway, 'logger': self.__log, + 'callback': ModbusConnector.callback} + if REPORT_STRATEGY_PARAMETER not in slave_config: + slave_config[REPORT_STRATEGY_PARAMETER] = self.__main_report_strategy + self.__slaves.append(Slave(**slave_config)) @classmethod def callback(cls, slave: Slave, request_type: RequestType, data=None): diff --git a/thingsboard_gateway/connectors/modbus/slave.py b/thingsboard_gateway/connectors/modbus/slave.py index b6ba460f..bba7ce6f 100644 --- a/thingsboard_gateway/connectors/modbus/slave.py +++ b/thingsboard_gateway/connectors/modbus/slave.py @@ -111,7 +111,7 @@ def timer(self): if current_monotonic - self.__last_polled_time >= self.poll_period: self.callback(self, RequestType.POLL) self.__last_polled_time = current_monotonic - if current_monotonic - self.__last_checked_time >= 1: + if current_monotonic - self.__last_checked_time >= 1.0: self.__check_data_to_send_periodically(current_monotonic) self.__last_checked_time = current_monotonic except Exception as e: