From 773e84bdab2e1ad23f5b7d286d6fe1e994dd8f8b Mon Sep 17 00:00:00 2001 From: yNos Date: Fri, 19 Jul 2024 18:18:12 -0400 Subject: [PATCH 01/24] adding EG4-3000-EHV and ignoring the python venv dirs --- ...000-EHV - MODBUS Communication Protocol.pdf | Bin 0 -> 211715 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/EG4-3000-EHV - MODBUS Communication Protocol.pdf diff --git a/docs/EG4-3000-EHV - MODBUS Communication Protocol.pdf b/docs/EG4-3000-EHV - MODBUS Communication Protocol.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2d6106c42805a7bb0e25ff45a68db86dad2c6796 GIT binary patch literal 211715 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 Date: Fri, 19 Jul 2024 17:40:41 -0500 Subject: [PATCH 02/24] ignore python venvs --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index fce9f27..af7ee80 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,13 @@ *.pyc .vscode settings.json + +# Ignore Python virtual environment directories virtualenv/* +venv/ +env/ +.venv/ +.env/ growatt2mqtt.cfg growatt2mqtt.service From d638922cb94a6e060b19767a6df3a5920ec6c1d3 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 18:54:22 -0500 Subject: [PATCH 03/24] add eg4_3000ehv protocol and implement 32bit flag add eg4_3000ehv protocol and implement 32bit flag 32bit flags are untested! hopefully they work i think 8bit flag implementation was wrong? so removed / made new flexible implementation --- classes/protocol_settings.py | 23 +++++-- protocols/eg4_3000ehv_v1.json | 7 +++ ...4_3000ehv_v1.json.holding_registry_map.csv | 62 +++++++++++++++++++ 3 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 protocols/eg4_3000ehv_v1.json create mode 100644 protocols/eg4_3000ehv_v1.json.holding_registry_map.csv diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index 8a9db75..d2d8486 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -22,6 +22,8 @@ class Data_Type(Enum): '''32 bit signed int''' _16BIT_FLAGS = 7 _8BIT_FLAGS = 8 + _32BIT_FLAGS = 9 + ASCII = 84 ''' 2 characters ''' @@ -104,7 +106,9 @@ def getSize(cls, data_type : 'Data_Type'): Data_Type.UINT : 32, Data_Type.SHORT : 16, Data_Type.INT : 32, - Data_Type._16BIT_FLAGS : 16 + Data_Type._8BIT_FLAGS : 8, + Data_Type._16BIT_FLAGS : 16, + Data_Type._32BIT_FLAGS : 32 } if data_type in sizes: @@ -143,6 +147,7 @@ def fromString(cls, name : str): "READDISABLED" : "READDISABLED", "DISABLED" : "READDISABLED", "D" : "READDISABLED", + "R/W" : "WRITE", "RW" : "WRITE", "W" : "WRITE", "YES" : "WRITE" @@ -659,15 +664,21 @@ def process_register_bytes(self, registry : dict[int,bytes], entry : registry_ma value = int.from_bytes(register[:2], byteorder='big', signed=False) elif entry.data_type == Data_Type.SHORT: value = int.from_bytes(register[:2], byteorder='big', signed=True) - elif entry.data_type == Data_Type._16BIT_FLAGS or entry.data_type == Data_Type._8BIT_FLAGS: + elif entry.data_type == Data_Type._16BIT_FLAGS or entry.data_type == Data_Type._8BIT_FLAGS or entry.data_type == Data_Type._32BIT_FLAGS: #16 bit flags start_bit : int = 0 - if entry.data_type == Data_Type._8BIT_FLAGS: - start_bit = 8 + end_bit : int = 16 #default 16 bit + flag_size : int = Data_Type.getSize(entry.data_type) + + if entry.register_bit > 0: #handle custom bit offset + start_bit = entry.register_bit + + #handle custom sizes, less than 1 register + end_bit = flag_size + start_bit if entry.documented_name+'_codes' in self.protocolSettings.codes: flags : list[str] = [] - for i in range(start_bit, 16): # Iterate over each bit position (0 to 15) + for i in range(start_bit, end_bit): # Iterate over each bit position (0 to 15) byte = i // 8 bit = i % 8 val = register[byte] @@ -680,7 +691,7 @@ def process_register_bytes(self, registry : dict[int,bytes], entry : registry_ma value = ",".join(flags) else: flags : list[str] = [] - for i in range(start_bit, 16): # Iterate over each bit position (0 to 15) + for i in range(start_bit, end_bit): # Iterate over each bit position (0 to 15) # Check if the i-th bit is set if (val >> i) & 1: flags.append("1") diff --git a/protocols/eg4_3000ehv_v1.json b/protocols/eg4_3000ehv_v1.json new file mode 100644 index 0000000..d98f3b4 --- /dev/null +++ b/protocols/eg4_3000ehv_v1.json @@ -0,0 +1,7 @@ +{ + "transport" : "modbus_rtu", + "baud" : 9600, + "batch_size" : 40, + "send_holding_register": true, + "send_input_register" : false +} \ No newline at end of file diff --git a/protocols/eg4_3000ehv_v1.json.holding_registry_map.csv b/protocols/eg4_3000ehv_v1.json.holding_registry_map.csv new file mode 100644 index 0000000..232a255 --- /dev/null +++ b/protocols/eg4_3000ehv_v1.json.holding_registry_map.csv @@ -0,0 +1,62 @@ +variable name,data type,register,documented name,unit,values,writable,note +,32BIT_FLAGS,100~101,Fault code,,"{ ""b0"": ""Reserve"", ""b1"": ""Over temperature of DCDC module"", ""b2"": ""Battery over voltage"", ""b3"": ""Reserve"", ""b4"": ""Output short circuited"", ""b5"": ""Over Inverter voltage"", ""b6"": ""Output over load"", ""b7"": ""Bus over voltage"", ""b8"": ""Bus soft start times out"", ""b9"": ""PV over current"", ""b10"": ""PV over voltage"", ""b11"": ""Battery over current"", ""b12"": ""Inverter over current"", ""b13"": ""Bus low voltage"", ""b14"": ""Reserve"", ""b15"": ""Inverter DC component is too high"", ""b16"": ""Reserve"", ""b17"": ""The zero bias of Output current is too large"", ""b18"": ""The zero bias of inverter current is too large"", ""b19"": ""The zero bias of battery current is too large"", ""b20"": ""The zero bias of PV current is too large"", ""b21"": ""Inverter low voltage"", ""b22"": ""Inverter negative power protection"", ""b23"": ""The host in the parallel system is lost"", ""b24"": ""Synchronization signal abnormal in the parallel system"", ""b25"": ""Reserve"", ""b26"": ""Parallel versions are incompatible"" }",R,"32-bit fault code, each bit corresponds to a fault code, see the fault code table for details, fault code 1 corresponds to bit1, fault code 2 corresponds to bit2, and so on" +,32BIT_FLAGS,108~109,Obtain warning code,,"{""b0"": ""Zero crossing loss of mains power"", ""b1"": ""Mains waveform abnormal"", ""b2"": ""Mains over voltage"", ""b3"": ""Mains low voltage"", ""b4"": ""Mains over frequency"", ""b5"": ""Mains low frequency"", ""b6"": ""PV low voltage"", ""b7"": ""Over temperature"", ""b8"": ""Battery low voltage"", ""b9"": ""Battery is not connected"", ""b10"": ""Overload"", ""b11"": ""Battery Eq charging"", ""b12"": ""Battery is discharged at a low voltage and it has not been charged back to the recovery point"", ""b13"": ""Output power derating"", ""b14"": ""Fan blocked"", ""b15"": ""PV energy is too low to be used"", ""b16"": ""Parallel communication interrupted"", ""b17"": ""Output mode of Single and Parallel systems is inconsistent"", ""b18"": ""Battery voltage difference of parallel system is too large""}",R/W,32-bit warning code see the warning code description for details +Serial Number,ASCII,186~197,Series NO,,,R,12 registers +,USHORT,201,Working Mode,,"{""0"": ""Power On Mode"", ""1"": ""Standby mode"", ""2"": ""Mains mode"", ""3"": ""Off-Grid mode"", ""4"": ""Bypass mode"", ""5"": ""Charging mode"", ""6"": ""Fault mode""}",R, +,SHORT,202,Effective mains voltage,0.1V,,R, +,SHORT,203,Mains Frequency,0.01Hz,,R, +,SHORT,204,Average mains power,1w,,R, +,SHORT,205,Affective inverter voltage,0.1V,,R, +,SHORT,206,Affective inverter current,0.1A,,R, +,SHORT,207,Inverter frequency,0.01Hz,,R, +,SHORT,208,Average inverter power,1W,,R,"Positive numbers indicate inverter output, negative numbers indicate inverter input" +,SHORT,209,Inverter charging power,1W,,R, +,SHORT,210,Output effective voltage,0.1V,,R, +,SHORT,211,Output effective Current,0.1A,,R, +,SHORT,212,Output frequency,0.01Hz,,R, +,SHORT,213,Output active power,1W,,R, +,SHORT,214,Output apparent power,1VA,,R, +,SHORT,215,Battery average voltage,0.1V,,R, +,SHORT,216,Battery average Current,0.1A,,R, +,SHORT,217,Battery average power,1w,,R, +,SHORT,219,PV average voltage,0.1V,,R, +,SHORT,220,PV average Current,0.1A,,R, +,SHORT,223,PV average power,1W,,R, +,SHORT,224,PV charging average power,1W,,R, +,SHORT,225,load percentage,1%,,R, +,SHORT,226,DCDC Temperature,1 C,,R, +,SHORT,227,Inverter Temperature,1 C,,R, +,USHORT,229,Battery percentage,1%,,R, +,SHORT,232,Battery average current,0.1A,,R,"Positive number means charging, negative number means discharging" +,SHORT,233,Inverter charging average current,0.1A,,R, +,SHORT,234,PV charging average current,0.1A,,R, +,USHORT,300,Output Mode,,"{""0"": ""Single"", ""1"": ""Parallel"", ""2"": ""3 Phase-P1"", ""3"": ""3 Phase-P2"", ""4"": ""3 Phase-P3"", ""5"": ""Split Phase-P1"", ""6"": ""Split Phase-P2""} ",R/W, +,USHORT,301,Output priority,,"{""0"": ""Utility-PV-Battery"", ""1"": ""PV-Utility-Battery"", ""2"": ""PV-Battery-Utility""} ",R/W,0: Utility-PV-Battery 1:PV-Utility-Battery 2: PV-Battery-Utility +,USHORT,302,Input voltage range,,"{""0"": ""Wide range"", ""1"": ""Narrow range""}",R/W,0: Wide range 1: Narrow range +,USHORT,303,Buzzer mode,,"{""0"": ""Mute in all situations"", ""1"": ""Sound when the input source is changed or there is a specific warning or fault"", ""2"": ""Sound when there is a specific warning or fault"", ""3"": ""Sound when fault occurs""}",R/W,0: Mute in all situations; 1: Sound when the input source is changed or there is a specific warning or fault; 2: Sound when there is a specific warning or fault; 3: Sound when fault occurs; +,USHORT,305,LCD backlight,,"{""0"": ""Timed off"", ""1"": ""Always on""} ",R/W,0: Timed off; 1: Always on; +,USHORT,306,LCD automatically returns to the homepage,,"{""0"": ""Do not return automatically;"", ""1"": ""Automatically return after 1 minute;""}",R/W,0: Do not return automatically; 1: Automatically return after 1 minute; +,USHORT,307,Energy_saving mode,,"{""0"": ""Energy-saving mode is off;"", ""1"": ""Energy-saving mode is on;""}",R/W,0: Energy-saving mode is off; 1: Energy-saving mode is on; +,USHORT,308,Overload automatic restart,,"{""0"": ""Overload failure will not restart;"", ""1"": ""Automatic restart after overload failure;""}",R/W,0: Overload failure will not restart; 1: Automatic restart after overload failure; +,USHORT,309,Over temperature automatic restart,,"{""0"": ""Over temperature failure will not restart;"", ""1"": ""Automatic restart after over-temperature fault;""}",R/W,0: Over temperature failure will not restart; 1: Automatic restart after over- temperature fault +,USHORT,310,Overload transfer to bypass enabled,,"{""0"": ""Disable;"", ""1"": ""Enable;""}",R/W,0: Disable; 1: Enable; +,USHORT,313,Battery Eq mode is enabled,,"{""0"": ""Disable;"", ""1"": ""Enable;""} ",R/W,0: Disable; 1: Enable; +,USHORT,320,Output voltage,0.1v,,R/W, +,USHORT,321,Output frequency,0.01Hz,,R/W, +,USHORT,323,Battery overvoltage protection point,0.1V,,R/W, +,USHORT,324,Max charging voltage,0.1V,,R/W, +,USHORT,325,Floating charging voltage,0.1V,,R/W, +,USHORT,326,Battery discharge recovery point in mains mode,0.1V,,R/W, +,USHORT,327,Battery low voltage protection point in mains mode,0.1V,,R/W, +,USHORT,329,Battery low voltage protection point in off_grid mode,0.1V,,R/W, +,USHORT,331,Battery charging priority,,"{""0"": ""Utility priority;"", ""1"": ""PV priority;"", ""2"": ""PV is at the same level as the Utility;"", ""3"": ""Only PV charging is allowed;""}",R/W,0: Utility priority; 1: PV priority; 2: PV is at the same level as the Utility; 3: Only PV charging is allowed +,USHORT,332,Maximum charging current,0.1A,,R/W, +,USHORT,333,Maximum mains charging current,0.1A,,R/W, +,USHORT,334,Eq Charging voltage,0.1V,,R/W, +,USHORT,335,bat_eq_time,min,0~900,R/W,Range: 0~900 +,USHORT,336,Eq Timeout exit,min,0~900,R/W,Range: 0~900 +,USHORT,337,Two Eq charging intervals,day,1~90,R/W,Range:1~90 +,USHORT,406,Turn on mode,,"{""0"": ""Can be turn-on locally or remotely;"", ""1"": ""Only local turn-on;"", ""2"": ""Only remote turn-on;""}",R/W,0: Can be turn-on locally or remotely 1: Only local turn-on 2: Only remote turn-on +,USHORT,420,Remote switch,,"{""0"": ""Remote shutdown"", ""1"": ""Remote turn-on""}",R/W,0: Remote shutdown 1: Remote turn-on +,USHORT,426,Exit the fault mode,,,W,"1: Exit the fault state(only when the inverter enters the fault mode , it could be available )" +,USHORT,643,Rated Power,W,,R, From 52bc28c7f1a6dfb93d562d89bc9a80e4f3c62703 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:24:55 -0500 Subject: [PATCH 04/24] implement 32bit flags for ushort registers / modbus --- classes/protocol_settings.py | 53 +++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index d2d8486..21fc072 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -773,32 +773,53 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma value = -value #value = struct.unpack(' 0: #handle custom bit offset + start_bit = entry.register_bit + + #handle custom sizes, less than 1 register + end_bit = flag_size + start_bit if entry.documented_name+'_codes' in self.codes: flags : list[str] = [] - for i in range(start_bit, 16): # Iterate over each bit position (0 to 15) - # Check if the i-th bit is set - if (val >> i) & 1: - flag_index = "b"+str(i) - if flag_index in self.codes[entry.documented_name+'_codes']: - flags.append(self.codes[entry.documented_name+'_codes'][flag_index]) + offset : int = 0 + + while end_bit > 0: + val = registry[entry.register + offset] + end : int = 16 if end_bit >= 16 else end_bit + for i in range(start_bit, end): # Iterate over each bit position (0 to 15) + # Check if the i-th bit is set + if (val >> i) & 1: + flag_index = "b"+str(i+offset) + if flag_index in self.codes[entry.documented_name+'_codes']: + flags.append(self.codes[entry.documented_name+'_codes'][flag_index]) + offset += 1 + end_bit -= 16 + value = ",".join(flags) else: flags : list[str] = [] - for i in range(start_bit, 16): # Iterate over each bit position (0 to 15) - # Check if the i-th bit is set - if (val >> i) & 1: - flags.append("1") - else: - flags.append("0") + offset : int = 0 + + while end_bit > 0: + val = registry[entry.register + offset] + end : int = 16 if end_bit >= 16 else end_bit + for i in range(start_bit, end): # Iterate over each bit position (0 to 15) + # Check if the i-th bit is set + if (val >> i) & 1: + flags.append("1") + else: + flags.append("0") + value = ''.join(flags) + elif entry.data_type.value > 200 or entry.data_type == Data_Type.BYTE: #bit types bit_size = Data_Type.getSize(entry.data_type) bit_mask = (1 << bit_size) - 1 # Create a mask for extracting X bits From 4347fa4f0582e34ffb6cbb93360e08055aecf367 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:30:06 -0500 Subject: [PATCH 05/24] Update protocol_settings.py oops forgot this --- classes/protocol_settings.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index 21fc072..efac814 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -817,9 +817,12 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma flags.append("1") else: flags.append("0") + + offset += 1 + end_bit -= 16 value = ''.join(flags) - + elif entry.data_type.value > 200 or entry.data_type == Data_Type.BYTE: #bit types bit_size = Data_Type.getSize(entry.data_type) bit_mask = (1 << bit_size) - 1 # Create a mask for extracting X bits From d0b35727285249472cf54de930e88825e9294908 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:32:13 -0500 Subject: [PATCH 06/24] Update common.py slight bug fix --- defs/common.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/defs/common.py b/defs/common.py index 4428b94..f3e2c85 100644 --- a/defs/common.py +++ b/defs/common.py @@ -16,6 +16,10 @@ def strtobool (val): def strtoint(val : str) -> int: ''' converts str to int, but allows for hex string input, identified by x prefix''' + + if isinstance(val, int): #is already int. + return val + if val and val[0] == 'x': return int.from_bytes(bytes.fromhex(val[1:]), byteorder='big') From 021e4005522c868c2aa8f242e17c0f58ccdcf918 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:46:36 -0500 Subject: [PATCH 07/24] Update protocol_settings.py bug fix, my bad. i forgot concatenate happens else where. --- classes/protocol_settings.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index efac814..73df7fe 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -785,13 +785,21 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma #handle custom sizes, less than 1 register end_bit = flag_size + start_bit + + #calculate current offset for mutliregiter values, were assuming concatenate registers is in order, 0 being the first / lowest + #offset should always be >= 0 + offset : int = entry.register - entry.concatenate_registers[0] + + #compensate for current offset + end_bit = end_bit - (offset * 16) + + val = registry[entry.register] if entry.documented_name+'_codes' in self.codes: flags : list[str] = [] offset : int = 0 - while end_bit > 0: - val = registry[entry.register + offset] + if end_bit > 0: end : int = 16 if end_bit >= 16 else end_bit for i in range(start_bit, end): # Iterate over each bit position (0 to 15) # Check if the i-th bit is set @@ -799,17 +807,12 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma flag_index = "b"+str(i+offset) if flag_index in self.codes[entry.documented_name+'_codes']: flags.append(self.codes[entry.documented_name+'_codes'][flag_index]) - offset += 1 - end_bit -= 16 value = ",".join(flags) else: flags : list[str] = [] - offset : int = 0 - - while end_bit > 0: - val = registry[entry.register + offset] + if end_bit > 0: end : int = 16 if end_bit >= 16 else end_bit for i in range(start_bit, end): # Iterate over each bit position (0 to 15) # Check if the i-th bit is set @@ -817,9 +820,6 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma flags.append("1") else: flags.append("0") - - offset += 1 - end_bit -= 16 value = ''.join(flags) From 8687a4f5755b0ced391439a0cc3d40b7fc042684 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:51:16 -0500 Subject: [PATCH 08/24] Update protocol_settings.py oops --- classes/protocol_settings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index 73df7fe..713c89c 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -786,9 +786,11 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma #handle custom sizes, less than 1 register end_bit = flag_size + start_bit + offset : int = 0 #calculate current offset for mutliregiter values, were assuming concatenate registers is in order, 0 being the first / lowest #offset should always be >= 0 - offset : int = entry.register - entry.concatenate_registers[0] + if entry.concatenate: + offset : int = entry.register - entry.concatenate_registers[0] #compensate for current offset end_bit = end_bit - (offset * 16) From 2ec2782473a711e9c536b5ae14c71e0ddb825c5c Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:54:59 -0500 Subject: [PATCH 09/24] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 814a18d..b3572a5 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,13 @@ protocol_version = {{version}} v0.14 = growatt inverters 2020+ sigineer_v0.11 = sigineer inverters growatt_2020_v1.24 = alt protocol for large growatt inverters - currently untested -eg4_v58 = eg4 inverters ( EG4-6000XP ) - confirmed working srne_v3.9 = SRNE inverters - Untested victron_gx_3.3 = Victron GX Devices - Untested solark_v1.1 = SolarArk 8/12K Inverters - Untested hdhk_16ch_ac_module = some chinese current monitoring device :P + +eg4_v58 = eg4 inverters ( EG4-6000XP ) - confirmed working +eg4_eg4_3000ehv_v1 = eg4 inverters ( EG4_3000EHV ) ``` more details on these protocols can be found in the wiki From 54213b65f8dab977600703f689bc4b5518fd9e3d Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 19:55:43 -0500 Subject: [PATCH 10/24] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b3572a5..d2fb31f 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ solark_v1.1 = SolarArk 8/12K Inverters - Untested hdhk_16ch_ac_module = some chinese current monitoring device :P eg4_v58 = eg4 inverters ( EG4-6000XP ) - confirmed working -eg4_eg4_3000ehv_v1 = eg4 inverters ( EG4_3000EHV ) +eg4_3000ehv_v1 = eg4 inverters ( EG4_3000EHV ) ``` more details on these protocols can be found in the wiki From 5280c4c40fde6fee0c9273064d584d7acc0c9b78 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 20:48:56 -0500 Subject: [PATCH 11/24] update flake8 tests --- .github/workflows/python-package.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 3a913be..95a037a 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -33,8 +33,10 @@ jobs: run: | # stop the build if there are Python syntax errors or undefined names flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + + # don't care about coding standards # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + # flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | pytest From 342856699bbbee39cd1c557986325595727388a7 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Jul 2024 20:49:21 -0500 Subject: [PATCH 12/24] add pytests for loading protocol_settings --- protocols/v0.14.input_registry_map.csv | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/protocols/v0.14.input_registry_map.csv b/protocols/v0.14.input_registry_map.csv index fc293e2..bc94d47 100644 --- a/protocols/v0.14.input_registry_map.csv +++ b/protocols/v0.14.input_registry_map.csv @@ -40,8 +40,7 @@ AC Input Watts;;36;AC_InWatt H;AC input watt (high);;0.1W;;;;;;;;;;; AC Input VA;;38;AC_InVA H;AC input apparent power (high);;0.1VA;;;;;;;;;;; ;;39;AC_InVA L;AC input apparent power (low);;0.1VA;;;;;;;;;;; ;;40;Fault bit;fault bit;{{fault_bit_codes}};;;;;;;;;;;; -;16bit_flags;41;Warning bit;Warning bit;{{warning_bit_codes}};;;;;;;;;;;; -;16bit_flags;42;Warning bit high;;{{warning_bit_high_codes}};;;;;;;;;;;; +;32bit_flags;41~42;Warning bit;Warning bit;{{warning_bit_codes}};;;;;;;;;;;; ;;43;warning value;warning value;;;;;;;;;;;;; ;;44;DTC;Device Type Code;&*6;;;;;;;;;;;; ;;45;Check Step;Product check step;{{check_step_codes}};;;;;;;;;;;; From cf3a05f1c02776744a06a463451da30fa31a1968 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Fri, 19 Jul 2024 20:55:50 -0500 Subject: [PATCH 13/24] Revert "add pytests for loading protocol_settings" This reverts commit 342856699bbbee39cd1c557986325595727388a7. --- protocols/v0.14.input_registry_map.csv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/protocols/v0.14.input_registry_map.csv b/protocols/v0.14.input_registry_map.csv index bc94d47..fc293e2 100644 --- a/protocols/v0.14.input_registry_map.csv +++ b/protocols/v0.14.input_registry_map.csv @@ -40,7 +40,8 @@ AC Input Watts;;36;AC_InWatt H;AC input watt (high);;0.1W;;;;;;;;;;; AC Input VA;;38;AC_InVA H;AC input apparent power (high);;0.1VA;;;;;;;;;;; ;;39;AC_InVA L;AC input apparent power (low);;0.1VA;;;;;;;;;;; ;;40;Fault bit;fault bit;{{fault_bit_codes}};;;;;;;;;;;; -;32bit_flags;41~42;Warning bit;Warning bit;{{warning_bit_codes}};;;;;;;;;;;; +;16bit_flags;41;Warning bit;Warning bit;{{warning_bit_codes}};;;;;;;;;;;; +;16bit_flags;42;Warning bit high;;{{warning_bit_high_codes}};;;;;;;;;;;; ;;43;warning value;warning value;;;;;;;;;;;;; ;;44;DTC;Device Type Code;&*6;;;;;;;;;;;; ;;45;Check Step;Product check step;{{check_step_codes}};;;;;;;;;;;; From a7bc8fbaca1a63da31164e965015c5c204d9a788 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Jul 2024 20:57:04 -0500 Subject: [PATCH 14/24] add pytests for loading protocol_settings --- pytests/test_protocol_settings.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 pytests/test_protocol_settings.py diff --git a/pytests/test_protocol_settings.py b/pytests/test_protocol_settings.py new file mode 100644 index 0000000..df8cd34 --- /dev/null +++ b/pytests/test_protocol_settings.py @@ -0,0 +1,18 @@ +import sys +import os +import pytest + +#move up a folder for tests +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) + +from classes.protocol_settings import protocol_settings + +# List of protocols to test +protocols = [os.path.splitext(f)[0] for f in os.listdir("protocols") if f.endswith('.json')] + + +# Parameterized test function +@pytest.mark.parametrize("protocol", protocols) +def test_protocol_setting(protocol : str): + protocolSettings : protocol_settings = protocol_settings(protocol) + From e5f6001edcb292fad39807062600b54922bd577c Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Jul 2024 21:07:49 -0500 Subject: [PATCH 15/24] add pytest to perform basic check to example cfg --- pytests/test_example_config.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 pytests/test_example_config.py diff --git a/pytests/test_example_config.py b/pytests/test_example_config.py new file mode 100644 index 0000000..37bf4b3 --- /dev/null +++ b/pytests/test_example_config.py @@ -0,0 +1,12 @@ +import sys +import os +import pytest + +#move up a folder for tests +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) + +from protocol_gateway import CustomConfigParser + +def test_example_cfg(): + parser = CustomConfigParser() + parser.read("config.cfg.example") \ No newline at end of file From 4b5ce2d70c170bfa4b3c9aaf47c40fdfeb1e54ca Mon Sep 17 00:00:00 2001 From: root Date: Fri, 19 Jul 2024 21:13:30 -0500 Subject: [PATCH 16/24] readme for folder --- pytests/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 pytests/README.md diff --git a/pytests/README.md b/pytests/README.md new file mode 100644 index 0000000..946c2f7 --- /dev/null +++ b/pytests/README.md @@ -0,0 +1 @@ +this folder contains tests for github / git \ No newline at end of file From 9afe3866c59ff23d35f51c4318def6435879d4cb Mon Sep 17 00:00:00 2001 From: HotNoob Date: Mon, 22 Jul 2024 20:35:41 -0500 Subject: [PATCH 17/24] fix typo --- ...g_registry_map.csv => eg4_3000ehv_v1.holding_registry_map.csv} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename protocols/{eg4_3000ehv_v1.json.holding_registry_map.csv => eg4_3000ehv_v1.holding_registry_map.csv} (100%) diff --git a/protocols/eg4_3000ehv_v1.json.holding_registry_map.csv b/protocols/eg4_3000ehv_v1.holding_registry_map.csv similarity index 100% rename from protocols/eg4_3000ehv_v1.json.holding_registry_map.csv rename to protocols/eg4_3000ehv_v1.holding_registry_map.csv From 30769b5572137ed8dae0553bb52dbfb0fe4ff708 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Mon, 22 Jul 2024 20:45:53 -0500 Subject: [PATCH 18/24] Update eg4_3000ehv_v1.holding_registry_map.csv --- .../eg4_3000ehv_v1.holding_registry_map.csv | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/protocols/eg4_3000ehv_v1.holding_registry_map.csv b/protocols/eg4_3000ehv_v1.holding_registry_map.csv index 232a255..de29619 100644 --- a/protocols/eg4_3000ehv_v1.holding_registry_map.csv +++ b/protocols/eg4_3000ehv_v1.holding_registry_map.csv @@ -3,33 +3,33 @@ variable name,data type,register,documented name,unit,values,writable,note ,32BIT_FLAGS,108~109,Obtain warning code,,"{""b0"": ""Zero crossing loss of mains power"", ""b1"": ""Mains waveform abnormal"", ""b2"": ""Mains over voltage"", ""b3"": ""Mains low voltage"", ""b4"": ""Mains over frequency"", ""b5"": ""Mains low frequency"", ""b6"": ""PV low voltage"", ""b7"": ""Over temperature"", ""b8"": ""Battery low voltage"", ""b9"": ""Battery is not connected"", ""b10"": ""Overload"", ""b11"": ""Battery Eq charging"", ""b12"": ""Battery is discharged at a low voltage and it has not been charged back to the recovery point"", ""b13"": ""Output power derating"", ""b14"": ""Fan blocked"", ""b15"": ""PV energy is too low to be used"", ""b16"": ""Parallel communication interrupted"", ""b17"": ""Output mode of Single and Parallel systems is inconsistent"", ""b18"": ""Battery voltage difference of parallel system is too large""}",R/W,32-bit warning code see the warning code description for details Serial Number,ASCII,186~197,Series NO,,,R,12 registers ,USHORT,201,Working Mode,,"{""0"": ""Power On Mode"", ""1"": ""Standby mode"", ""2"": ""Mains mode"", ""3"": ""Off-Grid mode"", ""4"": ""Bypass mode"", ""5"": ""Charging mode"", ""6"": ""Fault mode""}",R, -,SHORT,202,Effective mains voltage,0.1V,,R, -,SHORT,203,Mains Frequency,0.01Hz,,R, -,SHORT,204,Average mains power,1w,,R, -,SHORT,205,Affective inverter voltage,0.1V,,R, -,SHORT,206,Affective inverter current,0.1A,,R, -,SHORT,207,Inverter frequency,0.01Hz,,R, -,SHORT,208,Average inverter power,1W,,R,"Positive numbers indicate inverter output, negative numbers indicate inverter input" -,SHORT,209,Inverter charging power,1W,,R, -,SHORT,210,Output effective voltage,0.1V,,R, -,SHORT,211,Output effective Current,0.1A,,R, -,SHORT,212,Output frequency,0.01Hz,,R, -,SHORT,213,Output active power,1W,,R, -,SHORT,214,Output apparent power,1VA,,R, -,SHORT,215,Battery average voltage,0.1V,,R, -,SHORT,216,Battery average Current,0.1A,,R, -,SHORT,217,Battery average power,1w,,R, -,SHORT,219,PV average voltage,0.1V,,R, -,SHORT,220,PV average Current,0.1A,,R, -,SHORT,223,PV average power,1W,,R, -,SHORT,224,PV charging average power,1W,,R, -,SHORT,225,load percentage,1%,,R, -,SHORT,226,DCDC Temperature,1 C,,R, -,SHORT,227,Inverter Temperature,1 C,,R, +,SHORT,202,Effective mains voltage,-0.1V,,R, +,SHORT,203,Mains Frequency,-0.01Hz,,R, +,SHORT,204,Average mains power,-1w,,R, +,SHORT,205,Affective inverter voltage,-0.1V,,R, +,SHORT,206,Affective inverter current,-0.1A,,R, +,SHORT,207,Inverter frequency,-0.01Hz,,R, +,SHORT,208,Average inverter power,-1w,,R,"Positive numbers indicate inverter output, negative numbers indicate inverter input" +,SHORT,209,Inverter charging power,-1w,,R, +,SHORT,210,Output effective voltage,-0.1V,,R, +,SHORT,211,Output effective Current,-0.1A,,R, +,SHORT,212,Output frequency,-0.01Hz,,R, +,SHORT,213,Output active power,-1w,,R, +,SHORT,214,Output apparent power,-1VA,,R, +,SHORT,215,Battery average voltage,-0.1V,,R, +,SHORT,216,Battery average Current,-0.1A,,R, +,SHORT,217,Battery average power,-1w,,R, +,SHORT,219,PV average voltage,-0.1V,,R, +,SHORT,220,PV average Current,-0.1A,,R, +,SHORT,223,PV average power,-1w,,R, +,SHORT,224,PV charging average power,-1w,,R, +,SHORT,225,load percentage,-1%,,R, +,SHORT,226,DCDC Temperature,-1 C,,R, +,SHORT,227,Inverter Temperature,-1 C,,R, ,USHORT,229,Battery percentage,1%,,R, -,SHORT,232,Battery average current,0.1A,,R,"Positive number means charging, negative number means discharging" -,SHORT,233,Inverter charging average current,0.1A,,R, -,SHORT,234,PV charging average current,0.1A,,R, +,SHORT,232,Battery average current,-0.1A,,R,"Positive number means charging, negative number means discharging" +,SHORT,233,Inverter charging average current,-0.1A,,R, +,SHORT,234,PV charging average current,-0.1A,,R, ,USHORT,300,Output Mode,,"{""0"": ""Single"", ""1"": ""Parallel"", ""2"": ""3 Phase-P1"", ""3"": ""3 Phase-P2"", ""4"": ""3 Phase-P3"", ""5"": ""Split Phase-P1"", ""6"": ""Split Phase-P2""} ",R/W, ,USHORT,301,Output priority,,"{""0"": ""Utility-PV-Battery"", ""1"": ""PV-Utility-Battery"", ""2"": ""PV-Battery-Utility""} ",R/W,0: Utility-PV-Battery 1:PV-Utility-Battery 2: PV-Battery-Utility ,USHORT,302,Input voltage range,,"{""0"": ""Wide range"", ""1"": ""Narrow range""}",R/W,0: Wide range 1: Narrow range From 0ffbe719eaa753495f561778c2d910df68dacdae Mon Sep 17 00:00:00 2001 From: root Date: Mon, 22 Jul 2024 20:51:47 -0500 Subject: [PATCH 19/24] allow negative units --- classes/protocol_settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index 713c89c..3108995 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -362,7 +362,7 @@ def determine_delimiter(first_row) -> str: character_part = row['unit'] else: # Use regular expressions to extract numeric and character parts - matches = re.findall(r'([0-9.]+)|(.*?)$', row['unit']) + matches = re.findall(r'(\-?[0-9.]+)|(.*?)$', row['unit']) # Iterate over the matches and assign them to appropriate variables for match in matches: From 05f70dd38e1cd4bd0f2470132f804aa51e03b410 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 22 Jul 2024 21:09:41 -0500 Subject: [PATCH 20/24] clean ascii strings --- classes/protocol_settings.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index 3108995..7c90ec5 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -893,6 +893,10 @@ def process_registery(self, registry : dict[int,int] | dict[int,bytes] , map : l concatenated_value = concatenated_value + str(concatenate_registry[key]) del concatenate_registry[key] + #replace null characters with spaces and trim + if entry.data_type == Data_Type.ASCII: + concatenated_value = concatenated_value.replace("\x00", " ").strip() + info[entry.variable_name] = concatenated_value else: info[entry.variable_name] = value From b3ae23915bb73c30a1ea0c9eee904192ed87489f Mon Sep 17 00:00:00 2001 From: root Date: Mon, 22 Jul 2024 21:21:37 -0500 Subject: [PATCH 21/24] fix log level handling --- classes/transports/transport_base.py | 6 +++++- protocol_gateway.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/classes/transports/transport_base.py b/classes/transports/transport_base.py index 702c1af..048c62e 100644 --- a/classes/transports/transport_base.py +++ b/classes/transports/transport_base.py @@ -33,8 +33,12 @@ class transport_base: def __init__(self, settings : 'SectionProxy', protocolSettings : 'protocol_settings' = None) -> None: + #apply log level to logger + self._log_level = logging.getLevelName(settings.get('log_level', fallback='INFO')) self._log : logging.Logger = logging.getLogger(__name__) - logging.basicConfig(level=logging.DEBUG) + + self._log.setLevel(self._log_level) + logging.basicConfig(level=self._log_level) self.transport_name = settings.name #section name diff --git a/protocol_gateway.py b/protocol_gateway.py index 7869020..b992d48 100644 --- a/protocol_gateway.py +++ b/protocol_gateway.py @@ -96,7 +96,7 @@ class Protocol_Gateway: def __init__(self, config_file : str): self.__log = logging.getLogger('invertermodbustomqqt_log') handler = logging.StreamHandler(sys.stdout) - self.__log.setLevel(logging.DEBUG) + #self.__log.setLevel(logging.DEBUG) formatter = logging.Formatter('[%(asctime)s] {%(filename)s:%(lineno)d} %(levelname)s - %(message)s') handler.setFormatter(formatter) self.__log.addHandler(handler) From 8b1da8909986718e1b1c2495b21b9391285d5b4d Mon Sep 17 00:00:00 2001 From: root Date: Mon, 22 Jul 2024 21:26:06 -0500 Subject: [PATCH 22/24] log level example, per transport level --- config.cfg.example | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config.cfg.example b/config.cfg.example index bdac533..74474c7 100644 --- a/config.cfg.example +++ b/config.cfg.example @@ -2,6 +2,9 @@ log_level = DEBUG [transport.0] #name must be unique, ie: transport.modbus +#logging level for transport +log_level = DEBUG + #rs485 / modbus device #protocol config files are located in protocols/ protocol_version = v0.14 From 88ff1a7243afa46447d54cc92717e3a6fe2002dd Mon Sep 17 00:00:00 2001 From: HotNoob Date: Tue, 30 Jul 2024 20:18:28 -0500 Subject: [PATCH 23/24] python compatibility fix --- classes/protocol_settings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index 7c90ec5..a51982f 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -1,6 +1,7 @@ import csv from dataclasses import dataclass from enum import Enum +from typing import Union from defs.common import strtoint import itertools import json @@ -860,7 +861,7 @@ def process_register_ushort(self, registry : dict[int, int], entry : registry_ma return value - def process_registery(self, registry : dict[int,int] | dict[int,bytes] , map : list[registry_map_entry]) -> dict[str,str]: + def process_registery(self, registry : Union[dict[int, int], dict[int, bytes]] , map : list[registry_map_entry]) -> dict[str,str]: '''process registry into appropriate datatypes and names -- maybe add func for single entry later?''' concatenate_registry : dict = {} From 3bcf70a99728f189aceb1a3c31c57f07a51cfcc0 Mon Sep 17 00:00:00 2001 From: HotNoob Date: Tue, 30 Jul 2024 20:20:29 -0500 Subject: [PATCH 24/24] fix pytest deprecation warnings --- classes/protocol_settings.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/classes/protocol_settings.py b/classes/protocol_settings.py index a51982f..6549109 100644 --- a/classes/protocol_settings.py +++ b/classes/protocol_settings.py @@ -343,7 +343,7 @@ def determine_delimiter(first_row) -> str: if first_row.count(';') < first_row.count(','): delimeter = ',' - first_row = re.sub(r"\s+" + re.escape(delimeter) +"|" + re.escape(delimeter) +"\s+", delimeter, first_row) #trim values + first_row = re.sub(r"\s+" + re.escape(delimeter) +"|" + re.escape(delimeter) +r"\s+", delimeter, first_row) #trim values csvfile = itertools.chain([first_row], csvfile) #add clean header to begining of iterator @@ -379,7 +379,7 @@ def determine_delimiter(first_row) -> str: variable_name = row['variable name'] if row['variable name'] else row['documented name'] variable_name = variable_name = variable_name.strip().lower().replace(' ', '_').replace('__', '_') #clean name - if re.search("[^a-zA-Z0-9\_]", variable_name) : + if re.search(r"[^a-zA-Z0-9\_]", variable_name) : print("WARNING Invalid Name : " + str(variable_name) + " reg: " + str(row['register']) + " doc name: " + str(row['documented name']) + " path: " + str(path)) #convert to float @@ -913,7 +913,7 @@ def validate_registry_entry(self, entry : registry_map_entry, val) -> int: return 0 if entry.data_type == Data_Type.ASCII: - if val and not re.match('[^a-zA-Z0-9\_\-]', val): #validate ascii + if val and not re.match(r'[^a-zA-Z0-9\_\-]', val): #validate ascii if entry.value_regex: #regex validation if re.match(entry.value_regex, val): if entry.concatenate: