diff --git a/goodwe/const.py b/goodwe/const.py index 1cb862a..88f9c4f 100644 --- a/goodwe/const.py +++ b/goodwe/const.py @@ -196,20 +196,20 @@ } DIAG_STATUS_CODES: Dict[int, str] = { - 0: "Battery does not discharge: Battery Voltage Low", - 1: "Battery does not discharge: Battery SOC Low", - 2: "Battery does not discharge: Battery SOC In Back", - 3: "Battery does not discharge: BMS Discharge Disable", - 4: "Battery does not discharge: Discharge Time On", - 5: "Battery does not discharge: Charge Time On", - 6: "Battery does not discharge: Discharge Drive On", + 0: "Battery Voltage Low", + 1: "Battery SOC Low", + 2: "Battery SOC In Back", + 3: "BMS Discharge Disable", + 4: "Discharge Time On", + 5: "Charge Time On", + 6: "Discharge Drive On", 7: "Effect battery discharge: discharge current limited by BMS is low", 8: "Effect battery discharge: discharge current limited on APP setting is low", - 9: "Battery does not discharge: Meter communication Loss", - 10: "Battery does not discharge: Meter Connect Reverse", - 11: "Battery does not discharge: Self Use Load Light", - 12: "Battery does not discharge: EMS Discharge current is zero", - 13: "Battery does not discharge: Discharge BUS High", + 9: "Meter communication Loss", + 10: "Meter Connect Reverse", + 11: "Self Use Load Light", + 12: "EMS Discharge current is zero", + 13: "Discharge BUS High", 14: "Battery does not charge: Battery Disconnect", 15: "Battery does not charge: Battery Overcharge", 16: "Battery does not charge: BMS Over Temperature", diff --git a/goodwe/et.py b/goodwe/et.py index e131ac9..229d8ee 100644 --- a/goodwe/et.py +++ b/goodwe/et.py @@ -82,7 +82,7 @@ class ET(Inverter): Temp("temperature_air", 148, "Inverter Temperature (Air))", Kind.AC), Temp("temperature_module", 150, "Inverter Temperature (Module)"), Temp("temperature", 152, "Inverter Temperature (Radiator)", Kind.AC), - Integer("xx154", 154, "Unknown sensor@154"), + Integer("function_bit", 154, "Function Bit"), Voltage("bus_voltage", 156, "Bus Voltage", None), Voltage("nbus_voltage", 158, "NBus Voltage", None), Voltage("vbattery1", 160, "Battery Voltage", Kind.BAT), # modbus 35180 @@ -236,7 +236,6 @@ def __init__(self, host: str, comm_addr: int = 0, timeout: int = 1, retries: int self._READ_RUNNING_DATA: ProtocolCommand = ModbusReadCommand(self.comm_addr, 0x891c, 0x007d) self._READ_METER_DATA: ProtocolCommand = ModbusReadCommand(self.comm_addr, 0x8ca0, 0x2d) self._READ_BATTERY_INFO: ProtocolCommand = ModbusReadCommand(self.comm_addr, 0x9088, 0x0018) - self._GET_WORK_MODE: ProtocolCommand = ModbusReadCommand(self.comm_addr, 0xb798, 0x0001) self._has_battery: bool = True self._is_single_phase: bool = False self._sensors = self.__all_sensors diff --git a/tests/test_es.py b/tests/test_es.py index 2666add..fb969e2 100644 --- a/tests/test_es.py +++ b/tests/test_es.py @@ -107,7 +107,7 @@ def test_GW5048_EM_runtime_data(self): self.assertSensor('meter_power_factor', 0.01, '', data) self.assertSensor('xx85', 0, '', data) self.assertSensor('xx87', -3, '', data) - self.assertSensor('diagnose_result', 'Battery does not discharge: Discharge Drive On', '', data) + self.assertSensor('diagnose_result', 'Discharge Drive On', '', data) self.assertSensor('e_total_exp', 512.9, 'kWh', data) self.assertSensor('e_total_imp', 33653839.0, 'kWh', data) self.assertSensor('vgrid_uo', 0, 'V', data) @@ -186,7 +186,7 @@ def test_GW5048_EM_no_batt_runtime_data(self): self.assertSensor('meter_power_factor', 0.01, '', data) self.assertSensor('xx85', 0, '', data) self.assertSensor('xx87', -35, '', data) - self.assertSensor('diagnose_result', 'Battery does not discharge: Battery Voltage Low, Battery does not discharge: Battery SOC In Back, Battery does not discharge: Discharge Drive On, Battery does not discharge: Self Use Load Light, Battery does not charge: Battery Disconnect', '', data) + self.assertSensor('diagnose_result', 'Battery Voltage Low, Battery SOC In Back, Discharge Drive On, Self Use Load Light, Battery does not charge: Battery Disconnect', '', data) self.assertSensor('e_total_exp', 512.9, 'kWh', data) self.assertSensor('e_total_imp', 33653889.9, 'kWh', data) self.assertSensor('vgrid_uo', 0, 'V', data) @@ -264,7 +264,7 @@ def test_GW5048D_ES_runtime_data(self): self.assertSensor('meter_power_factor', 0.01, '', data) self.assertSensor('xx85', 0, '', data) self.assertSensor('xx87', 5, '', data) - self.assertSensor('diagnose_result', 'Battery does not discharge: Discharge Drive On, Feed Power Limit, PF Value Set, Real Power Limit', '', data) + self.assertSensor('diagnose_result', 'Discharge Drive On, Feed Power Limit, PF Value Set, Real Power Limit', '', data) self.assertSensor('e_total_exp', 0, 'kWh', data) self.assertSensor('e_total_imp', 0, 'kWh', data) self.assertSensor('vgrid_uo', 0, 'V', data) @@ -342,7 +342,7 @@ def test_GW5000S_BP_runtime_data(self): self.assertSensor('meter_power_factor', 0.01, '', data) self.assertSensor('xx85', 0, '', data) self.assertSensor('xx87', 211, '', data) - self.assertSensor('diagnose_result', 'Battery does not discharge: Charge Time On, Self Use Off', '', data) + self.assertSensor('diagnose_result', 'Charge Time On, Self Use Off', '', data) self.assertSensor('e_total_exp', 538.4, 'kWh', data) self.assertSensor('e_total_imp', 48713267.2, 'kWh', data) self.assertSensor('vgrid_uo', 0, 'V', data) diff --git a/tests/test_et.py b/tests/test_et.py index 8b61e16..39ab9bb 100644 --- a/tests/test_et.py +++ b/tests/test_et.py @@ -114,7 +114,7 @@ def test_GW10K_ET_runtime_data(self): self.assertSensor('temperature_air', 51.0, 'C', data) self.assertSensor('temperature_module', 0, 'C', data) self.assertSensor('temperature', 58.7, 'C', data) - self.assertSensor('xx154', 0, '', data) + self.assertSensor('function_bit', 0, '', data) self.assertSensor('bus_voltage', 803.6, 'V', data) self.assertSensor('nbus_voltage', 401.8, 'V', data) self.assertSensor('vbattery1', 254.2, 'V', data) @@ -144,7 +144,7 @@ def test_GW10K_ET_runtime_data(self): self.assertSensor("e_bat_discharge_total", 2442.1, 'kWh', data) self.assertSensor("e_bat_discharge_day", 2.9, 'kWh', data) self.assertSensor('diagnose_result', - 'Battery does not discharge: Self Use Load Light, Feed Power Limit, PF Value Set, Real Power Limit', + 'Self Use Load Light, Feed Power Limit, PF Value Set, Real Power Limit', '', data) self.assertSensor('house_consumption', 968, 'W', data) self.assertSensor('battery_bms', 255, '', data) @@ -270,7 +270,7 @@ def test_GW6000_EH_runtime_data(self): self.assertSensor('temperature_air', 60.4, 'C', data) self.assertSensor('temperature_module', 3276.7, 'C', data) self.assertSensor('temperature', 38.6, 'C', data) - self.assertSensor('xx154', 256, '', data) + self.assertSensor('function_bit', 256, '', data) self.assertSensor('bus_voltage', 380.6, 'V', data) self.assertSensor('nbus_voltage', -0.1, 'V', data) self.assertSensor('vbattery1', 0.0, 'V', data) @@ -300,6 +300,6 @@ def test_GW6000_EH_runtime_data(self): self.assertSensor("e_bat_discharge_total", 0.0, 'kWh', data) self.assertSensor("e_bat_discharge_day", 0.0, 'kWh', data) self.assertSensor('diagnose_result', - 'Battery does not discharge: Battery Voltage Low, Battery does not discharge: Battery SOC Low, Battery does not discharge: Battery SOC In Back, Battery does not discharge: Discharge Drive On, Battery does not discharge: Self Use Load Light, Battery does not charge: Battery Disconnect, Self Use Off, Feed Power Limit, PF Value Set, Real Power Limit', + 'Battery Voltage Low, Battery SOC Low, Battery SOC In Back, Discharge Drive On, Self Use Load Light, Battery does not charge: Battery Disconnect, Self Use Off, Feed Power Limit, PF Value Set, Real Power Limit', '', data) self.assertSensor('house_consumption', 1711, 'W', data)