diff --git a/hoymiles_wifi/dtu.py b/hoymiles_wifi/dtu.py index 812263d..6eedaea 100644 --- a/hoymiles_wifi/dtu.py +++ b/hoymiles_wifi/dtu.py @@ -43,7 +43,6 @@ from hoymiles_wifi.protobuf import ( InfomationData_pb2, NetworkInfo_pb2, RealData_pb2, - RealDataHMS_pb2, RealDataNew_pb2, SetConfig_pb2, ) @@ -93,6 +92,13 @@ class DTU: """Get real data.""" request = RealData_pb2.RealDataResDTO() + request.time_ymd_hms = ( + datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8") + ) + request.time = int(time.time()) + request.offset = OFFSET + request.error_code = 0 + command = CMD_REAL_DATA_RES_DTO return await self.async_send_request( command, request, RealData_pb2.RealDataReqDTO diff --git a/hoymiles_wifi/protobuf/RealData.proto b/hoymiles_wifi/protobuf/RealData.proto index a37988f..89c41eb 100755 --- a/hoymiles_wifi/protobuf/RealData.proto +++ b/hoymiles_wifi/protobuf/RealData.proto @@ -1,77 +1,78 @@ syntax = "proto3"; message MeterDataMO { - int32 device_kind = 1; // Device kind identifier - int64 meter_sn = 2; // Meter serial number - int32 meter_total_power = 3; // Total power by the meter (Watts) - int32 meter_phase_A_power = 4; // Power in phase A (Watts) - int32 meter_phase_B_power = 5; // Power in phase B (Watts) - int32 meter_phase_C_power = 6; // Power in phase C (Watts) - int32 meter_factor = 7; // Meter factor - int32 meter_total_energy = 8; // Total energy produced by the meter (Watt-hours) - int32 meter_phase_A_energy = 9; // Energy produced in phase A (Watt-hours) - int32 meter_phase_B_energy = 10;// Energy produced in phase B (Watt-hours) - int32 meter_phase_C_energy = 11;// Energy produced in phase C (Watt-hours) - int32 meter_total_consumed = 12;// Total energy consumed (Watt-hours) - int32 meter_phase_A_consumed = 13;// Energy consumed in phase A (Watt-hours) - int32 meter_phase_B_consumed = 14;// Energy consumed in phase B (Watt-hours) - int32 meter_phase_C_consumed = 15;// Energy consumed in phase C (Watt-hours) - int32 meter_fault = 16; // Meter fault code + int32 device_kind = 1; // Device kind identifier + int64 meter_sn = 2; // Meter serial number + int32 meter_total_power = 3; // Total power by the meter (Watts) + int32 meter_phase_A_power = 4; // Power in phase A (Watts) + int32 meter_phase_B_power = 5; // Power in phase B (Watts) + int32 meter_phase_C_power = 6; // Power in phase C (Watts) + int32 meter_factor = 7; // Meter factor + int32 meter_total_energy = + 8; // Total energy produced by the meter (Watt-hours) + int32 meter_phase_A_energy = 9; // Energy produced in phase A (Watt-hours) + int32 meter_phase_B_energy = 10; // Energy produced in phase B (Watt-hours) + int32 meter_phase_C_energy = 11; // Energy produced in phase C (Watt-hours) + int32 meter_total_consumed = 12; // Total energy consumed (Watt-hours) + int32 meter_phase_A_consumed = 13; // Energy consumed in phase A (Watt-hours) + int32 meter_phase_B_consumed = 14; // Energy consumed in phase B (Watt-hours) + int32 meter_phase_C_consumed = 15; // Energy consumed in phase C (Watt-hours) + int32 meter_fault = 16; // Meter fault code } message RpDataMO { - int64 rp_sn = 1; // RP serial number - int32 rp_signal = 2; // RP signal strength - int32 rp_channel = 3; // RP channel number - int32 rp_link_nub = 4; // RP link number - int32 rp_link_status = 5; // RP link status + int64 rp_sn = 1; // RP serial number + int32 rp_signal = 2; // RP signal strength + int32 rp_channel = 3; // RP channel number + int32 rp_link_nub = 4; // RP link number + int32 rp_link_status = 5; // RP link status } message PvDataMO { - int64 pv_sn = 1; // PV serial number - int32 pv_port = 2; // PV port number - int32 pv_vol = 3; // PV voltage (Volts) - int32 pv_cur = 4; // PV current (Amperes) - int32 pv_power = 5; // PV power (Watts) - int32 pv_energy_total = 6; // Total energy generated by PV (Watt-hours) - int32 grid_vol = 7; // Grid voltage (Volts) - int32 grid_vol_max = 8; // Maximum grid voltage (Volts) - int32 grid_freq = 9; // Grid frequency (Hertz) - int32 grid_p = 10; // Grid active power (Watts) - int32 grid_q = 11; // Grid reactive power (VAR) - int32 grid_i = 12; // Grid current (Amperes) - int32 grid_pf = 13; // Grid power factor - int32 pv_temp = 14; // PV temperature - int32 pv_run_status = 15; // PV running status - int32 pv_fault_num = 16; // PV fault number - int32 pv_fault_cnt = 17; // PV fault count - int32 pv_warning_cnt = 18; // PV warning count - int32 pv_link_status = 19; // PV link status - int32 pv_send_power = 20; // PV send power (Watts) - int32 pv_receive_power = 21; // PV received power (Watts) - int32 pv_time = 22; // PV time - int32 pv_energy = 23; // PV energy (Watt-hours) - int32 mi_signal = 24; // Modulation index signal + int64 pv_sn = 1; // PV serial number + int32 pv_port = 2; // PV port number + int32 pv_vol = 3; // PV voltage (Volts) + int32 pv_cur = 4; // PV current (Amperes) + int32 pv_power = 5; // PV power (Watts) + int32 pv_energy_total = 6; // Total energy generated by PV (Watt-hours) + int32 grid_vol = 7; // Grid voltage (Volts) + int32 grid_vol_max = 8; // Maximum grid voltage (Volts) + int32 grid_freq = 9; // Grid frequency (Hertz) + int32 grid_p = 10; // Grid active power (Watts) + int32 grid_q = 11; // Grid reactive power (VAR) + int32 grid_i = 12; // Grid current (Amperes) + int32 grid_pf = 13; // Grid power factor + int32 pv_temp = 14; // PV temperature + int32 pv_run_status = 15; // PV running status + int32 pv_fault_num = 16; // PV fault number + int32 pv_fault_cnt = 17; // PV fault count + int32 pv_warning_cnt = 18; // PV warning count + int32 pv_link_status = 19; // PV link status + int32 pv_send_power = 20; // PV send power (Watts) + int32 pv_receive_power = 21; // PV received power (Watts) + int32 pv_time = 22; // PV time + int32 pv_energy = 23; // PV energy (Watt-hours) + int32 mi_signal = 24; // Modulation index signal } message RealDataReqDTO { - string dtu_sn = 1; // DTU serial number - int32 timestamp = 2; // Timestamp of the data - int32 device_number = 3; // Device number - int32 pv_number = 4; // PV number - int32 package_number = 5; // Package number - int32 current_package = 6; // Current package number - int32 csq = 7; // Carrier Signal Quality (CSQ) + string dtu_sn = 1; // DTU serial number + int32 timestamp = 2; // Timestamp of the data + int32 device_number = 3; // Device number + int32 pv_number = 4; // PV number + int32 package_number = 5; // Package number + int32 current_package = 6; // Current package number + int32 csq = 7; // Carrier Signal Quality (CSQ) repeated MeterDataMO meter_data = 8; // Meter data array repeated RpDataMO rp_data = 9; // RpDataMO data array - repeated PvDataMO pv_data = 10; // PvDataMO data array - int32 version = 11; // Version number + repeated PvDataMO pv_data = 10; // PvDataMO data array + int32 version = 11; // Version number } message RealDataResDTO { - string timestamp_ymd_hms = 1; // Timestamp in the format YMD_HMS - int32 current_package = 2; // Current package number - int32 error_code = 3; // Error code indicator - int32 offset = 4; // Offset value - int32 timestamp = 5; // Timestamp value + string time_ymd_hms = 1; // Timestamp in the format YMD_HMS + int32 package_now = 2; // Package now + int32 error_code = 3; // Error code indicator + int32 offset = 4; // Offset value + int32 time = 5; // Timestamp value } diff --git a/hoymiles_wifi/protobuf/RealData_pb2.py b/hoymiles_wifi/protobuf/RealData_pb2.py index 5652a3b..cdbff51 100644 --- a/hoymiles_wifi/protobuf/RealData_pb2.py +++ b/hoymiles_wifi/protobuf/RealData_pb2.py @@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eRealData.proto\"\xc5\x03\n\x0bMeterDataMO\x12\x13\n\x0b\x64\x65vice_kind\x18\x01 \x01(\x05\x12\x10\n\x08meter_sn\x18\x02 \x01(\x03\x12\x19\n\x11meter_total_power\x18\x03 \x01(\x05\x12\x1b\n\x13meter_phase_A_power\x18\x04 \x01(\x05\x12\x1b\n\x13meter_phase_B_power\x18\x05 \x01(\x05\x12\x1b\n\x13meter_phase_C_power\x18\x06 \x01(\x05\x12\x14\n\x0cmeter_factor\x18\x07 \x01(\x05\x12\x1a\n\x12meter_total_energy\x18\x08 \x01(\x05\x12\x1c\n\x14meter_phase_A_energy\x18\t \x01(\x05\x12\x1c\n\x14meter_phase_B_energy\x18\n \x01(\x05\x12\x1c\n\x14meter_phase_C_energy\x18\x0b \x01(\x05\x12\x1c\n\x14meter_total_consumed\x18\x0c \x01(\x05\x12\x1e\n\x16meter_phase_A_consumed\x18\r \x01(\x05\x12\x1e\n\x16meter_phase_B_consumed\x18\x0e \x01(\x05\x12\x1e\n\x16meter_phase_C_consumed\x18\x0f \x01(\x05\x12\x13\n\x0bmeter_fault\x18\x10 \x01(\x05\"m\n\x08RpDataMO\x12\r\n\x05rp_sn\x18\x01 \x01(\x03\x12\x11\n\trp_signal\x18\x02 \x01(\x05\x12\x12\n\nrp_channel\x18\x03 \x01(\x05\x12\x13\n\x0brp_link_nub\x18\x04 \x01(\x05\x12\x16\n\x0erp_link_status\x18\x05 \x01(\x05\"\xdd\x03\n\x08PvDataMO\x12\r\n\x05pv_sn\x18\x01 \x01(\x03\x12\x0f\n\x07pv_port\x18\x02 \x01(\x05\x12\x0e\n\x06pv_vol\x18\x03 \x01(\x05\x12\x0e\n\x06pv_cur\x18\x04 \x01(\x05\x12\x10\n\x08pv_power\x18\x05 \x01(\x05\x12\x17\n\x0fpv_energy_total\x18\x06 \x01(\x05\x12\x10\n\x08grid_vol\x18\x07 \x01(\x05\x12\x14\n\x0cgrid_vol_max\x18\x08 \x01(\x05\x12\x11\n\tgrid_freq\x18\t \x01(\x05\x12\x0e\n\x06grid_p\x18\n \x01(\x05\x12\x0e\n\x06grid_q\x18\x0b \x01(\x05\x12\x0e\n\x06grid_i\x18\x0c \x01(\x05\x12\x0f\n\x07grid_pf\x18\r \x01(\x05\x12\x0f\n\x07pv_temp\x18\x0e \x01(\x05\x12\x15\n\rpv_run_status\x18\x0f \x01(\x05\x12\x14\n\x0cpv_fault_num\x18\x10 \x01(\x05\x12\x14\n\x0cpv_fault_cnt\x18\x11 \x01(\x05\x12\x16\n\x0epv_warning_cnt\x18\x12 \x01(\x05\x12\x16\n\x0epv_link_status\x18\x13 \x01(\x05\x12\x15\n\rpv_send_power\x18\x14 \x01(\x05\x12\x18\n\x10pv_receive_power\x18\x15 \x01(\x05\x12\x0f\n\x07pv_time\x18\x16 \x01(\x05\x12\x11\n\tpv_energy\x18\x17 \x01(\x05\x12\x11\n\tmi_signal\x18\x18 \x01(\x05\"\x86\x02\n\x0eRealDataReqDTO\x12\x0e\n\x06\x64tu_sn\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x05\x12\x15\n\rdevice_number\x18\x03 \x01(\x05\x12\x11\n\tpv_number\x18\x04 \x01(\x05\x12\x16\n\x0epackage_number\x18\x05 \x01(\x05\x12\x17\n\x0f\x63urrent_package\x18\x06 \x01(\x05\x12\x0b\n\x03\x63sq\x18\x07 \x01(\x05\x12 \n\nmeter_data\x18\x08 \x03(\x0b\x32\x0c.MeterDataMO\x12\x1a\n\x07rp_data\x18\t \x03(\x0b\x32\t.RpDataMO\x12\x1a\n\x07pv_data\x18\n \x03(\x0b\x32\t.PvDataMO\x12\x0f\n\x07version\x18\x0b \x01(\x05\"{\n\x0eRealDataResDTO\x12\x19\n\x11timestamp_ymd_hms\x18\x01 \x01(\t\x12\x17\n\x0f\x63urrent_package\x18\x02 \x01(\x05\x12\x12\n\nerror_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x11\n\ttimestamp\x18\x05 \x01(\x05\x62\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eRealData.proto\"\xc5\x03\n\x0bMeterDataMO\x12\x13\n\x0b\x64\x65vice_kind\x18\x01 \x01(\x05\x12\x10\n\x08meter_sn\x18\x02 \x01(\x03\x12\x19\n\x11meter_total_power\x18\x03 \x01(\x05\x12\x1b\n\x13meter_phase_A_power\x18\x04 \x01(\x05\x12\x1b\n\x13meter_phase_B_power\x18\x05 \x01(\x05\x12\x1b\n\x13meter_phase_C_power\x18\x06 \x01(\x05\x12\x14\n\x0cmeter_factor\x18\x07 \x01(\x05\x12\x1a\n\x12meter_total_energy\x18\x08 \x01(\x05\x12\x1c\n\x14meter_phase_A_energy\x18\t \x01(\x05\x12\x1c\n\x14meter_phase_B_energy\x18\n \x01(\x05\x12\x1c\n\x14meter_phase_C_energy\x18\x0b \x01(\x05\x12\x1c\n\x14meter_total_consumed\x18\x0c \x01(\x05\x12\x1e\n\x16meter_phase_A_consumed\x18\r \x01(\x05\x12\x1e\n\x16meter_phase_B_consumed\x18\x0e \x01(\x05\x12\x1e\n\x16meter_phase_C_consumed\x18\x0f \x01(\x05\x12\x13\n\x0bmeter_fault\x18\x10 \x01(\x05\"m\n\x08RpDataMO\x12\r\n\x05rp_sn\x18\x01 \x01(\x03\x12\x11\n\trp_signal\x18\x02 \x01(\x05\x12\x12\n\nrp_channel\x18\x03 \x01(\x05\x12\x13\n\x0brp_link_nub\x18\x04 \x01(\x05\x12\x16\n\x0erp_link_status\x18\x05 \x01(\x05\"\xdd\x03\n\x08PvDataMO\x12\r\n\x05pv_sn\x18\x01 \x01(\x03\x12\x0f\n\x07pv_port\x18\x02 \x01(\x05\x12\x0e\n\x06pv_vol\x18\x03 \x01(\x05\x12\x0e\n\x06pv_cur\x18\x04 \x01(\x05\x12\x10\n\x08pv_power\x18\x05 \x01(\x05\x12\x17\n\x0fpv_energy_total\x18\x06 \x01(\x05\x12\x10\n\x08grid_vol\x18\x07 \x01(\x05\x12\x14\n\x0cgrid_vol_max\x18\x08 \x01(\x05\x12\x11\n\tgrid_freq\x18\t \x01(\x05\x12\x0e\n\x06grid_p\x18\n \x01(\x05\x12\x0e\n\x06grid_q\x18\x0b \x01(\x05\x12\x0e\n\x06grid_i\x18\x0c \x01(\x05\x12\x0f\n\x07grid_pf\x18\r \x01(\x05\x12\x0f\n\x07pv_temp\x18\x0e \x01(\x05\x12\x15\n\rpv_run_status\x18\x0f \x01(\x05\x12\x14\n\x0cpv_fault_num\x18\x10 \x01(\x05\x12\x14\n\x0cpv_fault_cnt\x18\x11 \x01(\x05\x12\x16\n\x0epv_warning_cnt\x18\x12 \x01(\x05\x12\x16\n\x0epv_link_status\x18\x13 \x01(\x05\x12\x15\n\rpv_send_power\x18\x14 \x01(\x05\x12\x18\n\x10pv_receive_power\x18\x15 \x01(\x05\x12\x0f\n\x07pv_time\x18\x16 \x01(\x05\x12\x11\n\tpv_energy\x18\x17 \x01(\x05\x12\x11\n\tmi_signal\x18\x18 \x01(\x05\"\x86\x02\n\x0eRealDataReqDTO\x12\x0e\n\x06\x64tu_sn\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x05\x12\x15\n\rdevice_number\x18\x03 \x01(\x05\x12\x11\n\tpv_number\x18\x04 \x01(\x05\x12\x16\n\x0epackage_number\x18\x05 \x01(\x05\x12\x17\n\x0f\x63urrent_package\x18\x06 \x01(\x05\x12\x0b\n\x03\x63sq\x18\x07 \x01(\x05\x12 \n\nmeter_data\x18\x08 \x03(\x0b\x32\x0c.MeterDataMO\x12\x1a\n\x07rp_data\x18\t \x03(\x0b\x32\t.RpDataMO\x12\x1a\n\x07pv_data\x18\n \x03(\x0b\x32\t.PvDataMO\x12\x0f\n\x07version\x18\x0b \x01(\x05\"d\n\x0eRealDataResDTO\x12\x14\n\x0ctime_ymd_hms\x18\x01 \x01(\t\x12\n\n\x02\x63p\x18\x02 \x01(\x05\x12\x12\n\nerror_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\x62\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -30,5 +30,5 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['_REALDATAREQDTO']._serialized_start=1066 _globals['_REALDATAREQDTO']._serialized_end=1328 _globals['_REALDATARESDTO']._serialized_start=1330 - _globals['_REALDATARESDTO']._serialized_end=1453 + _globals['_REALDATARESDTO']._serialized_end=1430 # @@protoc_insertion_point(module_scope)