From b240b74994e8903c04420a61d4674464c956f196 Mon Sep 17 00:00:00 2001 From: Stefan Allius Date: Thu, 9 May 2024 18:22:43 +0200 Subject: [PATCH] avoid sending AT/Modbus commands too early - wait until we have received the first data from the inverter --- app/src/gen3plus/solarman_v5.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/gen3plus/solarman_v5.py b/app/src/gen3plus/solarman_v5.py index 823e5ab..2bc2b87 100644 --- a/app/src/gen3plus/solarman_v5.py +++ b/app/src/gen3plus/solarman_v5.py @@ -62,7 +62,6 @@ class SolarmanV5(Message): self.time_ofs = 0 self.mb = Modbus() self.forward_modbus_resp = False - self.closed = False self.switch = { 0x4210: self.msg_data_ind, # real time data @@ -103,7 +102,7 @@ class SolarmanV5(Message): # so we have to erase self.switch, otherwise this instance can't be # deallocated by the garbage collector ==> we get a memory leak self.switch.clear() - self.closed = True + self.state = self.STATE_CLOSED def __set_serial_no(self, snr: int): serial_no = str(snr) @@ -302,7 +301,7 @@ class SolarmanV5(Message): self.__finish_send_msg() async def send_modbus_cmd(self, func, addr, val) -> None: - if self.closed: + if self.state != self.STATE_UP: return self.forward_modbus_resp = False self.__build_header(0x4510) @@ -317,7 +316,7 @@ class SolarmanV5(Message): self._send_buffer = bytearray(0) async def send_at_cmd(self, AT_cmd: str) -> None: - if self.closed: + if self.state != self.STATE_UP: return self.__build_header(0x4510) self._send_buffer += struct.pack(f'