removed real_data_hms request since it is covered by real_data_new

This commit is contained in:
suaveolent 2024-03-18 09:22:00 +01:00
parent 87b709439b
commit 322ab070fc
10 changed files with 139 additions and 231 deletions

View File

@ -1,7 +1,9 @@
"""Init file for hoymiles_wifi package."""
import logging
import os
logging.basicConfig(level=logging.INFO)
LOGLEVEL = os.environ.get("LOGLEVEL", "INFO").upper()
logging.basicConfig(level=LOGLEVEL)
logger = logging.getLogger(__name__)

View File

@ -29,7 +29,6 @@ from hoymiles_wifi.protobuf import (
InfomationData_pb2,
NetworkInfo_pb2,
RealData_pb2,
RealDataHMS_pb2,
RealDataNew_pb2,
)
@ -71,14 +70,6 @@ async def async_get_real_data_new(
return await dtu.async_get_real_data_new()
async def async_get_real_data_hms(
dtu: DTU,
) -> RealDataHMS_pb2.RealDataHMSResDTO | None:
"""Get real data from the inverter asynchronously."""
return await dtu.async_get_real_data_hms()
async def async_get_real_data(dtu: DTU) -> RealData_pb2.RealDataResDTO | None:
"""Get real data from the inverter asynchronously."""
@ -300,7 +291,7 @@ def print_invalid_command(command: str) -> None:
async def main() -> None:
"""Execute the main function for the hoymiles_wifi package."""
parser = argparse.ArgumentParser(description="Hoymiles HMS Monitoring")
parser = argparse.ArgumentParser(description="Hoymiles DTU Monitoring")
parser.add_argument(
"--host", type=str, required=True, help="IP address or hostname of the DTU"
)
@ -315,7 +306,6 @@ async def main() -> None:
type=str,
choices=[
"get-real-data-new",
"get-real-data-hms",
"get-real-data",
"get-config",
"network-info",
@ -342,7 +332,6 @@ async def main() -> None:
# Execute the specified command using a switch case
switch = {
"get-real-data-new": async_get_real_data_new,
"get-real-data-hms": async_get_real_data_hms,
"get-real-data": async_get_real_data,
"get-config": async_get_config,
"network-info": async_network_info,

View File

@ -114,3 +114,4 @@ DTU_FIRMWARE_URL_00_01_11 = (
)
MAX_POWER_LIMIT = 100
OFFSET = 28800

View File

@ -32,6 +32,7 @@ from hoymiles_wifi.const import (
DEV_DTU,
DTU_FIRMWARE_URL_00_01_11,
DTU_PORT,
OFFSET,
)
from hoymiles_wifi.protobuf import (
AppGetHistPower_pb2,
@ -88,15 +89,6 @@ class DTU:
self.state = new_state
logger.debug(f"DTU is {new_state}")
async def async_get_real_data_hms(self) -> RealDataHMS_pb2.HMSStateResponse | None:
"""Get real data HMS."""
request = RealDataHMS_pb2.HMSRealDataResDTO()
command = CMD_REAL_DATA_RES_DTO
return await self.async_send_request(
command, request, RealDataHMS_pb2.HMSStateResponse
)
async def async_get_real_data(self) -> RealData_pb2.RealDataResDTO | None:
"""Get real data."""
@ -113,7 +105,7 @@ class DTU:
request.time_ymd_hms = (
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
)
request.offset = 28800
request.offset = OFFSET
request.time = int(time.time())
command = CMD_REAL_RES_DTO
return await self.async_send_request(
@ -124,7 +116,7 @@ class DTU:
"""Get config."""
request = GetConfig_pb2.GetConfigResDTO()
request.offset = 28800
request.offset = OFFSET
request.time = int(time.time()) - 60
command = CMD_GET_CONFIG
return await self.async_send_request(
@ -137,7 +129,7 @@ class DTU:
"""Get network info."""
request = NetworkInfo_pb2.NetworkInfoResDTO()
request.offset = 28800
request.offset = OFFSET
request.time = int(time.time())
command = CMD_NETWORK_INFO_RES
return await self.async_send_request(
@ -152,7 +144,7 @@ class DTU:
request.time_ymd_hms = (
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
)
request.offset = 28800
request.offset = OFFSET
request.time = int(time.time())
command = CMD_APP_INFO_DATA_RES_DTO
return await self.async_send_request(
@ -165,7 +157,7 @@ class DTU:
"""Get historical power."""
request = AppGetHistPower_pb2.AppGetHistPowerResDTO()
request.offset = 28800
request.offset = OFFSET
request.requested_time = int(time.time())
command = CMD_APP_GET_HIST_POWER_RES
return await self.async_send_request(
@ -212,7 +204,7 @@ class DTU:
request = initialize_set_config(get_config_req)
request.time = int(time.time())
request.offset = 28800
request.offset = OFFSET
request.app_page = 1
request.netmode_select = NetmodeSelect.WIFI
request.wifi_ssid = ssid.encode("utf-8")
@ -290,7 +282,7 @@ class DTU:
request.time_ymd_hms = (
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
)
request.offset = 28800
request.offset = OFFSET
request.time = int(time.time())
command = CMD_APP_INFO_DATA_RES_DTO
return await self.async_send_request(
@ -304,7 +296,7 @@ class DTU:
request.time_ymd_hms = (
datetime.now().strftime("%Y-%m-%d %H:%M:%S").encode("utf-8")
)
request.offset = 28800
request.offset = OFFSET
request.time = int(time.time())
command = CMD_HB_RES_DTO
@ -364,6 +356,8 @@ class DTU:
crc16_target, read_length = struct.unpack(">HH", buf[6:10])
logger.debug(f"Read length: {read_length}")
if len(buf) != read_length:
raise ValueError("Buffer is incomplete")

View File

@ -67,7 +67,7 @@ class DTUType(Enum):
DTU_LITE = "DTU-Lite"
DTU_PRO = "DTU-PRO"
DTU_PRO_S = "DTU-PRO-S"
DTU_HMS_W = "DTU-HMS-W"
DTUBI = "DTUBI"
DTU_W100_LITE_S = "DTU-W100/DTU-Lite-S"
DTU_W_LITE = "DTU-WLite"
@ -94,25 +94,25 @@ type_mapping = {
0x10D6: DTUType.DTU_LITE,
0x10D7: DTUType.DTU_LITE,
0x4131: DTUType.DTU_LITE,
0x1124: DTUType.DTU_HMS_W,
0x1125: DTUType.DTU_HMS_W,
0x1403: DTUType.DTU_HMS_W,
0x1144: DTUType.DTU_HMS_W,
0x1143: DTUType.DTU_HMS_W,
0x1145: DTUType.DTU_HMS_W,
0x1412: DTUType.DTU_HMS_W,
0x1164: DTUType.DTU_HMS_W,
0x1165: DTUType.DTU_HMS_W,
0x1166: DTUType.DTU_HMS_W,
0x1167: DTUType.DTU_HMS_W,
0x1222: DTUType.DTU_HMS_W,
0x1422: DTUType.DTU_HMS_W,
0x1423: DTUType.DTU_HMS_W,
0x1361: DTUType.DTU_HMS_W,
0x1362: DTUType.DTU_HMS_W,
0x1381: DTUType.DTU_HMS_W,
0x1382: DTUType.DTU_HMS_W,
0x4143: DTUType.DTU_HMS_W,
0x1124: DTUType.DTUBI,
0x1125: DTUType.DTUBI,
0x1403: DTUType.DTUBI,
0x1144: DTUType.DTUBI,
0x1143: DTUType.DTUBI,
0x1145: DTUType.DTUBI,
0x1412: DTUType.DTUBI,
0x1164: DTUType.DTUBI,
0x1165: DTUType.DTUBI,
0x1166: DTUType.DTUBI,
0x1167: DTUType.DTUBI,
0x1222: DTUType.DTUBI,
0x1422: DTUType.DTUBI,
0x1423: DTUType.DTUBI,
0x1361: DTUType.DTUBI,
0x1362: DTUType.DTUBI,
0x1381: DTUType.DTUBI,
0x1382: DTUType.DTUBI,
0x4143: DTUType.DTUBI,
}

View File

@ -1,46 +0,0 @@
syntax = "proto3";
message HMSRealDataResDTO {
string ymd_hms = 1; // YmdHms
int32 cp = 2; // PackageNow
int32 err_code = 3; // ErrCode
int32 offset = 4; // Offset
int32 time = 5; // Time
}
message InverterState {
int64 inv_id = 1;
int32 port_id = 2;
int32 grid_voltage = 3; // [V], factor 0.1
int32 grid_freq = 4; // [Hz], factor 0.1
int32 pv_current_power = 5; // [W], factor 0.1
int32 unknown1 = 7;
int32 unknown2 = 8; // power limit? [%], factor 0.1
int32 temperature = 9; // [C], factor 0.1
int32 unknown3 = 10;
int32 unknown4 = 12;
int32 bit_field = 20; // a guess
}
message PortState {
int64 pv_sn = 1; // serial number
int32 pv_port = 2; // id of the port
int32 pv_vol = 3; // [V], factor 0.1
int32 pv_cur = 4; // [A], factor 0.1
int32 pv_power = 5; // [W], factor 0.1
int32 pv_energy_total = 6; // [Wh]
int32 pv_daily_yield = 7; // [Wh]
int32 bitfield = 8; // bitfield is a guess
}
message HMSStateResponse {
string dtu_sn = 1; // serial
int32 time = 2; // epoch
int32 device_nub = 3;
int32 pv_nub = 4; // repeats cp field from request
int32 package_nub = 5;
repeated InverterState inverter_state = 9;
repeated PortState port_state = 11;
int32 pv_current_power = 12; // [W], factor 0.1
int32 pv_daily_yield = 13; // [Wh]
}

View File

@ -1,32 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: RealDataHMS.proto
# Protobuf Python Version: 4.25.0
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11RealDataHMS.proto\"`\n\x11HMSRealDataResDTO\x12\x0f\n\x07ymd_hms\x18\x01 \x01(\t\x12\n\n\x02\x63p\x18\x02 \x01(\x05\x12\x10\n\x08\x65rr_code\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x0c\n\x04time\x18\x05 \x01(\x05\"\xe3\x01\n\rInverterState\x12\x0e\n\x06inv_id\x18\x01 \x01(\x03\x12\x0f\n\x07port_id\x18\x02 \x01(\x05\x12\x14\n\x0cgrid_voltage\x18\x03 \x01(\x05\x12\x11\n\tgrid_freq\x18\x04 \x01(\x05\x12\x18\n\x10pv_current_power\x18\x05 \x01(\x05\x12\x10\n\x08unknown1\x18\x07 \x01(\x05\x12\x10\n\x08unknown2\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x10\n\x08unknown3\x18\n \x01(\x05\x12\x10\n\x08unknown4\x18\x0c \x01(\x05\x12\x11\n\tbit_field\x18\x14 \x01(\x05\"\xa0\x01\n\tPortState\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\x16\n\x0epv_daily_yield\x18\x07 \x01(\x05\x12\x10\n\x08\x62itfield\x18\x08 \x01(\x05\"\xe3\x01\n\x10HMSStateResponse\x12\x0e\n\x06\x64tu_sn\x18\x01 \x01(\t\x12\x0c\n\x04time\x18\x02 \x01(\x05\x12\x12\n\ndevice_nub\x18\x03 \x01(\x05\x12\x0e\n\x06pv_nub\x18\x04 \x01(\x05\x12\x13\n\x0bpackage_nub\x18\x05 \x01(\x05\x12&\n\x0einverter_state\x18\t \x03(\x0b\x32\x0e.InverterState\x12\x1e\n\nport_state\x18\x0b \x03(\x0b\x32\n.PortState\x12\x18\n\x10pv_current_power\x18\x0c \x01(\x05\x12\x16\n\x0epv_daily_yield\x18\r \x01(\x05\x62\x06proto3')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'RealDataHMS_pb2', _globals)
if _descriptor._USE_C_DESCRIPTORS == False:
DESCRIPTOR._options = None
_globals['_HMSREALDATARESDTO']._serialized_start=21
_globals['_HMSREALDATARESDTO']._serialized_end=117
_globals['_INVERTERSTATE']._serialized_start=120
_globals['_INVERTERSTATE']._serialized_end=347
_globals['_PORTSTATE']._serialized_start=350
_globals['_PORTSTATE']._serialized_end=510
_globals['_HMSSTATERESPONSE']._serialized_start=513
_globals['_HMSSTATERESPONSE']._serialized_end=740
# @@protoc_insertion_point(module_scope)

View File

@ -1,123 +1,123 @@
syntax = "proto3";
message MeterMO {
int32 device_type = 1; // Device type identifier
int64 serial_number = 2; // Serial number of the meter
int32 phase_total_power = 3; // Total power across all phases (Watts)
int32 phase_A_power = 4; // Power in phase A (Watts)
int32 phase_B_power = 5; // Power in phase B (Watts)
int32 phase_C_power = 6; // Power in phase C (Watts)
int32 power_factor_total = 7; // Total power factor
int32 energy_total_power = 8; // Total energy generated (Watt-hours)
int32 energy_phase_A = 9; // Energy generated in phase A (Watt-hours)
int32 energy_phase_B = 10; // Energy generated in phase B (Watt-hours)
int32 energy_phase_C = 11; // Energy generated in phase C (Watt-hours)
int32 energy_total_consumed = 12; // Total energy consumed (Watt-hours)
int32 energy_phase_A_consumed = 13; // Energy consumed in phase A (Watt-hours)
int32 energy_phase_B_consumed = 14; // Energy consumed in phase B (Watt-hours)
int32 energy_phase_C_consumed = 15; // Energy consumed in phase C (Watt-hours)
int32 fault_code = 16; // Fault code indicator
int32 voltage_phase_A = 17; // Voltage in phase A (Volts)
int32 voltage_phase_B = 18; // Voltage in phase B (Volts)
int32 voltage_phase_C = 19; // Voltage in phase C (Volts)
int32 current_phase_A = 20; // Current in phase A (Amperes)
int32 current_phase_B = 21; // Current in phase B (Amperes)
int32 current_phase_C = 22; // Current in phase C (Amperes)
int32 power_factor_phase_A = 23; // Power factor in phase A
int32 power_factor_phase_B = 24; // Power factor in phase B
int32 power_factor_phase_C = 25; // Power factor in phase C
int32 device_type = 1; // Device type identifier
int64 serial_number = 2; // Serial number of the meter
int32 phase_total_power = 3; // Total power across all phases (Watts)
int32 phase_A_power = 4; // Power in phase A (Watts)
int32 phase_B_power = 5; // Power in phase B (Watts)
int32 phase_C_power = 6; // Power in phase C (Watts)
int32 power_factor_total = 7; // Total power factor
int32 energy_total_power = 8; // Total energy generated (Watt-hours)
int32 energy_phase_A = 9; // Energy generated in phase A (Watt-hours)
int32 energy_phase_B = 10; // Energy generated in phase B (Watt-hours)
int32 energy_phase_C = 11; // Energy generated in phase C (Watt-hours)
int32 energy_total_consumed = 12; // Total energy consumed (Watt-hours)
int32 energy_phase_A_consumed = 13; // Energy consumed in phase A (Watt-hours)
int32 energy_phase_B_consumed = 14; // Energy consumed in phase B (Watt-hours)
int32 energy_phase_C_consumed = 15; // Energy consumed in phase C (Watt-hours)
int32 fault_code = 16; // Fault code indicator
int32 voltage_phase_A = 17; // Voltage in phase A (Volts)
int32 voltage_phase_B = 18; // Voltage in phase B (Volts)
int32 voltage_phase_C = 19; // Voltage in phase C (Volts)
int32 current_phase_A = 20; // Current in phase A (Amperes)
int32 current_phase_B = 21; // Current in phase B (Amperes)
int32 current_phase_C = 22; // Current in phase C (Amperes)
int32 power_factor_phase_A = 23; // Power factor in phase A
int32 power_factor_phase_B = 24; // Power factor in phase B
int32 power_factor_phase_C = 25; // Power factor in phase C
}
message RpMO {
int64 serial_number = 1; // Serial number of the device
int32 signature = 2; // Signature value
int32 channel = 3; // Channel number
int32 pv_number = 4; // Photovoltaic (PV) number
int32 link_status = 5; // Link status indicator
int64 serial_number = 1; // Serial number of the device
int32 signature = 2; // Signature value
int32 channel = 3; // Channel number
int32 pv_number = 4; // Photovoltaic (PV) number
int32 link_status = 5; // Link status indicator
}
message RSDMO {
int64 serial_number = 1; // Serial number of the device
int32 firmware_version = 2; // Firmware version
int32 voltage = 3; // Voltage value
int32 power = 4; // Power value
int32 temperature = 5; // Temperature value
int32 warning_number = 6; // Warning number
int32 crc_checksum = 7; // CRC checksum
int32 link_status = 8; // Link status indicator
int64 serial_number = 1; // Serial number of the device
int32 firmware_version = 2; // Firmware version
int32 voltage = 3; // Voltage value
int32 power = 4; // Power value
int32 temperature = 5; // Temperature value
int32 warning_number = 6; // Warning number
int32 crc_checksum = 7; // CRC checksum
int32 link_status = 8; // Link status indicator
}
message SGSMO {
int64 serial_number = 1; // Serial number of the device
int32 firmware_version = 2; // Firmware version
int32 voltage = 3; // Grid voltage (Volts)
int32 frequency = 4; // Grid frequency (Hertz)
int32 active_power = 5; // Active power (Watts)
int32 reactive_power = 6; // Reactive power (VAR)
int32 current = 7; // Current (Amperes)
int32 power_factor = 8; // Power factor
int32 temperature = 9; // Temperature value
int32 warning_number = 10; // Warning number
int32 crc_checksum = 11; // CRC checksum
int32 link_status = 12; // Link status indicator
int32 power_limit = 13; // Power limit (Watts)
int32 modulation_index_signal = 20; // Modulation index signal
int64 serial_number = 1; // Serial number of the device
int32 firmware_version = 2; // Firmware version
int32 voltage = 3; // Grid voltage (Volts)
int32 frequency = 4; // Grid frequency (Hertz)
int32 active_power = 5; // Active power (Watts)
int32 reactive_power = 6; // Reactive power (VAR)
int32 current = 7; // Current (Amperes)
int32 power_factor = 8; // Power factor
int32 temperature = 9; // Temperature value
int32 warning_number = 10; // Warning number
int32 crc_checksum = 11; // CRC checksum
int32 link_status = 12; // Link status indicator
int32 power_limit = 13; // Power limit (Watts)
int32 modulation_index_signal = 20; // Modulation index signal
}
message TGSMO {
int64 serial_number = 1; // Serial number of the device
int32 firmware_version = 2; // Firmware version
int32 voltage_phase_A = 3; // Voltage in phase A (Volts)
int32 voltage_phase_B = 4; // Voltage in phase B (Volts)
int32 voltage_phase_C = 5; // Voltage in phase C (Volts)
int32 voltage_line_AB = 6; // Voltage between lines A and B (Volts)
int32 voltage_line_BC = 7; // Voltage between lines B and C (Volts)
int32 voltage_line_CA = 8; // Voltage between lines C and A (Volts)
int32 frequency = 9; // Frequency (Hertz)
int32 active_power = 10; // Active power (Watts)
int32 reactive_power = 11; // Reactive power (VAR)
int32 current_phase_A = 12; // Current in phase A (Amperes)
int32 current_phase_B = 13; // Current in phase B (Amperes)
int32 current_phase_C = 14; // Current in phase C (Amperes)
int32 power_factor = 15; // Power factor
int32 temperature = 16; // Temperature value
int32 warning_number = 17; // Warning number
int32 crc_checksum = 18; // CRC checksum
int32 link_status = 19; // Link status indicator
int32 modulation_index_signal = 20; // Modulation index signal
int64 serial_number = 1; // Serial number of the device
int32 firmware_version = 2; // Firmware version
int32 voltage_phase_A = 3; // Voltage in phase A (Volts)
int32 voltage_phase_B = 4; // Voltage in phase B (Volts)
int32 voltage_phase_C = 5; // Voltage in phase C (Volts)
int32 voltage_line_AB = 6; // Voltage between lines A and B (Volts)
int32 voltage_line_BC = 7; // Voltage between lines B and C (Volts)
int32 voltage_line_CA = 8; // Voltage between lines C and A (Volts)
int32 frequency = 9; // Frequency (Hertz)
int32 active_power = 10; // Active power (Watts)
int32 reactive_power = 11; // Reactive power (VAR)
int32 current_phase_A = 12; // Current in phase A (Amperes)
int32 current_phase_B = 13; // Current in phase B (Amperes)
int32 current_phase_C = 14; // Current in phase C (Amperes)
int32 power_factor = 15; // Power factor
int32 temperature = 16; // Temperature value
int32 warning_number = 17; // Warning number
int32 crc_checksum = 18; // CRC checksum
int32 link_status = 19; // Link status indicator
int32 modulation_index_signal = 20; // Modulation index signal
}
message PvMO {
int64 serial_number = 1; // Serial number of the device
int32 port_number = 2; // Port number
int32 voltage = 3; // Voltage (Volts)
int32 current = 4; // Current (Amperes)
int32 power = 5; // Power (Watts)
int32 energy_total = 6; // Total energy generated (Watt-hours)
int32 energy_daily = 7; // Daily energy generated (Watt-hours)
int32 error_code = 8; // Error code indicator
int64 serial_number = 1; // Serial number of the device
int32 port_number = 2; // Port number
int32 voltage = 3; // Voltage (Volts)
int32 current = 4; // Current (Amperes)
int32 power = 5; // Power (Watts)
int32 energy_total = 6; // Total energy generated (Watt-hours)
int32 energy_daily = 7; // Daily energy generated (Watt-hours)
int32 error_code = 8; // Error code indicator
}
message RealDataNewReqDTO {
string device_serial_number = 1; // Serial number of the device
int32 timestamp = 2; // Timestamp of the data
int32 active_power = 3; // Active power (Watts)
int32 cumulative_power = 4; // Cumulative power (Watt-hours)
int32 firmware_version = 5; // Firmware version
repeated MeterMO meter_data = 6; // Meter data array
repeated RpMO rp_data = 7; // RpMO data array
repeated RSDMO rsd_data = 8; // RSDMO data array
repeated SGSMO sgs_data = 9; // SGSMO data array
repeated TGSMO tgs_data = 10; // TGSMO data array
repeated PvMO pv_data = 11; // PvMO data array
uint64 dtu_power = 12; // Power of the DTU (Watts)
uint64 dtu_daily_energy = 13; // Daily energy of the DTU (Watt-hours)
string device_serial_number = 1; // Serial number of the device
int32 timestamp = 2; // Timestamp of the data
int32 active_power = 3; // Active power (Watts)
int32 cp = 4; // Control parameter?
int32 firmware_version = 5; // Firmware version
repeated MeterMO meter_data = 6; // Meter data array
repeated RpMO rp_data = 7; // RpMO data array
repeated RSDMO rsd_data = 8; // RSDMO data array
repeated SGSMO sgs_data = 9; // SGSMO data array
repeated TGSMO tgs_data = 10; // TGSMO data array
repeated PvMO pv_data = 11; // PvMO data array
uint64 dtu_power = 12; // Power of the DTU (Watts)
uint64 dtu_daily_energy = 13; // Daily energy of the DTU (Watt-hours)
}
message RealDataNewResDTO {
string time_ymd_hms = 1; // Timestamp in the format YMD_HMS
int32 cumulative_power = 2; // Cumulative power (Watt-hours)
int32 error_code = 3; // Error code indicator
int32 offset = 4; // Offset value
int32 time = 5; // Timestamp value
string time_ymd_hms = 1; // Timestamp in the format YMD_HMS
int32 cp = 2; // Control parameter?
int32 error_code = 3; // Error code indicator
int32 offset = 4; // Offset value
int32 time = 5; // Timestamp value
}

View File

@ -14,7 +14,7 @@ _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11RealDataNew.proto\"\x9b\x05\n\x07MeterMO\x12\x13\n\x0b\x64\x65vice_type\x18\x01 \x01(\x05\x12\x15\n\rserial_number\x18\x02 \x01(\x03\x12\x19\n\x11phase_total_power\x18\x03 \x01(\x05\x12\x15\n\rphase_A_power\x18\x04 \x01(\x05\x12\x15\n\rphase_B_power\x18\x05 \x01(\x05\x12\x15\n\rphase_C_power\x18\x06 \x01(\x05\x12\x1a\n\x12power_factor_total\x18\x07 \x01(\x05\x12\x1a\n\x12\x65nergy_total_power\x18\x08 \x01(\x05\x12\x16\n\x0e\x65nergy_phase_A\x18\t \x01(\x05\x12\x16\n\x0e\x65nergy_phase_B\x18\n \x01(\x05\x12\x16\n\x0e\x65nergy_phase_C\x18\x0b \x01(\x05\x12\x1d\n\x15\x65nergy_total_consumed\x18\x0c \x01(\x05\x12\x1f\n\x17\x65nergy_phase_A_consumed\x18\r \x01(\x05\x12\x1f\n\x17\x65nergy_phase_B_consumed\x18\x0e \x01(\x05\x12\x1f\n\x17\x65nergy_phase_C_consumed\x18\x0f \x01(\x05\x12\x12\n\nfault_code\x18\x10 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x11 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x12 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x13 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x14 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\x15 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x16 \x01(\x05\x12\x1c\n\x14power_factor_phase_A\x18\x17 \x01(\x05\x12\x1c\n\x14power_factor_phase_B\x18\x18 \x01(\x05\x12\x1c\n\x14power_factor_phase_C\x18\x19 \x01(\x05\"i\n\x04RpMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x11\n\tsignature\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x05\x12\x11\n\tpv_number\x18\x04 \x01(\x05\x12\x13\n\x0blink_status\x18\x05 \x01(\x05\"\xb0\x01\n\x05RSDMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\r\n\x05power\x18\x04 \x01(\x05\x12\x13\n\x0btemperature\x18\x05 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x06 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x07 \x01(\x05\x12\x13\n\x0blink_status\x18\x08 \x01(\x05\"\xbf\x02\n\x05SGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x11\n\tfrequency\x18\x04 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x05 \x01(\x05\x12\x16\n\x0ereactive_power\x18\x06 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x07 \x01(\x05\x12\x14\n\x0cpower_factor\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x16\n\x0ewarning_number\x18\n \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x0b \x01(\x05\x12\x13\n\x0blink_status\x18\x0c \x01(\x05\x12\x13\n\x0bpower_limit\x18\r \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xe9\x03\n\x05TGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x03 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x04 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x05 \x01(\x05\x12\x17\n\x0fvoltage_line_AB\x18\x06 \x01(\x05\x12\x17\n\x0fvoltage_line_BC\x18\x07 \x01(\x05\x12\x17\n\x0fvoltage_line_CA\x18\x08 \x01(\x05\x12\x11\n\tfrequency\x18\t \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\n \x01(\x05\x12\x16\n\x0ereactive_power\x18\x0b \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x0c \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\r \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x0e \x01(\x05\x12\x14\n\x0cpower_factor\x18\x0f \x01(\x05\x12\x13\n\x0btemperature\x18\x10 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x11 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x12 \x01(\x05\x12\x13\n\x0blink_status\x18\x13 \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xa3\x01\n\x04PvMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x13\n\x0bport_number\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x04 \x01(\x05\x12\r\n\x05power\x18\x05 \x01(\x05\x12\x14\n\x0c\x65nergy_total\x18\x06 \x01(\x05\x12\x14\n\x0c\x65nergy_daily\x18\x07 \x01(\x05\x12\x12\n\nerror_code\x18\x08 \x01(\x05\"\xd7\x02\n\x11RealDataNewReqDTO\x12\x1c\n\x14\x64\x65vice_serial_number\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x03 \x01(\x05\x12\x18\n\x10\x63umulative_power\x18\x04 \x01(\x05\x12\x18\n\x10\x66irmware_version\x18\x05 \x01(\x05\x12\x1c\n\nmeter_data\x18\x06 \x03(\x0b\x32\x08.MeterMO\x12\x16\n\x07rp_data\x18\x07 \x03(\x0b\x32\x05.RpMO\x12\x18\n\x08rsd_data\x18\x08 \x03(\x0b\x32\x06.RSDMO\x12\x18\n\x08sgs_data\x18\t \x03(\x0b\x32\x06.SGSMO\x12\x18\n\x08tgs_data\x18\n \x03(\x0b\x32\x06.TGSMO\x12\x16\n\x07pv_data\x18\x0b \x03(\x0b\x32\x05.PvMO\x12\x11\n\tdtu_power\x18\x0c \x01(\x04\x12\x18\n\x10\x64tu_daily_energy\x18\r \x01(\x04\"u\n\x11RealDataNewResDTO\x12\x14\n\x0ctime_ymd_hms\x18\x01 \x01(\t\x12\x18\n\x10\x63umulative_power\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')
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11RealDataNew.proto\"\x9b\x05\n\x07MeterMO\x12\x13\n\x0b\x64\x65vice_type\x18\x01 \x01(\x05\x12\x15\n\rserial_number\x18\x02 \x01(\x03\x12\x19\n\x11phase_total_power\x18\x03 \x01(\x05\x12\x15\n\rphase_A_power\x18\x04 \x01(\x05\x12\x15\n\rphase_B_power\x18\x05 \x01(\x05\x12\x15\n\rphase_C_power\x18\x06 \x01(\x05\x12\x1a\n\x12power_factor_total\x18\x07 \x01(\x05\x12\x1a\n\x12\x65nergy_total_power\x18\x08 \x01(\x05\x12\x16\n\x0e\x65nergy_phase_A\x18\t \x01(\x05\x12\x16\n\x0e\x65nergy_phase_B\x18\n \x01(\x05\x12\x16\n\x0e\x65nergy_phase_C\x18\x0b \x01(\x05\x12\x1d\n\x15\x65nergy_total_consumed\x18\x0c \x01(\x05\x12\x1f\n\x17\x65nergy_phase_A_consumed\x18\r \x01(\x05\x12\x1f\n\x17\x65nergy_phase_B_consumed\x18\x0e \x01(\x05\x12\x1f\n\x17\x65nergy_phase_C_consumed\x18\x0f \x01(\x05\x12\x12\n\nfault_code\x18\x10 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x11 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x12 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x13 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x14 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\x15 \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x16 \x01(\x05\x12\x1c\n\x14power_factor_phase_A\x18\x17 \x01(\x05\x12\x1c\n\x14power_factor_phase_B\x18\x18 \x01(\x05\x12\x1c\n\x14power_factor_phase_C\x18\x19 \x01(\x05\"i\n\x04RpMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x11\n\tsignature\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\x05\x12\x11\n\tpv_number\x18\x04 \x01(\x05\x12\x13\n\x0blink_status\x18\x05 \x01(\x05\"\xb0\x01\n\x05RSDMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\r\n\x05power\x18\x04 \x01(\x05\x12\x13\n\x0btemperature\x18\x05 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x06 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x07 \x01(\x05\x12\x13\n\x0blink_status\x18\x08 \x01(\x05\"\xbf\x02\n\x05SGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x11\n\tfrequency\x18\x04 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x05 \x01(\x05\x12\x16\n\x0ereactive_power\x18\x06 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x07 \x01(\x05\x12\x14\n\x0cpower_factor\x18\x08 \x01(\x05\x12\x13\n\x0btemperature\x18\t \x01(\x05\x12\x16\n\x0ewarning_number\x18\n \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x0b \x01(\x05\x12\x13\n\x0blink_status\x18\x0c \x01(\x05\x12\x13\n\x0bpower_limit\x18\r \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xe9\x03\n\x05TGSMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x18\n\x10\x66irmware_version\x18\x02 \x01(\x05\x12\x17\n\x0fvoltage_phase_A\x18\x03 \x01(\x05\x12\x17\n\x0fvoltage_phase_B\x18\x04 \x01(\x05\x12\x17\n\x0fvoltage_phase_C\x18\x05 \x01(\x05\x12\x17\n\x0fvoltage_line_AB\x18\x06 \x01(\x05\x12\x17\n\x0fvoltage_line_BC\x18\x07 \x01(\x05\x12\x17\n\x0fvoltage_line_CA\x18\x08 \x01(\x05\x12\x11\n\tfrequency\x18\t \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\n \x01(\x05\x12\x16\n\x0ereactive_power\x18\x0b \x01(\x05\x12\x17\n\x0f\x63urrent_phase_A\x18\x0c \x01(\x05\x12\x17\n\x0f\x63urrent_phase_B\x18\r \x01(\x05\x12\x17\n\x0f\x63urrent_phase_C\x18\x0e \x01(\x05\x12\x14\n\x0cpower_factor\x18\x0f \x01(\x05\x12\x13\n\x0btemperature\x18\x10 \x01(\x05\x12\x16\n\x0ewarning_number\x18\x11 \x01(\x05\x12\x14\n\x0c\x63rc_checksum\x18\x12 \x01(\x05\x12\x13\n\x0blink_status\x18\x13 \x01(\x05\x12\x1f\n\x17modulation_index_signal\x18\x14 \x01(\x05\"\xa3\x01\n\x04PvMO\x12\x15\n\rserial_number\x18\x01 \x01(\x03\x12\x13\n\x0bport_number\x18\x02 \x01(\x05\x12\x0f\n\x07voltage\x18\x03 \x01(\x05\x12\x0f\n\x07\x63urrent\x18\x04 \x01(\x05\x12\r\n\x05power\x18\x05 \x01(\x05\x12\x14\n\x0c\x65nergy_total\x18\x06 \x01(\x05\x12\x14\n\x0c\x65nergy_daily\x18\x07 \x01(\x05\x12\x12\n\nerror_code\x18\x08 \x01(\x05\"\xc9\x02\n\x11RealDataNewReqDTO\x12\x1c\n\x14\x64\x65vice_serial_number\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x05\x12\x14\n\x0c\x61\x63tive_power\x18\x03 \x01(\x05\x12\n\n\x02\x63p\x18\x04 \x01(\x05\x12\x18\n\x10\x66irmware_version\x18\x05 \x01(\x05\x12\x1c\n\nmeter_data\x18\x06 \x03(\x0b\x32\x08.MeterMO\x12\x16\n\x07rp_data\x18\x07 \x03(\x0b\x32\x05.RpMO\x12\x18\n\x08rsd_data\x18\x08 \x03(\x0b\x32\x06.RSDMO\x12\x18\n\x08sgs_data\x18\t \x03(\x0b\x32\x06.SGSMO\x12\x18\n\x08tgs_data\x18\n \x03(\x0b\x32\x06.TGSMO\x12\x16\n\x07pv_data\x18\x0b \x03(\x0b\x32\x05.PvMO\x12\x11\n\tdtu_power\x18\x0c \x01(\x04\x12\x18\n\x10\x64tu_daily_energy\x18\r \x01(\x04\"g\n\x11RealDataNewResDTO\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)
@ -34,7 +34,7 @@ if _descriptor._USE_C_DESCRIPTORS == False:
_globals['_PVMO']._serialized_start=1792
_globals['_PVMO']._serialized_end=1955
_globals['_REALDATANEWREQDTO']._serialized_start=1958
_globals['_REALDATANEWREQDTO']._serialized_end=2301
_globals['_REALDATANEWRESDTO']._serialized_start=2303
_globals['_REALDATANEWRESDTO']._serialized_end=2420
_globals['_REALDATANEWREQDTO']._serialized_end=2287
_globals['_REALDATANEWRESDTO']._serialized_start=2289
_globals['_REALDATANEWRESDTO']._serialized_end=2392
# @@protoc_insertion_point(module_scope)

View File

@ -2,6 +2,6 @@
for file in $(ls *.proto)
do
protoc --pyi_out=. $file
#protoc --pyi_out=. $file
protoc --python_out=. $file
done