@@ -15,7 +15,7 @@ class EtMock(TestCase, ET):
15
15
def __init__ (self , methodName = 'runTest' ):
16
16
TestCase .__init__ (self , methodName )
17
17
ET .__init__ (self , "localhost" , 8899 )
18
- self .sensor_map = {s .id_ : s . unit for s in self .sensors ()}
18
+ self .sensor_map = {s .id_ : s for s in self .sensors ()}
19
19
self ._mock_responses = {}
20
20
self ._list_of_requests = []
21
21
@@ -41,10 +41,11 @@ async def _read_from_socket(self, command: ProtocolCommand) -> ProtocolResponse:
41
41
self ._list_of_requests .append (command .request )
42
42
return ProtocolResponse (bytes .fromhex ("aa55f700010203040506070809" ), command )
43
43
44
- def assertSensor (self , sensor , expected_value , expected_unit , data ):
45
- self .assertEqual (expected_value , data .get (sensor ))
46
- self .assertEqual (expected_unit , self .sensor_map .get (sensor ))
47
- self .sensor_map .pop (sensor )
44
+ def assertSensor (self , sensor_name , expected_value , expected_unit , data ):
45
+ self .assertEqual (expected_value , data .get (sensor_name ))
46
+ sensor = self .sensor_map .get (sensor_name );
47
+ self .assertEqual (expected_unit , sensor .unit )
48
+ self .sensor_map .pop (sensor_name )
48
49
49
50
@classmethod
50
51
def setUpClass (cls ):
@@ -81,13 +82,15 @@ def test_GW10K_ET_device_info(self):
81
82
def test_GW10K_ET_runtime_data (self ):
82
83
# Reset sensors
83
84
self .loop .run_until_complete (self .read_device_info ())
84
- self .sensor_map = {s .id_ : s . unit for s in self .sensors ()}
85
+ self .sensor_map = {s .id_ : s for s in self .sensors ()}
85
86
86
87
data = self .loop .run_until_complete (self .read_runtime_data ())
87
88
self .assertEqual (145 , len (data ))
88
89
90
+ self .assertEqual (36015 , self .sensor_map .get ("meter_e_total_exp" ).offset )
91
+
89
92
# for sensor in self.sensors():
90
- # print(f"self.assertSensor('{sensor.id_}', {data[sensor.id_]}, '{self.sensor_map.get(sensor.id_)}', data)")
93
+ # print(f"self.assertSensor('{sensor.id_}', {data[sensor.id_]}, '{self.sensor_map.get(sensor.id_).unit }', data)")
91
94
92
95
self .assertSensor ('timestamp' , datetime .strptime ('2021-08-22 11:11:12' , '%Y-%m-%d %H:%M:%S' ), '' , data )
93
96
self .assertSensor ('vpv1' , 332.6 , 'V' , data )
@@ -386,7 +389,7 @@ def test_GW10K_ET_setting_fw1023(self):
386
389
def test_GW10K_ET_runtime_data_fw1023 (self ):
387
390
# Reset sensors
388
391
self .loop .run_until_complete (self .read_device_info ())
389
- self .sensor_map = {s .id_ : s . unit for s in self .sensors ()}
392
+ self .sensor_map = {s .id_ : s for s in self .sensors ()}
390
393
391
394
data = self .loop .run_until_complete (self .read_runtime_data ())
392
395
self .assertEqual (145 , len (data ))
@@ -596,7 +599,7 @@ def test_GEH10_1U_10_device_info(self):
596
599
def test_GEH10_1U_10_runtime_data (self ):
597
600
# Reset sensors
598
601
self .loop .run_until_complete (self .read_device_info ())
599
- self .sensor_map = {s .id_ : s . unit for s in self .sensors ()}
602
+ self .sensor_map = {s .id_ : s for s in self .sensors ()}
600
603
601
604
data = self .loop .run_until_complete (self .read_runtime_data ())
602
605
self .assertEqual (125 , len (data ))
@@ -760,6 +763,7 @@ def __init__(self, methodName='runTest'):
760
763
EtMock .__init__ (self , methodName )
761
764
self .mock_response (self ._READ_DEVICE_VERSION_INFO , 'GW25K-ET_device_info.hex' )
762
765
self .mock_response (self ._READ_RUNNING_DATA , 'GW25K-ET_running_data.hex' )
766
+ self .mock_response (self ._READ_METER_DATA_EXTENDED2 , ILLEGAL_DATA_ADDRESS )
763
767
self .mock_response (self ._READ_METER_DATA_EXTENDED , 'GW25K-ET_meter_data.hex' )
764
768
self .mock_response (self ._READ_BATTERY_INFO , 'GW25K-ET_battery_info.hex' )
765
769
self .mock_response (self ._READ_MPPT_DATA , 'GW25K-ET_mppt_data.hex' )
@@ -782,11 +786,14 @@ def test_GW25K_ET_device_info(self):
782
786
def test_GW25K_ET_runtime_data (self ):
783
787
# Reset sensors
784
788
self .loop .run_until_complete (self .read_device_info ())
785
- self .sensor_map = {s .id_ : s .unit for s in self .sensors ()}
786
789
787
790
data = self .loop .run_until_complete (self .read_runtime_data ())
788
791
self .assertEqual (237 , len (data ))
789
792
793
+ self .sensor_map = {s .id_ : s for s in self .sensors ()}
794
+
795
+ # self.assertEqual(36104, self.sensor_map.get("meter_e_total_exp").offset)
796
+
790
797
self .assertSensor ('timestamp' , datetime .strptime ('2023-12-03 14:07:07' , '%Y-%m-%d %H:%M:%S' ), '' , data )
791
798
self .assertSensor ('vpv1' , 737.9 , 'V' , data )
792
799
self .assertSensor ('ipv1' , 1.4 , 'A' , data )
@@ -1036,6 +1043,7 @@ def __init__(self, methodName='runTest'):
1036
1043
EtMock .__init__ (self , methodName )
1037
1044
self .mock_response (self ._READ_DEVICE_VERSION_INFO , 'GW29K9-ET_device_info.hex' )
1038
1045
self .mock_response (self ._READ_RUNNING_DATA , 'GW29K9-ET_running_data.hex' )
1046
+ self .mock_response (self ._READ_METER_DATA_EXTENDED2 , ILLEGAL_DATA_ADDRESS )
1039
1047
self .mock_response (self ._READ_METER_DATA_EXTENDED , 'GW29K9-ET_meter_data.hex' )
1040
1048
self .mock_response (self ._READ_BATTERY_INFO , 'GW29K9-ET_battery_info.hex' )
1041
1049
self .mock_response (self ._READ_BATTERY2_INFO , 'GW29K9-ET_battery2_info.hex' )
@@ -1059,11 +1067,12 @@ def test_GW29K9_ET_device_info(self):
1059
1067
def test_GW29K9_ET_runtime_data (self ):
1060
1068
# Reset sensors
1061
1069
self .loop .run_until_complete (self .read_device_info ())
1062
- self .sensor_map = {s .id_ : s .unit for s in self .sensors ()}
1063
1070
1064
1071
data = self .loop .run_until_complete (self .read_runtime_data ())
1065
1072
self .assertEqual (211 , len (data ))
1066
1073
1074
+ self .sensor_map = {s .id_ : s for s in self .sensors ()}
1075
+
1067
1076
self .assertSensor ('timestamp' , datetime .strptime ('2024-01-17 14:49:14' , '%Y-%m-%d %H:%M:%S' ), '' , data )
1068
1077
self .assertSensor ('vpv1' , 682.9 , 'V' , data )
1069
1078
self .assertSensor ('ipv1' , 1.5 , 'A' , data )
@@ -1206,32 +1215,6 @@ def test_GW29K9_ET_runtime_data(self):
1206
1215
self .assertSensor ('meter_current1' , 4.6 , 'A' , data )
1207
1216
self .assertSensor ('meter_current2' , 6.0 , 'A' , data )
1208
1217
self .assertSensor ('meter_current3' , 13.6 , 'A' , data )
1209
- self .assertSensor ('battery_bms' , None , '' , data )
1210
- self .assertSensor ('battery_index' , None , '' , data )
1211
- self .assertSensor ('battery_status' , None , '' , data )
1212
- self .assertSensor ('battery_temperature' , None , 'C' , data )
1213
- self .assertSensor ('battery_charge_limit' , None , 'A' , data )
1214
- self .assertSensor ('battery_discharge_limit' , None , 'A' , data )
1215
- self .assertSensor ('battery_error_l' , None , '' , data )
1216
- self .assertSensor ('battery_soc' , None , '%' , data )
1217
- self .assertSensor ('battery_soh' , None , '%' , data )
1218
- self .assertSensor ('battery_modules' , None , '' , data )
1219
- self .assertSensor ('battery_warning_l' , None , '' , data )
1220
- self .assertSensor ('battery_protocol' , None , '' , data )
1221
- self .assertSensor ('battery_error_h' , None , '' , data )
1222
- self .assertSensor ('battery_error' , None , '' , data )
1223
- self .assertSensor ('battery_warning_h' , None , '' , data )
1224
- self .assertSensor ('battery_warning' , None , '' , data )
1225
- self .assertSensor ('battery_sw_version' , None , '' , data )
1226
- self .assertSensor ('battery_hw_version' , None , '' , data )
1227
- self .assertSensor ('battery_max_cell_temp_id' , None , '' , data )
1228
- self .assertSensor ('battery_min_cell_temp_id' , None , '' , data )
1229
- self .assertSensor ('battery_max_cell_voltage_id' , None , '' , data )
1230
- self .assertSensor ('battery_min_cell_voltage_id' , None , '' , data )
1231
- self .assertSensor ('battery_max_cell_temp' , None , 'C' , data )
1232
- self .assertSensor ('battery_min_cell_temp' , None , 'C' , data )
1233
- self .assertSensor ('battery_max_cell_voltage' , None , 'V' , data )
1234
- self .assertSensor ('battery_min_cell_voltage' , None , 'V' , data )
1235
1218
self .assertSensor ('battery2_status' , 0 , '' , data )
1236
1219
self .assertSensor ('battery2_temperature' , 0.0 , 'C' , data )
1237
1220
self .assertSensor ('battery2_charge_limit' , 0 , 'A' , data )
0 commit comments