diff --git a/README.md b/README.md index 697ea87..3552aec 100644 --- a/README.md +++ b/README.md @@ -179,10 +179,9 @@ A combination with a red question mark should work, but I have not checked it in - - - - + + +
Micro Inverter ModelFw. 1.00.06Fw. 1.00.17Fw. 1.00.20Fw. 1.1.00.0B
GEN3 micro inverters (single MPPT):
MS300, MS350, MS400
GEN3 micro inverters (dual MPPT):
MS600, MS700, MS800
✔️✔️✔️
GEN3 PLUS micro inverters:
MS1600, MS1800, MS2000
✔️
Balcony micro inverters:
MS400-D, MS800-D, MS2000-D
GEN3 micro inverters (single MPPT):
MS300, MS350, MS400
MS400-D
GEN3 micro inverters (dual MPPT):
MS600, MS700, MS800
MS600-D, MS800-D
✔️✔️✔️
GEN3 PLUS micro inverters:
MS1600, MS1800, MS2000
MS2000-D
✔️
TITAN micro inverters:
TSOL-MP3000, MP2250, MS3000
diff --git a/app/src/gen3plus/solarman_v5.py b/app/src/gen3plus/solarman_v5.py index ac2ce61..5c8e588 100644 --- a/app/src/gen3plus/solarman_v5.py +++ b/app/src/gen3plus/solarman_v5.py @@ -58,10 +58,10 @@ class SolarmanV5(Message): self.switch = { 0x4210: self.msg_data_ind, # real time data - 0x1210: self.msg_data_rsp, # at least every 5 minutes + 0x1210: self.msg_response, # at least every 5 minutes 0x4710: self.msg_hbeat_ind, # heatbeat - 0x1710: self.msg_hbeat_rsp, # every 2 minutes + 0x1710: self.msg_response, # every 2 minutes # every 3 hours comes a sync seuqence: # 00:00:00 0x4110 device data ftype: 0x02 @@ -72,18 +72,18 @@ class SolarmanV5(Message): # 00:00:07 0x4310 wifi data ftype: 0x01 sub-id 0x0018: 0c # noqa: E501 # 00:00:08 0x4810 options? ftype: 0x01 - 0x4110: self.msg_dev_ind, # device data, sync start - 0x1110: self.msg_dev_rsp, # every 3 hours + 0x4110: self.msg_dev_ind, # device data, sync start + 0x1110: self.msg_response, # every 3 hours - 0x4310: self.msg_forward, # regulary after 3-6 hours - 0x1310: self.msg_forward, - 0x4810: self.msg_forward, # sync end - 0x1810: self.msg_forward, + 0x4310: self.msg_sync_start, # regulary after 3-6 hours + 0x1310: self.msg_response, + 0x4810: self.msg_sync_end, # sync end + 0x1810: self.msg_response, # - # AT cmd - 0x4510: self.at_command_ind, # from server - 0x1510: self.msg_forward, # from inverter + # MODbus or AT cmd + 0x4510: self.msg_command_req, # from server + 0x1510: self.msg_response, # from inverter } ''' @@ -285,63 +285,23 @@ class SolarmanV5(Message): self.data_len+2):] self.header_valid = False - ''' - Message handler methods - ''' - def msg_unknown(self): - logger.warning(f"Unknow Msg: ID:{int(self.control):#04x}") - self.inc_counter('Unknown_Msg') - self.msg_forward() - - def msg_forward(self): - self.forward(self._recv_buffer, self.header_len+self.data_len+2) - - def msg_dev_ind(self): - data = self._recv_buffer[self.header_len:] - result = struct.unpack_from(' None: + self.__build_header(0x4510) + self._send_buffer += struct.pack(f'