iobroker.ecoflow-mqtt
Version:
connects to ecoflow products
1,644 lines (1,509 loc) • 190 kB
JavaScript
const protobuf = require('protobufjs');
const https = require('https');
const protoSource = `
syntax = "proto3";
message inverter_heartbeat {
optional uint32 invErrCode = 1;
optional uint32 invWarnCode = 3;
optional uint32 pv1ErrCode = 2;
optional uint32 pv1WarnCode = 4;
optional uint32 pv2ErrCode = 5;
optional uint32 pv2WarningCode = 6;
optional uint32 batErrCode = 7;
optional uint32 batWarningCode = 8;
optional uint32 llcErrCode = 9;
optional uint32 llcWarningCode = 10;
optional uint32 pv1Status = 11;
optional uint32 pv2Status = 12;
optional uint32 batStatus = 13;
optional uint32 llcStatus = 14;
optional uint32 invStatus = 15;
optional int32 pv1InputVolt = 16;
optional int32 pv1OpVolt = 17;
optional int32 pv1InputCur = 18;
optional int32 pv1InputWatts = 19;
optional int32 pv1Temp = 20;
optional int32 pv2InputVolt = 21;
optional int32 pv2OpVolt = 22;
optional int32 pv2InputCur = 23;
optional int32 pv2InputWatts = 24;
optional int32 pv2Temp = 25;
optional int32 batInputVolt = 26;
optional int32 batOpVolt = 27;
optional int32 batInputCur = 28;
optional int32 batInputWatts = 29;
optional int32 batTemp = 30;
optional uint32 batSoc = 31;
optional int32 llcInputVolt = 32;
optional int32 llcOpVolt = 33;
optional int32 llcTemp = 34;
optional int32 invInputVolt = 35;
optional int32 invOpVolt = 36;
optional int32 invOutputCur = 37;
optional int32 invOutputWatts = 38;
optional int32 invTemp = 39;
optional int32 invFreq = 40;
optional int32 invDcCur = 41;
optional int32 bpType = 42;
optional int32 invRelayStatus = 43;
optional int32 pv1RelayStatus = 44;
optional int32 pv2RelayStatus = 45;
optional uint32 installCountry = 46;
optional uint32 installTown = 47;
optional uint32 permanentWatts = 48;
optional uint32 dynamicWatts = 49;
optional uint32 supplyPriority = 50;
optional uint32 lowerLimit = 51;
optional uint32 upperLimit = 52;
optional uint32 invOnOff = 53;
optional uint32 wirelessErrCode = 54;
optional uint32 wirelessWarnCode = 55;
optional uint32 invBrightness = 56;
optional uint32 heartbeatFrequency = 57;
optional uint32 ratedPower = 58;
optional int32 batChargingTime = 59;
optional int32 batDischargingTime = 60;
optional int32 feedPriority = 61;
}
message InverterHeartbeat2 {
optional int32 pv1_active_1 = 1; //pv1 off/on?
optional int32 pv1_status_2 = 2; //status pv1
optional int32 pv2_active_3 = 3; //pv2 off/on?
optional int32 pv2_status_4 = 4; //status pv2
optional int32 X_Unknown_5 = 5;
optional int32 status_6 = 6; //status
optional int32 upperLimit = 7;
optional int32 lowerLimit = 8;
optional int32 status_9 = 9; //status 48->4096
optional int32 status_10 = 10; //status
optional int32 X_Unknown_11 = 11;
optional int32 baseLoad = 12;
optional int32 powerPlugsPos = 13; //stream power to plugs positive
optional int32 X_Unknown_14 = 14;
optional int32 X_Unknown_15 = 15; //power?
optional int32 X_Unknown_16 = 16;
optional int32 X_Unknown_17 = 17;
optional int32 X_Unknown_18 = 18;
optional int32 X_Unknown_19 = 19;
optional int32 X_Unknown_20 = 20;
optional int32 X_Unknown_21 = 21;
optional int32 X_Unknown_22 = 22;
optional int32 X_Unknown_23 = 23;
optional int32 X_Unknown_24 = 24; //disch/chargeTime
optional int32 X_Unknown_25 = 25;
optional int32 X_Unknown_26 = 26;
optional int32 X_Unknown_27 = 27; //disch/chargeTime
optional int32 X_Unknown_28 = 28;
optional int32 X_Unknown_29 = 29;
optional int32 X_Unknown_30 = 30;
optional int32 X_Unknown_31 = 31;
optional int32 uptime = 32;
optional int32 X_Unknown_33 = 33;
optional int32 X_Unknown_34 = 34;
optional int32 X_Unknown_35 = 35;
optional int32 X_Unknown_36 = 36;
optional int32 X_Unknown_37 = 37;
optional int32 X_Unknown_38 = 38;
optional int32 X_Unknown_39 = 39;
optional int32 X_Unknown_40 = 40;
optional int32 X_Unknown_41 = 41;
optional int32 X_Unknown_42 = 42;
optional int32 X_Unknown_43 = 43;
optional int32 plugsConn_44 = 44; // plugs connected for dynamic watt
optional int32 gridWatt_45 = 45;
optional int32 powerPlugsNeg = 46; // stream power to plugs negative
optional int32 X_Unknown_47 = 47;
optional int32 unixtime_48 = 48; // Anfangszeit history werte?
optional int32 X_Unknown_49 = 49;
optional int32 unixtime_50 = 50;
optional int32 X_Unknown_51 = 51; //letzte Zeit history?
optional int32 wifiRssi = 52; //wifiRssi
}
message permanent_watts_pack
{
optional uint32 permanent_watts = 1;
}
message supply_priority_pack
{
optional uint32 supply_priority = 1;
}
message feed_priority_pack
{
optional uint32 supply_priority = 1;
}
message bat_lower_pack
{
optional int32 lower_limit = 1;
}
message bat_upper_pack
{
optional int32 upper_limit = 1;
}
message PowerItem
{
optional uint32 timestamp = 1;
optional sint32 timezone = 2;
optional uint32 inv_to_grid_power = 3;
optional uint32 inv_to_plug_power = 4;
optional int32 battery_power = 5;
optional uint32 pv1_output_power = 6;
optional uint32 pv2_output_power = 7;
}
message PowerPack
{
optional uint32 sys_seq = 1;
repeated PowerItem sys_power_stream = 2;
}
message EnergyItem
{
optional uint32 timestamp = 1;
optional uint32 watth_type = 2;
repeated uint32 watth = 3;
}
message EnergyPack
{
optional uint32 sys_seq = 1;
repeated EnergyItem sys_energy_stream = 2;
}
message EnergyTotalReport
{
optional uint32 watth_seq = 1;
optional EnergyItem watth_item = 2;
}
message BatchEnergyTotalReport
{
optional uint32 watth_seq = 1;
repeated EnergyItem watth_item = 2;
}
message EnergyTotalReportAck {
optional uint32 result = 1;
optional uint32 watth_seq = 2;
optional uint32 watth_type = 3;
}
message PowerAckPack
{
optional uint32 sys_seq = 1;
}
message node_massage
{
optional string sn = 1;
optional bytes mac = 2;
}
message mesh_child_node_info
{
optional uint32 topology_type = 1;
optional uint32 mesh_protocol = 2;
optional uint32 max_sub_device_num = 3;
optional bytes parent_mac_id = 4;
optional bytes mesh_id = 5;
repeated node_massage sub_device_list = 6;
}
message Header
{
optional bytes pdata = 1;
optional int32 src = 2;
optional int32 dest = 3;
optional int32 d_src= 4;
optional int32 d_dest = 5;
optional int32 enc_type = 6;
optional int32 check_type = 7;
optional int32 cmd_func = 8;
optional int32 cmd_id = 9;
optional int32 data_len = 10;
optional int32 need_ack = 11;
optional int32 is_ack = 12;
optional int32 seq = 14;
optional int32 product_id = 15;
optional int32 version = 16;
optional int32 payload_ver = 17;
optional int32 time_snap = 18;
optional int32 is_rw_cmd = 19;
optional int32 is_queue = 20;
optional int32 ack_type= 21;
optional string code = 22;
optional string from = 23;
optional string module_sn = 24;
optional string device_sn = 25;
}
message HeaderMessage {
repeated Header header = 1;
}
message EventRecordItem {
optional uint32 timestamp = 1;
optional uint32 sys_ms = 2;
optional uint32 event_no = 3;
repeated float event_detail = 4;
}
message EventRecordReport {
optional uint32 event_ver = 1;
optional uint32 event_seq = 2;
repeated EventRecordItem event_item = 3;
}
message EventInfoReportAck {
optional uint32 result = 1;
optional uint32 event_seq = 2;
optional uint32 event_item_num = 3;
}
message ProductNameSet {
optional string name = 1;
}
message ProductNameSetAck {
optional uint32 result = 1;
}
message ProductNameGet {}
message ProductNameGetAck {
optional string name = 3;
}
message RTCTimeGet {}
message RTCTimeGetAck {
optional uint32 timestamp = 1;
optional int32 timezone = 2;
}
message RTCTimeSet {
optional uint32 timestamp = 1;
optional int32 timezone = 2 [(nanopb).default = 0];
}
message RTCTimeSetAck {
optional uint32 result = 1;
}
message country_town_message {
optional uint32 country = 1;
optional uint32 town = 2;
}
message time_task_config {
optional uint32 task_index = 1;
optional time_range_strategy time_range = 2;
optional uint32 type = 3; // Task type: 1: prioritize power supply; 2: prioritize power storage
}
message time_task_delet {
optional uint32 task_index = 1;
}
message time_task_config_post {
optional time_task_config task1 = 1;
optional time_task_config task2 = 2;
optional time_task_config task3 = 3;
optional time_task_config task4 = 4;
optional time_task_config task5 = 5;
optional time_task_config task6 = 6;
optional time_task_config task7 = 7;
optional time_task_config task8 = 8;
optional time_task_config task9 = 9;
optional time_task_config task10 = 10;
optional time_task_config task11 = 11;
}
message time_task_config_ack {
optional uint32 task_info = 1;
}
message rtc_data {
optional int32 week = 1 [(nanopb).default = 0];
optional int32 sec = 2 [(nanopb).default = 0];
optional int32 min = 3 [(nanopb).default = 0];
optional int32 hour = 4 [(nanopb).default = 0];
optional int32 day = 5 [(nanopb).default = 0];
optional int32 month = 6 [(nanopb).default = 0];
optional int32 year = 7 [(nanopb).default = 0];
}
message time_range_strategy {
optional bool is_config = 1; // Whether to enable: 0: no; 1: yes
optional bool is_enable = 2; // Whether to configure: 0: no; 1: yes
optional int32 time_mode = 3; // Scheduled mode: 0: daily; 1: weekly; 2: monthly; 3: do not repeat
optional int32 time_data = 4; // mode == 1, bit0-bit6 represents Monday to Saturday respectively; mode == 2, bit0-bit30 represents the 1st to the 31st
optional rtc_data start_time = 5;
optional rtc_data stop_time = 6;
}
message plug_ack_message {
optional uint32 ack = 1;
}
message plug_heartbeat {
optional uint32 err_code = 1;
optional uint32 warn_code = 2;
optional uint32 country = 3;
optional uint32 town = 4;
optional int32 max_cur = 5;
optional int32 temp = 6;
optional int32 freq = 7;
optional int32 current = 8;
optional int32 volt = 9;
optional int32 watts = 10;
optional bool switch = 11; //switchSta
optional int32 brightness = 12;
optional int32 max_watts = 13;
optional int32 heartbeat_frequency = 14;
optional int32 mesh_enable = 15;
optional int32 unknown16 = 16;
optional int32 unknown17 = 17;
optional int32 unknown18 = 18;
optional int32 uptime = 19;
optional int32 unknown20 = 20;
optional int32 unknown21 = 21;
optional int32 unknown22 = 22;
optional int32 unknown23 = 23;
optional int32 unknown24 = 24;
optional int32 unknown25 = 25;
optional int32 unknown26 = 26;
optional int32 unknown27 = 27;
optional int32 unknown28 = 28;
optional int32 unknown29 = 29;
optional int32 unknown30 = 30;
optional int32 streamConn_31 = 31;//stream connected
optional int32 cntDevices = 32; //count of devices
optional int32 streamOutputPower = 33; //total streamoutputpower
optional int32 powerPlugs = 34; // power to plugs
optional int32 unknown35 = 35;
optional int32 unknown36 = 36;
optional int32 unknown37 = 37;
optional int32 unixtime_38 = 38; //unixtime, ggf. last connection, when connected to mqtt server
optional int32 dynWattEnable = 39; //plug included for dynamic watts
optional int32 wifiRssi = 40; //wifiRssi
}
message plug_switch_message {
optional uint32 plug_switch = 1;
}
message brightness_pack {
optional int32 brightness = 1 [(nanopb).default = 0];
}
message max_cur_pack {
optional int32 max_cur = 1 [(nanopb).default = 0];
}
message max_watts_pack {
optional int32 max_watts = 1 [(nanopb).default = 0];
}
message mesh_ctrl_pack {
optional uint32 mesh_enable = 1 [(nanopb).default = 0];
}
message ret_pack {
optional bool ret_sta = 1 [(nanopb).default = false];
}
message include_plug {
optional bool include_plug = 1 [(nanopb).default = false];
}
message rated_power_pack {
optional int32 rated_power = 1 [(nanopb).default = 0];
}
message Send_Header_Msg
{
optional Header msg = 1;
}
message SendMsgHart
{
optional int32 link_id = 1;
optional int32 src = 2;
optional int32 dest = 3;
optional int32 d_src = 4;
optional int32 d_dest = 5;
optional int32 enc_type = 6;
optional int32 check_type = 7;
optional int32 cmd_func = 8;
optional int32 cmd_id = 9;
optional int32 data_len = 10;
optional int32 need_ack = 11;
optional int32 is_ack = 12;
optional int32 ack_type = 13;
optional int32 seq = 14;
optional int32 time_snap = 15;
optional int32 is_rw_cmd = 16;
optional int32 is_queue = 17;
optional int32 product_id = 18;
optional int32 version = 19;
}
message setMessage {
setHeader header = 1;
}
message setHeader {
setValue pdata = 1 [proto3_optional = true];
int32 src = 2 [proto3_optional = true];
int32 dest = 3 [proto3_optional = true];
int32 d_src = 4 [proto3_optional = true];
int32 d_dest = 5 [proto3_optional = true];
int32 enc_type = 6 [proto3_optional = true];
int32 check_type = 7 [proto3_optional = true];
int32 cmd_func = 8 [proto3_optional = true];
int32 cmd_id = 9 [proto3_optional = true];
int32 data_len = 10 [proto3_optional = true];
int32 need_ack = 11 [proto3_optional = true];
int32 is_ack = 12 [proto3_optional = true];
int32 seq = 14 [proto3_optional = true];
int32 product_id = 15 [proto3_optional = true];
int32 version = 16 [proto3_optional = true];
int32 payload_ver = 17 [proto3_optional = true];
int32 time_snap = 18 [proto3_optional = true];
int32 is_rw_cmd = 19 [proto3_optional = true];
int32 is_queue = 20 [proto3_optional = true];
int32 ack_type = 21 [proto3_optional = true];
string code = 22 [proto3_optional = true];
string from = 23 [proto3_optional = true];
string module_sn = 24 [proto3_optional = true];
string device_sn = 25 [proto3_optional = true];
}
message setValue {
optional int32 value = 1;
optional int32 value2 = 2;
}
//delta pro ultra
message dcoutput_pack {
optional int32 dcoutput = 1;
}
message deviceTimeout_pack {
optional int32 deviceTimeout = 1;
}
message lcdTimeout_pack {
optional int32 lcdTimeout = 1;
}
message dcTimeout_pack {
optional int32 dcTimeout = 1;
}
message acTimeout_pack {
optional int32 acTimeout = 1;
}
message chaLim_pack {
optional int32 chaLim = 1;
}
message dischaLim_pack {
optional int32 dischaLim = 1;
}
message acChargeSpeed_pack {
optional int32 acChargeSpeedPower = 1;
optional int32 acChargeSpeedAC = 2;
}
message backup_pack {
optional int32 backupEnable = 1;
optional int32 backupLim = 2;
}
message lte4g_pack {
optional int32 lte4gEnable = 1;
}
message acalwaysOn_pack {
optional int32 acAlwaysOnEnable = 1;
optional int32 acAlwaysOnTime = 2;
}
message batPreCondOn_pack {
optional int32 batPreCondOn = 1;
}
message areaTown_pack {
optional string areaTown = 1;
}
message town_pack {
optional sint32 town = 1;
optional uint32 setAuto = 2;
}
message init_pack {
optional uint32 unixtime = 1;
optional sint32 town = 2;
}
message lab_pack {
optional uint32 labVal = 1;
}
message rename_pack {
optional string devName = 1;
}
message dpu_3 {
optional uint32 bmsOnline1 = 1; // status or error?
optional uint32 unknown2 = 2; // status or error?
optional uint32 unknown3 = 3; // value
optional uint32 bkpResEn = 4; // Backup reserve (0: Disabled, 1: Enabled)
optional int32 bkpResLev = 5; // Backup reserve level [%]
optional int32 unknown6 = 6; // enable; on/off
optional int32 bkpResSolLev = 7; // Backup reserve solar charging level [%]
optional int32 batPreCondEn = 8; // Battery Preconditioning (0: Disabled, 1: Enabled)
optional int32 chaLim = 9; // Charge Limit [%]
optional int32 dischaLim = 10; // Discharge Limit [%]
optional int32 unknown11 = 11; // enable; on/off
optional int32 unknown12 = 12; //limit?
optional int32 acSpeed = 13; // AC Charging Speed [W]
optional int32 power = 14; // Power In/Out [W]
optional int32 devTimeout = 15; // Device Timeout [min] (0=Never)
optional int32 lcdTimeout = 16; // LCD screen timeout [sec] (0=Never)
optional int32 dc12vTimeout = 17; // 12V DC Timeout [min] (0=Never)
optional int32 acTimeout = 18; // AC Timeout [min] (0=Never)
optional int32 unknown19 = 19; // enable; on/off
optional int32 unknown20 = 20; // enable; on/off
optional int32 town = 21; //town
optional string timezone = 22; //area/town
}
message AppParaHeartbeatReport
{
optional uint32 sys_work_mode = 1;
optional uint32 sys_backup_event = 2;
optional uint32 sys_backup_soc = 3;
optional uint32 energy_manage_enable = 4;
optional uint32 backup_ratio = 5;
optional uint32 ac_xboost = 6;
optional uint32 ac_out_freq = 7;
optional uint32 bms_mode_set = 8;
optional uint32 chg_max_soc = 9;
optional uint32 dsg_min_soc = 10;
optional uint32 ac_often_open_flg = 11;
optional uint32 ac_often_open_min_soc = 12;
optional uint32 chg_5p8_set_watts = 13;
optional uint32 chg_c20_set_watts = 14;
optional uint32 power_standby_mins = 15;
optional uint32 screen_standby_sec = 16;
optional uint32 dc_standby_mins = 17;
optional uint32 ac_standby_mins = 18;
optional uint32 solar_only_flg = 19;
optional uint32 timezone_settype = 20;
optional sint32 sys_timezone = 21;
optional string sys_timezone_id = 22;
}
message dpu_4 {
optional uint32 unknown1 = 1; // status or error?
optional uint32 soc3 = 3; // Soc
optional float unknown4 = 4; // battery power
optional float capacity5 = 5; //
optional int32 remainTime7 = 7; // remain time
optional int32 chaLim = 8; // Charge Limit [%]
optional int32 dischaLim = 9; // Discharge Limit [%]
optional int32 unknown11 = 11; // type
}
message BPInfo
{
optional uint32 bp_no = 1;
optional uint32 bp_chg_sta = 2;
optional uint32 bp_soc = 3;
optional float bp_pwr = 4;
optional float bp_energy = 5;
optional uint32 heat_time = 6;
optional uint32 remain_time = 7;
optional uint32 bp_soc_max = 8;
optional uint32 bp_soc_min = 9;
optional uint32 bp_err_code = 10;
optional int32 bp_temp = 11;
}
message BpInfoReport
{
repeated BPInfo bp_info = 1;
}
message dpu_2 {
optional uint32 unknown1 = 1; // status or error?
optional uint32 unknown21 = 21; // status or error?
optional uint32 unknown22 = 22; // status or error?
optional uint32 watthBatt23 = 23; // Wh battery
optional uint32 unknown24 = 24; // status or error?
optional uint32 unknown25 = 25; // status or error?
optional uint32 unknown41 = 41; // status
optional uint32 unknown42 = 42; // status
optional uint32 freq43 = 43; // frequency
optional uint32 unknown44 = 44; // status
optional uint32 unknown45 = 45; // status
optional uint32 watthOut46 = 46; // Wh out
optional uint32 watthIn47 = 47; // Wh in
optional uint32 freq48 = 48; // frequency
optional uint32 unknown49 = 49; // status
optional uint32 unknown50 = 50; // status
optional uint32 unknown51 = 51; // status
optional uint32 unknown52 = 52; // status
optional uint32 unknown53 = 53; // status
optional float volt61 = 61; // voltage
optional float current62 = 62; // current
optional float float63 = 63; // voltage
optional float float64 = 64; // current
optional float usbC1Volt65 = 65; // voltage
optional float usbC1Current66 = 66; // current
optional float usbC2Colt67 = 67; // voltage
optional float usbC2Current68 = 68; // current
optional float usbA1Volt69 = 69; // voltage
optional float usbA1Current70 = 70; // current
optional float usbA2Volt71 = 71; // voltage
optional float usbA2Current72 = 72; // current
optional float dcVolt73 = 73; // voltage
optional float dcCurrent74 = 74; // current
optional float ac1outBackupVolt75 = 75; // voltage
optional float ac1outBackupCurrent76 = 76; // current
optional float ac2outBackupvolt77 = 77; // voltage
optional float ac2outBackupCurrent78 = 78; // current
optional float ac1outOnlineVolt79 = 79; // voltage
optional float ac1outOnlineCurrent80 = 80; // current
optional float ac2outOnlineVolt81 = 81; // voltage
optional float ac2outOnlineCurrent82 = 82; // current
optional float ac30AVolt83 = 83; // voltage
optional float ac30ACurrent84 = 84; // current
optional float acL14Volt85 = 85; // voltage
optional float acL14Current86 = 86; // current
optional float solarLowVolt87 = 87; // voltage
optional float solarLowcurrent88 = 88; // current
optional float solarHighVolt89 = 89; // voltage
optional float solarHighCurrent90 = 90; // current
optional float acInVolt91 = 91; // voltage
optional float acInCurrent92 = 92; // current
optional float powerIOInVolt93 = 93; // voltage
optional float powerIOInCurrent94 = 94; // current
optional float powerIOOutVolt95 = 95; // voltage
optional float powerIOOutCurrent96 = 96; // current
optional float temp97 = 97; //temp in degC?
optional float temp98 = 98; //temp in degC?
optional float temp99 = 99; //temp in degC?
optional float temp100 = 100; //temp in degC?
optional uint32 unknown101 = 101; //
optional float unknown102 = 102; // value
}
message BackendRecordHeartbeatReport
{
optional uint32 record_flag = 1;
optional uint32 sys_work_sta = 21;
optional uint32 chg_reign_sta = 22;
optional uint32 pcs_work_sta = 23;
optional uint32 fan_state = 24;
optional uint32 ems_work_sta = 25;
optional uint32 c20_in_type = 41;
optional uint32 work_5p8_mode = 42;
optional uint32 ac_in_freq = 43;
optional uint32 ems_max_avail_num = 44;
optional uint32 ems_open_bms_idx = 45;
optional uint32 ems_para_vol_min = 46;
optional uint32 ems_para_vol_max = 47;
optional uint32 ac_out_freq = 48;
optional uint32 pcs_dc_err_code = 49;
optional uint32 pcs_ac_err_code = 50;
optional uint32 lv_pv_err_code = 51;
optional uint32 hv_pv_err_code = 52;
optional uint32 ads_err_code = 53;
optional float bat_vol = 61;
optional float bat_amp = 62;
optional float bms_input_watts = 63;
optional float bms_output_watts = 64;
optional float out_usb1_vol = 65;
optional float out_usb1_amp = 66;
optional float out_usb2_vol = 67;
optional float out_usb2_amp = 68;
optional float out_typec1_vol = 69;
optional float out_typec1_amp = 70;
optional float out_typec2_vol = 71;
optional float out_typec2_amp = 72;
optional float out_ads_vol = 73;
optional float out_ads_amp = 74;
optional float out_ac_l1_1_vol = 75;
optional float out_ac_l1_1_amp = 76;
optional float out_ac_l1_2_vol = 77;
optional float out_ac_l1_2_amp = 78;
optional float out_ac_l2_1_vol = 79;
optional float out_ac_l2_1_amp = 80;
optional float out_ac_l2_2_vol = 81;
optional float out_ac_l2_2_amp = 82;
optional float out_ac_tt_vol = 83;
optional float out_ac_tt_amp = 84;
optional float out_ac_l14_vol = 85;
optional float out_ac_l14_amp = 86;
optional float out_ac_5p8_vol = 87;
optional float out_ac_5p8_amp = 88;
optional float in_ac_5p8_vol = 89;
optional float in_ac_5p8_amp = 90;
optional float in_ac_c20_vol = 91;
optional float in_ac_c20_amp = 92;
optional float in_lv_mppt_vol = 93;
optional float in_lv_mppt_amp = 94;
optional float in_hv_mppt_vol = 95;
optional float in_hv_mppt_amp = 96;
optional float pcs_dc_temp = 97;
optional float pcs_ac_temp = 98;
optional float mppt_lv_temp = 99;
optional float mppt_hv_temp = 100;
optional int32 pd_temp = 101;
optional float ev_max_charger_cur = 102;
}
//pd?
message dpu_1 {
optional uint32 sysVer1 = 1; //
optional int32 unknown2 = 2; // status or error?
optional int32 unknown3 = 3; // status or error?
optional int32 unknown10 = 10; // status
optional int32 unknown11 = 11; // status
optional int32 unknown12 = 12; // status
optional int32 unknown13 = 13; // status
optional int32 unknown14 = 14; // status
optional int32 lim15 = 15; // limit discharge
optional string unknown16 = 16; // array?
optional int32 soc21 = 21; // soc same as dpu_4 item3
optional int32 unknown22 = 22; // status
optional int32 unknown23 = 23; // status
optional int32 maxAcPower24 = 24; //
optional int32 maxPowerPowerPort25 = 25; //
optional int32 remainTime26 = 26; // same as dpu_4 item7
optional int32 unknown27 = 27; // status
optional int32 limit28 = 28; //
optional int32 limit29 = 29; //
optional float totalInputPower41 = 41; // total input power [W]
optional float totalOutputPower42 = 42; // total output power [W]
optional float usbC1power43 = 43; // USB C
optional float usbC2power44 = 44; // USB C
optional float usbA1power45 = 45; // USBA
optional float usbA2power46 = 46; // USB A
optional float dcPower47 = 47; // DC Anderson
optional float ac1outBackupPower48 = 48; // backup UPS left AC 20A output power [W]
optional float ac2outBackupPower49 = 49; // backup UPS right AC 20A output power [W]
optional float ac1outOnlinePower50 = 50; // online UPS left AC 20A output power [W]
optional float ac2outOnlinePower51 = 51; // online UPS right AC 20A output power [W]
optional float acout30APower52 = 52; // 200V AC 20A output power [W]
optional float acoutL14Power53 = 53; // 100/200V AC 30A output power [W]
optional float ioPower54 = 54; // POWER IO output power [W]
optional float totalInputPower56 = 56; // total input power [W], float
optional float solarLowInputPower57 = 57; // solar low
optional float solarHighInputPower58 = 58; // solar high
optional float float59 = 59; // ac in
optional int32 unknown100 = 100; // status
optional int32 unknown101 = 101; // status
//102-109 repeated as 121-128
optional int32 unknown102 = 102; // status
optional int32 unknown103 = 103; //
optional int32 unknown104 = 104; //
optional int32 unknown105 = 105; //
optional int32 unknown106 = 106; // status
optional int32 unknown107 = 107; // status
optional int32 unknown108 = 108; // status
optional int32 unknown109 = 109; // status
optional int32 unknown121 = 121; // status
optional int32 unknown122 = 122; //
optional int32 unknown123 = 123; //
optional int32 unknown124 = 124; //
optional int32 unknown125 = 125; // status
optional int32 unknown126 = 126; // status
optional int32 unknown127 = 127; // status
optional int32 unknown128 = 128; // status
}
message AppShowHeartbeatReport
{
optional uint32 proto_ver = 1;
optional uint32 show_flag = 2;
optional uint32 access_type = 3;
optional sint32 wireless_4g_on = 10;
optional sint32 wireless_4g_sta = 11;
optional uint32 access_5p8_in_type = 12;
optional uint32 access_5p8_out_type = 13;
optional sint32 wireless_4g_con = 14;
optional sint32 wirlesss_4g_err_code = 15;
optional string sim_iccid = 16;
optional uint32 soc = 21;
optional uint32 bp_num = 22;
optional uint32 pcs_type = 23;
optional uint32 c20_chg_max_watts = 24;
optional uint32 para_chg_max_watts = 25;
optional uint32 remain_time = 26;
optional uint32 sys_err_code = 27;
optional uint32 full_combo = 28;
optional uint32 remain_combo = 29;
optional float watts_in_sum = 41;
optional float watts_out_sum = 42;
optional float out_usb1_pwr = 43;
optional float out_usb2_pwr = 44;
optional float out_typec1_pwr = 45;
optional float out_typec2_pwr = 46;
optional float out_ads_pwr = 47;
optional float out_ac_l1_1_pwr = 48;
optional float out_ac_l1_2_pwr = 49;
optional float out_ac_l2_1_pwr = 50;
optional float out_ac_l2_2_pwr = 51;
optional float out_ac_tt_pwr = 52;
optional float out_ac_l14_pwr = 53;
optional float out_ac_5p8_pwr = 54;
optional float in_ac_5p8_pwr = 55;
optional float in_ac_c20_pwr = 56;
optional float in_lv_mppt_pwr = 57;
optional float in_hv_mppt_pwr = 58;
optional float out_pr_pwr = 59;
optional uint32 time_task_change_cnt = 100;
optional uint32 time_task_conflict_flag = 101;
optional uint32 chg_time_task_notice = 102;
optional int32 chg_time_task_type = 103;
optional int32 chg_time_task_index = 104;
optional int32 chg_time_task_mode = 105;
optional uint32 chg_time_task_param = 106;
optional uint32 chg_time_task_table_0 = 107;
optional uint32 chg_time_task_table_1 = 108;
optional uint32 chg_time_task_table_2 = 109;
optional uint32 dsg_time_task_notice = 121;
optional int32 dsg_time_task_type = 122;
optional int32 dsg_time_task_index = 123;
optional int32 dsg_time_task_mode = 124;
optional uint32 dsg_time_task_param = 125;
optional uint32 dsg_time_task_table_0 = 126;
optional uint32 dsg_time_task_table_1 = 127;
optional uint32 dsg_time_task_table_2 = 128;
}
//SHP2
message shp2time
{
optional int32 unixtime = 1;
}
message shp2cmd
{
optional int32 max_current_amp = 10;
optional int32 unknown_22 = 22;
optional int32 unknown_23 = 23;
}
message shp2getreply
{
optional uint64 percent = 10;
}
message RtcHalData {
required int32 week = 1;
required int32 sec = 2;
required int32 min = 3;
required int32 hour = 4;
required int32 day = 5;
required int32 month = 6;
required int32 year = 7;
}
message ModelInfo {
optional string sn = 1;
}
message ErrCode {
repeated int32 err_code = 1;
}
message BackupEnergyTimeInfo
{
optional int32 charge_time = 1;
optional int32 discharge_time = 2;
}
message MasterTimeInfo
{
optional float grid_watt = 1;
optional int32 sys_timezone = 2;
optional int32 time_type = 3;
optional string timezone_id = 4;
}
message LoadTimeInfo
{
repeated int32 hall1_watt = 1;
repeated int32 hall1_curr = 2;
}
message BackupTimeInfo
{
optional int32 ch_watt = 1;
optional int32 backup_discharge_time = 2;
optional BackupEnergyTimeInfo energy_1 = 20;
optional BackupEnergyTimeInfo energy_2 = 21;
optional BackupEnergyTimeInfo energy_3 = 22;
}
message WattTimeInfo
{
optional int32 grid_watt = 1;
optional int32 ch_watt = 11;
optional int32 all_hall_watt = 21;
}
message MasterVerTimeInfo
{
optional int32 app_main_ver = 1;
optional int32 app_sub_ver = 2;
optional int32 app_dbg_ver = 3;
optional int32 app_test_ver = 4;
}
message MasterIncreInfo {
optional ErrCode errCode = 1;
optional int32 grid_sta = 2;
optional int32 grid_vol = 3;
optional int32 master_rly1_cnt = 4;
optional int32 master_rly2_cnt = 5;
optional int32 master_rly3_cnt = 6;
optional int32 master_rly4_cnt = 7;
optional int32 master_rly_err_flg = 16;
optional float backup_vol_L1_safe_data = 30;
optional float backup_vol_L2_safe_data = 31;
optional int32 backup_phase_diff_safe_data = 32;
optional float load_vol_L1_safe_data = 33;
optional float load_vol_L2_safe_data = 34;
optional int32 load_phase_diff_safe_data = 35;
optional float master_vol_L1_safe_data = 36;
optional float master_vol_L2_safe_data = 37;
optional int32 master_phase_diff_safe_data = 38;
}
message LoadSplitPhaseCfg
{
optional int32 link_mark = 1;
optional int32 link_ch = 2;
}
message LoadChInfo
{
optional LoadSplitPhaseCfg splitphase = 1;
optional int32 set_amp = 2;
optional int32 icon_num = 3;
optional string ch_name = 4;
optional int32 load_rly_cnt = 5;
optional int32 history_ch_watt_max = 6;
optional int32 load_sta = 7;
optional int32 ctrl_mode = 8;
}
message LoadChaSta
{
optional int32 load_sta = 1;
optional int32 ctrl_mode = 2;
optional int32 notice_set_time = 3;
optional int32 notice_enable = 4;
optional int32 notice_action = 5;
optional int32 load_rly_cnt = 6;
optional int32 history_ch_watt_max = 7;
optional int32 load_ch_switch_cause = 8;
}
message HallIncreInfo
{
optional ErrCode err_code= 1;
optional ModelInfo model_info = 2;
optional int32 mid_priority_discharge_time = 3;
optional int32 high_priority_discharge_time = 4;
optional LoadChInfo ch1_info = 30;
optional LoadChInfo ch2_info = 31;
optional LoadChInfo ch3_info = 32;
optional LoadChInfo ch4_info = 33;
optional LoadChInfo ch5_info = 34;
optional LoadChInfo ch6_info = 35;
optional LoadChInfo ch7_info = 36;
optional LoadChInfo ch8_info = 37;
optional LoadChInfo ch9_info = 38;
optional LoadChInfo ch10_info = 39;
optional LoadChInfo ch11_info = 40;
optional LoadChInfo ch12_info = 41;
optional LoadChaSta ch1_sta = 90;
optional LoadChaSta ch2_sta = 91;
optional LoadChaSta ch3_sta = 92;
optional LoadChaSta ch4_sta = 93;
optional LoadChaSta ch5_sta = 94;
optional LoadChaSta ch6_sta = 95;
optional LoadChaSta ch7_sta = 96;
optional LoadChaSta ch8_sta = 97;
optional LoadChaSta ch9_sta = 98;
optional LoadChaSta ch10_sta = 99;
optional LoadChaSta ch11_sta = 100;
optional LoadChaSta ch12_sta = 101;
}
message LoadIncreInfo
{
optional HallIncreInfo hall1_incre_info = 1;
}
message BackupEnergyIncreDevInfo
{
optional ModelInfo model_info = 1;
optional int32 type = 2;
optional int32 full_cap = 3;
optional float rate_power = 4;
}
message BackupEnergyIncreInfo
{
optional BackupEnergyIncreDevInfo dev_info = 1;
optional int32 is_enable = 2;
optional int32 is_connect = 3;
optional int32 is_ac_open= 4;
optional int32 is_power_output = 5;
optional int32 is_grid_charge = 6;
optional int32 is_mppt_charge = 7;
optional int32 battery_percentage = 8;
optional float output_power = 9;
optional int32 oil_pack_num = 10;
optional int32 mult_pack_num = 11;
optional int32 ems_chg_flag = 12;
optional int32 hw_connect = 13;
optional int32 ems_bat_temp = 14;
optional int32 lcd_input_watts = 15;
optional int32 pv_charge_watts = 16;
optional int32 pv_low_charge_watts = 17;
optional int32 pv_height_charge_watts = 18;
optional int32 error_code_num = 19;
}
message BackupChannelInfo
{
optional int32 backup_is_ready = 1;
optional int32 ctrl_sta = 2;
optional int32 force_charge_sta = 3;
optional int32 backup_rly1_cnt = 4;
optional int32 backup_rly2_cnt = 5;
optional int32 wake_up_charge_sta = 6;
optional int32 energy_5p8_type = 7;
}
message ProBackupEnergyIncreInfo
{
optional ModelInfo model_info = 1;
optional int32 is_connect = 2;
optional int32 battery_soc = 3;
optional int32 full_cap = 4;
optional float rate_power = 5;
optional int32 is_ac_open = 6;
optional float output_power = 7;
optional int32 ems_bat_temp = 8;
optional int32 lcd_input_watts = 9;
optional int32 pv_insert_state = 10;
optional int32 pv_low_charge_watts = 11;
optional int32 charge_time = 12;
optional int32 discharge_time = 13;
optional int32 error_code_num = 14;
}
message BackupIncreInfo
{
optional ErrCode errcode= 1;
optional int32 backup_full_cap = 2;
optional int32 backup_bat_per = 3;
optional int32 backup_discharge_rmain_bat_cap = 4;
optional int32 cur_discharge_soc = 5;
optional BackupChannelInfo backup_ch1_info = 60;
optional BackupChannelInfo backup_ch2_info = 61;
optional BackupChannelInfo backup_ch3_info = 62;
optional BackupEnergyIncreInfo Energy1_info = 80;
optional BackupEnergyIncreInfo Energy2_info = 81;
optional BackupEnergyIncreInfo Energy3_info = 82;
optional ProBackupEnergyIncreInfo Delta_pro1_info = 90;
optional ProBackupEnergyIncreInfo Delta_pro2_info= 91;
}
message StrategyChInfo
{
optional int32 load_is_enable = 1;
optional int32 load_priority = 2;
optional int32 load_priority_type = 3;
}
message EmergencyStrategy
{
optional int32 is_cfg = 1;
optional int32 backup_mode = 2;
optional int32 overload_mode = 3;
optional int32 mid_priority_ch_discharge_low = 4;
repeated StrategyChInfo hall1_ch_info = 5;
optional int32 is_enable = 7;
}
message TimeRangeStrategy
{
optional int32 is_cfg = 1;
optional int32 is_enable = 2;
optional int32 time_mode = 3;
optional int32 time_data = 4;
optional RtcHalData start_time = 5;
optional RtcHalData stop_time = 6;
}
message TimeScaleSta
{
optional int32 sta = 1;
}
message TimeTaskComCfg
{
optional int32 is_cfg = 1;
optional int32 is_enable = 2;
optional int32 type = 3;
optional RtcHalData set_time = 4;
optional TimeRangeStrategy time_range = 5;
optional TimeScaleSta time_scale = 6;
}
message BackupChargeCfg
{
optional int32 is_allow = 1;
optional int32 charge_watt = 2;
optional int32 low_soc = 3;
optional int32 high_soc = 4;
optional int32 backup_reserve_enable = 5;
optional int32 backup_reserve_soc = 6;
}
message BackupDischargeCfg
{
optional int32 is_allow = 1;
optional int32 discharge_watt = 2;
optional int32 low_soc = 3;
optional int32 backup_soc = 4;
}
message ChargeTimeCfg
{
optional int32 ch_charge_watt = 1;
optional int32 low_battery = 2;
optional int32 hight_battery = 3;
optional StrategyChInfo backup_ch_info = 4;
}
message DischargeTimeCfg
{
optional int32 mid_priority_ch_discharge_low = 1;
optional StrategyChInfo hall1_ch_info = 2;
}
message TimeTaskCfg
{
optional TimeTaskComCfg com_cfg = 1;
optional ChargeTimeCfg charge_cfg = 2;
optional DischargeTimeCfg discharge_cfg = 3;
}
// 1, 12
message ProtoTime
{
optional MasterTimeInfo master_info = 1;
optional LoadTimeInfo load_info = 2;
optional BackupTimeInfo backup_info = 3;
optional WattTimeInfo watt_info = 4;
optional MasterVerTimeInfo master_ver_info = 5;
}
message SysEventRecordItem
{
optional int32 sys_ms = 1;
optional int32 timestamp = 2;
optional int32 event_no= 3;
optional int32 dur_time = 4;
}
message SysEventRecordReport
{
optional int32 event_seq = 1;
optional SysEventRecordItem event_report = 2;
}
message SysEventInfoReportAck
{
optional int32 event_seq = 1;
optional int32 event_item_num =2;
}
message TouData
{
optional float tou_char_dischar_data = 1;
}
// 32, 12
message ProtoPushAndSet
{
optional int32 grid_vol = 1;
optional int32 grid_freq= 2;
optional int32 product_type = 3;
optional int32 eps_mode_info = 5;
optional int32 foce_charge_hight = 6;
optional int32 charge_watt_power = 7;
optional int32 disc_lower= 8;
optional int32 power_sta= 9;
optional int32 master_cur = 10;
optional int32 is_set_oil_engine = 11;
optional int32 oil_engine_watt = 12;
optional int32 is_get_cfg_flag = 14;
optional int32 has_config_done= 15;
optional int32 is_area_err = 16;
optional string area = 17;
optional int32 ch1_force_charge = 18;
optional int32 ch2_force_charge = 19;
optional int32 ch3_force_charge = 20;
optional int32 storm_is_enable = 21;
optional int32 storm_end_timestamp = 22;
optional int32 in_storm_mode = 23;
optional int32 ch1_enable_set = 24;
optional int32 ch2_enable_set = 25;
optional int32 ch3_enable_set = 26;
optional int32 oil_engine_to_back_charge_persent = 27;
optional int32 clear_ntc_over_temp_err = 28;
optional EmergencyStrategy LoadStrategyCfg = 30;
optional TimeTaskCfg TimeTaskCfg_1 = 31;
optional TimeTaskCfg TimeTaskCfg_2 = 32;
optional TimeTaskCfg TimeTaskCfg_3 = 33;
optional TimeTaskCfg TimeTaskCfg_4 = 34;
optional TimeTaskCfg TimeTaskCfg_5 = 35;
optional TimeTaskCfg TimeTaskCfg_6 = 36;
optional TimeTaskCfg TimeTaskCfg_7 = 37;
optional TimeTaskCfg TimeTaskCfg_8 = 38;
optional TimeTaskCfg TimeTaskCfg_9 = 39;
optional TimeTaskCfg TimeTaskCfg_10 = 40;
optional int32 ntc_over_temp_err = 41;
optional int32 unknown42 = 42;
optional int32 smart_backup_mode = 61;
optional int32 backup_reserve_enable = 62;
optional int32 backup_reserve_soc = 63;
optional int32 localTime = 64;
optional TouData toudata = 65;
optional float time_zone = 66;
optional int32 solar_backup_reserve_soc = 67;
optional int32 oil_type = 70;
optional int32 oil_max_output_watt = 71;
optional BackupIncreInfo backup_incre_info = 80;
optional LoadIncreInfo load_incre_info = 81;
optional MasterIncreInfo master_incre_info = 82;
optional int32 storm_request_flag = 90;
optional int32 storm_cur_time_stop_flag = 91;
optional int32 sys_cur_running_state = 92;
optional int32 rly1_real_sta = 93;
optional int32 rly2_real_sta = 94;
optional int32 rly3_real_sta = 95;
optional int32 rly4_real_sta = 96;
optional int32 cur_running_strategy = 97;
optional int32 reason_of_stop_dischar = 98;
optional int32 reason_os_stop_charge = 99;
optional int32 inlet_box_current = 100;
optional int32 reason_of_stop_dischar_ack = 101;
optional int32 reason_os_stop_charge_ack = 102;
optional int32 reconfig_flag = 103;
optional int32 phase_sub_value = 104;
optional int32 req_clear_data = 110;
optional int32 ack_clear_data = 111;
optional int32 clear_data_fail_sta = 112;
}
message BackupProtoTime
{
optional BackupTimeInfo backup_info = 1;
}
message LoadSafeDataTime
{
optional float load_vol_L1_time = 1;
optional float load_vol_L2_time = 2;
optional int32 load_phase_diff_time = 3;
}
message LoadProtoTime
{
optional LoadTimeInfo load_info = 1;
optional LoadSafeDataTime load_safe_info = 2;
}
message LoadHeartBeatTime
{
optional int32 time_stamp = 1;
}
message BackHeartTime
{
optional int32 time_stamp = 1;
}
message MasterToBackHeartBeatTime
{
optional int32 time_stamp = 1;
optional int32 grid_status = 2;
optional int32 error_state = 3;
optional int32 phase_sub_value = 4;
}
message MasterToLoadHeartTime
{
optional int32 time_stamp = 1;
}
message MasterToBackProtoPushAndSet
{
optional int32 grid_vol = 1;
optional int32 grid_freq = 2;
optional int32 stop_key_status = 3;
optional int32 grid_status = 4;
optional int32 is_area_err = 5;
optional int32 master_to_back_time_stamp = 6;
optional int32 is_get_backup_info = 7;
optional int32 open_door_flag = 8;
optional int32 overall_err_sta = 9;
optional BackupChargeCfg ch1_charge_cfg = 10;
optional BackupChargeCfg ch2_charge_cfg = 11;
optional BackupChargeCfg ch3_charge_cfg = 12;
optional int32 ch1_enable_set = 13;
optional int32 ch2_enable_set = 14;
optional int32 ch3_enable_set = 15;
optional BackupDischargeCfg ch1_discharge_cfg = 30;
optional BackupDischargeCfg ch2_discharge_cfg = 31;
optional BackupDischargeCfg ch3_discharge_cfg = 32;
optional float overall_load_pwr = 33;
optional float overall_load_pwr_L2 = 34;
optional int32 ch1_force_charge = 50;
optional int32 ch2_force_charge = 51;
optional int32 ch3_force_charge = 52;
optional ModelInfo mc_model_info = 70;
}
message BackToMasterProtoPush
{
optional int32 max_power = 1;
optional int32 output_power = 2;
optional BackupIncreInfo backup_incre_info = 3;
optional int32 backup_sys_sta = 4;
optional int32 back_to_master_time_stamp = 5;
optional int32 get_master_init_sta = 6;
optional float backup_vol_L1 = 7;
optional float backup_vol_L2 = 8;
optional float backup_watt_L1 = 9;
optional float backup_watt_L2 = 10;
optional int32 backup_phase_diff = 11;
optional float ch1_vol_L1 = 12;
optional float ch1_vol_L2 = 13;
optional float ch2_vol_L1 = 14;
optional float ch2_vol_L2 = 15;
optional float ch3_vol_L1 = 16;
optional float ch3_vol_L2 = 17;
optional int32 discharge_AC_out_sta = 20;
optional int32 rly_s3_sta = 21;
optional int32 dev_charge_err_sta = 22;
}
// ocean
message ocean_113_msg {
optional ocean_113_1_msg msg_1 = 1;
}
message ocean_113_1_msg {
repeated bpSta_msg bpSta = 1;
}
message bpSta_msg {
optional int32 soc1 = 1;
optional int32 status2 = 2;
optional string name3 = 3;
optional int32 unknown5 = 5;
optional int32 unknown6 = 6;
optional int32 unknown7 = 7;
optional int32 moduleAplSwVer8 = 8;
optional int32 moduleLoaderSwVer9 = 9;
}
message oceanConfig {
optional string emsSerial = 1;
optional string pcsSerial = 2;
repeated string bpSerial = 3;
}
message mpptPv {
optional float vol = 1;
optional float amp = 2;
optional float pwr = 3;
optional int32 lightSta = 4;
}
message mpptHeartBeat {
repeated mpptPv mpptPv = 1;
optional float mpptInsResist = 2;
repeated float mpptTempVal = 3;
}
message meterHeartBeat {
optional int32 meterType = 1;
optional int32 meterAddr = 2;
repeated float meterData = 3;
}
message pcsPhase {
optional float volt = 1;
optional float amp = 2;
optional float actPwr = 3;
optional float reactPwr = 4;
optional float apparentPwr = 5;
}
message JTS1_EMS_HEARTBEAT {
optional float bpRemainWatth = 1;
optional float pcsAcFreq = 11;
optional pcsPhase pcsAPhase = 12;
optional pcsPhase pcsBPhase = 13;
optional pcsPhase pcsCPhase = 14;
optional float pcsBusVolt = 16;
optional float pcsLeakAmp = 17;
optional float pcsDci = 18;
optional meterHeartBeat meterHeartBeat = 30;
optional mpptHeartBeat mpptHeartBeat = 31;
optional float pcsVbusRef = 32;
optional float pcsActivePowerRef = 33;
optional float pcsActivePowerLimitUp = 34; //evtl 33vs34 getauscht
optional float pcsActivePowerLimitDn =35;
optional int32 pcsRelayStateShow = 38;
optional int32 pcsGridSafetyFuncRecord = 39;
optional int32 pcsGridSafetyStateRecord = 40;
optional float pcsGridInvErrorRms = 41;
optional float pcsReactivePowerRef = 44;
optional float pcsVgridThd = 48;
optional float pcsInterruptOccupancyRate = 49;
optional float emsBusVolt = 56;
optional int32 emsBpAliveNum = 58;
optional float emsBpPower = 59;
optional float emsBpChg = 60;
optional float emsBpDsg = 61;
optional int32 emsSelfUsedCnt = 63;
optional int32 emsAcMakeupTriggleSoc = 64;
optional int32 emsAcMakeupExitSoc = 65;
optional int32 emsStartFsmState = 68;
optional int32 emsStopCmd = 71;
optional int32 iot4gErr = 72;
optional int32 emsMpptHbState = 80;
optional float emsNtcTempMax = 81;
optional float emsBusVoltErrSlidFilter = 82;
optional float emsBusVoltRipple = 83;
}
message JTS1_ENERGY_STREAM_REPORT {
optional float sysLoadPwr = 1;
optional float sysGridPwr = 2;
optional float mpptPwr = 3;
optional float bpPwr = 4;
optional int32 bpSoc = 5;
}
message JTS1_EMS_PARAM_CHANGE_REPORT {
/*
"smartCtrl": "False",
"energyEfficientEnable": "False",
"bpBurst": "False",
"lowerPowerStat": "False",
"sysZone": 0,
"sysTimeTab": 0
*/
optional int32 breakerCapacityMax = 7;
optional int32 breakerEnableState = 8;
}
message JTS1_LOGY_DEV_REPORT {
optional string devSn = 1;
optional int32 online =2;
repeated int32 errorCode = 7;
}
message JTS1_EMS_CHANGE_REPORT {
optional int32 bpSoc = 7;
optional int32 emsSysSelfCheckStat = 8;
optional int32 bpTotalChgEnergy = 13;
optional int32 bpTotalDsgEnergy = 14;
optional int32 emsFeedMode = 16;
optional int32 emsFeedRatio = 17;
optional int32 emsFeedPwr = 18;
optional float pcsOverVol1 = 31;
optional float pcsOverVol2 = 32;
optional float pcsLowVol1 = 37;
optional float pcsLowVol2 = 38;
optional float pcsLowVol3 = 39;
optional int32 pcsLowVolTime1 = 40;
optional int32 pcsLowVolTime2 = 41;
optional int32 pcsLowVolTime3 = 42;
optional float pcsOverFreq1 = 48;
optional float pcsOverFreq2 = 49;
optional float pcsLowFreq1 = 52;
optional float pcsLowFreq2 = 53;
optional float pcsOverFreqRecover = 56;
optional float pcsOverVolRideThroughStart1 = 60;
optional float pcsOverVolRideThroughStart2 = 61;
optional int32 pcsOverVolRideThroughProtectTime1 = 62;
optional int32 pcsOverVolRideThroughProtectTime2 = 63;
optional float pcsLowVolRideThroughStart1 = 64;
optional float pcsLowVolRideThroughStart2 = 65;
optional float pcsLowVolRideThroughStart3 = 66;
optional int32 pcsLowVolRideThroughProtectTime1 = 67;
optional int32 pcsLowVolRideThroughProtectTime2 = 68;
optional int32 pcsLowVolRideThroughProtectTime3 = 69;
optional float pcsActivePowerGradient = 75;
optional int32 pcsActivePowerSoftstartTime = 77;
optional float pcsOverFreqDeratingPowerBased = 79;
optional float pcsOverFreqDeratingStart = 80;
optional float pcsOverFreqDeratingEnd = 81;
optional float pcsOverFreqDeratingSlope = 82;
optional float pcsOverFreqDeratingRecoverSlope = 83;
optional float pcsUnderFreqIncrementStart = 87;
optional float pcsUnderFreqIncrementEnd = 88;
optional float pcsUnderFreqIncrementSlope = 89;
optional float pcsUnderFreqIncrementRecoverSlope = 90;
optional float pcsOverVolRecover = 94;
optional float pcsOverVolDeratingEnd = 95;
optional float pcsReactPwrCompensation = 100;
optional float pcsQuV1 = 103;
optional float pcsQuV2 = 104;
optional float pcsQuV3 = 105;
optional float pcsQuV4 = 106;
optional float pcsQuQ1 = 107;
optional float pcsQuQ2 = 108;
optional float pcsQuQ3 = 109;
optional float pcsQuQ4 = 110;
optional float pcsQuTimeConst = 111;
optional float pcsCospP1 = 112;
optional float pcsCospP2 = 113;
optional float pcsCospP3 = 114;
optional float pcsCospPf1 = 115;
optional float pcsCospPf2 = 116;
optional float pcsCospPf3 = 117;
optional int32 pcsOnGridWaitTime = 120;
optional float pcsHighFreqOnGrid = 123;
optional int32 pcsFaultRecoverOnGridWaitTime = 125;
optional float pcsFaultRecoverHighFreqOnGrid = 128;
optional float pcsFaultRecoverLowFreqOnGrid = 129;
optional int32 pcsPowerDeratingFlag = 130;
optional int32 pcsPowerDeratingSet = 131;
optional int32 sysMulPeakTime = 181;
optional int32 pcsRunFsmState = 193;
optional int32 pcsRelayStateShow = 204;
}
message bpStaReport {
optional float bpPwr =1;
optional int32 bpSoc =2;
optional int32 bpSoh =3;
repeated float bpTemp = 5 [packed=true];
optional int32 bpMaxCellVol = 6;
optional int32 bpMinCellVol = 7;
optional int32 bpRunSta = 8; //1=RUNSTA_RUN
optional float bpVol = 9;
optional float bpAmp = 10;
optional float bpBusVol =11;
optional int32 bpErrCode =13;
repeated float bpCellVol = 14 [packed=true];
optional int32 bpDsrc =15;
optional string bpSn = 16;
optional int32 bpCycles = 17;
optional int32 bpBalanceState = 18;
optional float bpHvMosTemp = 19;
optional float bpLvMosTemp = 20;
optional float bpPtcTemp= 21;
optional float bpHtsTemp = 22;
optional float bpBusNegTemp = 23;
optional float bpBusPosTemp = 24;
optional float bpEnvTemp = 25;
optional int32 bpAccuChgCap = 26;
optional int32 bpAccuDsgCap = 27;
optional int32 bpDesignCap = 28;
optional int32 bpFullCap = 29;
optional float bpMaxCellTemp = 30;
optional float bpMinCellTemp = 31;
optional float bpMaxMosTemp = 32;
optional float bpMinMosTemp = 33