diff --git a/00. 预研阶段/20241116 物盾EMU功能分解.xmind b/00. 预研阶段/20241116 物盾EMU功能分解.xmind new file mode 100644 index 0000000..ecb8cb9 Binary files /dev/null and b/00. 预研阶段/20241116 物盾EMU功能分解.xmind differ diff --git a/00. 预研阶段/20241218 电站设备拓扑.xmind b/00. 预研阶段/20241218 电站设备拓扑.xmind new file mode 100644 index 0000000..7571656 Binary files /dev/null and b/00. 预研阶段/20241218 电站设备拓扑.xmind differ diff --git a/00. 预研阶段/20241218 电站设备相关数据拓扑.xmind b/00. 预研阶段/20241218 电站设备相关数据拓扑.xmind new file mode 100644 index 0000000..aec5c19 Binary files /dev/null and b/00. 预研阶段/20241218 电站设备相关数据拓扑.xmind differ diff --git a/00. 预研阶段/wudun_EMS_MQTT.zip b/00. 预研阶段/wudun_EMS_MQTT.zip new file mode 100644 index 0000000..21737df Binary files /dev/null and b/00. 预研阶段/wudun_EMS_MQTT.zip differ diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/README.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/README.md new file mode 100644 index 0000000..e8999da --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/README.md @@ -0,0 +1,2 @@ +# 【未上线】二级EMS + diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/bms-control.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/bms-control.md new file mode 100644 index 0000000..c5ba6ea --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/bms-control.md @@ -0,0 +1,124 @@ +# 手动控制-BMS远程控制 + +## 发送bms远程控制策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``bms_control/set/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``bms_control/set/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型bms_setbms_set
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段(0, ∞)2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
battery_system_resetintfalse故障复位[0,1]1
high_voltage_commandintfalse接触器断开/闭合[0,1]0
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "type": "bms_set",
+  "data": {
+    "battery_system_reset":0,
+    "high_voltage_command":1,
+    },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +### 发送bms远程控制策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``bms_control/set``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``bms_control/set``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型bms_setbms_set
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
sub_device_uidstrtrue子设备UID
sub_device_idinttrue子设备ID2
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ + + +* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "bms_set", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "下发成功", + "sub_device_uid": "jHODSda39", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## + +## 请求同步bms远程控制策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``bms_control/sync/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``bms_control/sync/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
typestrtrue消息类型bms_syncbms_sync
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "bms_sync", + "sub_device_uid": "${SUB_DEVICE_UID}", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + + + +### 同步bms远程控制策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``bms_control/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``bms_control/sync/``result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型bms_syncbms_sync
code inttrue响应代码见响应代码
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** +* + +
参数类型是否必填描述范围样例
battery_system_resetintfalse故障复位[0,1]1
high_voltage_commandintfalse接触器断开/闭合[0,1]0
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "bms_sync",
+  "code": 200,
+  "data": {
+    "battery_system_reset":0,
+    "high_voltage_command":1,
+    },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/charge-depth.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/charge-depth.md new file mode 100644 index 0000000..f25e7d7 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/charge-depth.md @@ -0,0 +1,134 @@ +# 策略-充放电深度保护 + +## 上报放电深度保护策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_percentage/details``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_percentage/details``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_percentage_detailscharge_percentage_details
datadatatrue消息内容-Payload - ChargePercentage
sub_device_uidstrfalsesub_device_uid和sub_device_id根据实际情况二选一-jHODSda39
sub_device_idintfalsesub_device_uid和sub_device_id根据实际情况二选一-1
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargePercentage** + +
参数类型是否必填描述范围样例
charge_depth_oninttrue充电深度保护开关

0-关闭

1-开启

1
charge_energy_soc_1floattrue充电电量SOC-1[0.0, 100.0]
0代表不配置
99
charge_cell_voltage_1floattrue充电单体电压-1[0.00, ∞)
0代表不配置
3.6
charge_cell_power_1floattrue充电输出功率-1[0.0, ∞)0
charge_energy_soc_2floattrue充电电量SOC-2[0.0, 100.0]
0代表不配置
98
charge_cell_voltage_2floattrue充电单体电压-2[0.00, ∞)
0代表不配置
0
charge_cell_power_2floattrue充电输出功率-2[0.0, ∞)15
charge_energy_soc_3floattrue电量SOC-3[0.0, 100.0]
0代表不配置
97
charge_cell_voltage_3floattrue充电单体电压-3[0.00, ∞)
0代表不配置
0
charge_cell_power_3floattrue充电输出功率-3[0.0, ∞)30
charge_energy_soc_4floattrue电量SOC-4[0.0, 100.0]
0代表不配置
96
charge_cell_voltage_4floattrue充电单体电压-4[0.00, ∞)
0代表不配置
0
charge_cell_power_4floattrue充电输出功率-4[0.0, ∞)50
discharge_depth_oninttrue放电深度保护开关

0-关闭

1-开启

1
discharge_energy_soc_1floattrue放电电量SOC-1[0.0, 100.0]
0代表不配置
2
discharge_cell_voltage_1floattrue放电单体电压-1[0.00, ∞)
0代表不配置
3
discharge_cell_power_1floattrue放电输出功率-1[0.0, ∞)0
discharge_energy_soc_2floattrue放电电量SOC-2[0.0, 100.0]
0代表不配置
3
discharge_cell_voltage_2floattrue放电单体电压-2[0.00, ∞)
0代表不配置
0
discharge_cell_power_2floattrue放电输出功率-2[0.0, ∞)30
discharge_energy_soc_3floattrue放电电量SOC-3[0.0, 100.0]
0代表不配置
4
discharge_cell_voltage_3floattrue放电单体电压-3[0.00, ∞)
0代表不配置
0
discharge_cell_power_3floattrue放电输出功率-3[0.0, ∞)50
discharge_energy_soc_4floattrue放电电量SOC-4[0.0, 100.0]
0代表不配置
5
discharge_cell_voltage_4floattrue放电单体电压-4[0.00, ∞)
0代表不配置
0
discharge_cell_power_4floattrue放电输出功率-4[0.0, ∞)70
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "charge_percentage_details", + "data": { + "charge_depth_on": 1, + "charge_energy_soc_1": 99, + "charge_cell_voltage_1": 3.6, + "charge_cell_power_1": 0, + "charge_energy_soc_2": 98, + "charge_cell_voltage_2": 0, + "charge_cell_power_2": 15, + "charge_energy_soc_3": 97, + "charge_cell_voltage_3": 0, + "charge_cell_power_3": 30, + "charge_energy_soc_4": 96, + "charge_cell_voltage_4": 0, + "charge_cell_power_4": 50, + "discharge_depth_on": 1, + "discharge_energy_soc_1": 2, + "discharge_cell_voltage_1": 3, + "discharge_cell_power_1": 0, + "discharge_energy_soc_2": 3, + "discharge_cell_voltage_2": 0, + "discharge_cell_power_2": 30, + "discharge_energy_soc_3": 4, + "discharge_cell_voltage_3": 0, + "discharge_cell_power_3": 50, + "discharge_energy_soc_4": 5, + "discharge_cell_voltage_4": 0, + "discharge_cell_power_4": 70 + }, + "sub_device_id": 1, + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 + } +``` +{% endcode %} + +## 平台请求同步放电深度保护策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_percentage/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_percentage/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_percentage_synccharge_percentage_sync
codeinttrue响应代码-见响应代码
msgstrtrue失败原因-参数错误
sub_device_uidstrfalsesub_device_uid和sub_device_id根据实际情况二选一-jHODSda39
sub_device_idintfalsesub_device_uid和sub_device_id根据实际情况二选一-1
device_uidstrtrue设备ID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "charge_percentage_sync", + "code": 200, + "msg": "", + "sub_device_id": 1, + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + +### 同步放电深度保护策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``device_info/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``device_info/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_percentage_synccharge_percentage_sync
datadatatrue消息内容-Payload - ChargePercentage
sub_device_uidstrfalsesub_device_uid和sub_device_id根据实际情况二选一-jHODSda39
sub_device_idintfalsesub_device_uid和sub_device_id根据实际情况二选一-1
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +**Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "charge_percentage_sync",
+  "data": {
+        "charge_depth_on": 1,
+        "charge_energy_soc_1": 99,
+        "charge_cell_voltage_1": 3.6,
+        "charge_cell_power_1": 0,
+        "charge_energy_soc_2": 98,
+        "charge_cell_voltage_2": 0,
+        "charge_cell_power_2": 15,
+        "charge_energy_soc_3": 97,
+        "charge_cell_voltage_3": 0,
+        "charge_cell_power_3": 30,
+        "charge_energy_soc_4": 96,
+        "charge_cell_voltage_4": 0,
+        "charge_cell_power_4": 50,
+        "discharge_depth_on": 1,
+        "discharge_energy_soc_1": 2,
+        "discharge_cell_voltage_1": 3,
+        "discharge_cell_power_1": 0,
+        "discharge_energy_soc_2": 3,
+        "discharge_cell_voltage_2": 0,
+        "discharge_cell_power_2": 30,
+        "discharge_energy_soc_3": 4,
+        "discharge_cell_voltage_3": 0,
+        "discharge_cell_power_3": 50,
+        "discharge_energy_soc_4": 5,
+        "discharge_cell_voltage_4": 0,
+        "discharge_cell_power_4": 70
+  },
+  "sub_device_id": 1,
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/charge-strategy.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/charge-strategy.md new file mode 100644 index 0000000..6984d0a --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/charge-strategy.md @@ -0,0 +1,579 @@ +# 策略-均衡充放电 + +## 上报充放电策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/list``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/list``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_listcharge_list
datadatatrue消息内容-Payload - data/ChargeDetail
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeDetail** + +
参数类型是否必填描述范围样例
idinttrueID-1
charge_typeinttrue充放电类型(后续将支持更多类型)1-定时充放电1
statusinttrue策略开关0-关闭,
1-开启
1
yearinttrue(若mode=1,则year为必填;)2024
month[]inttrue月份选择(0代表一月)[0,11][1,7,8,11]
week_day[]intfalse星期选择(0代表星期一)[0,6][5,6]
dates[]intfalse日期选择(0代表1日)[0, 30](根据年份大小月份变化)[0,1]
modeinttrue模式(根据mode参数取值不同,校验week_day或dates是否必填)1-月日模式
2- 月周模式
1(若mode=1,则dates为必填;若mode=2,则week_day为必填
ems_devices[]emsDevicetrue设备列表--
settings[]chargeTimetrue充放电时间段--
apply_to_allbooltrue是否包括所有一级设备-false
+* **Payload - emsDevice** + +
参数类型是否必填描述范围样例
idinttrue设备ID-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - chargeTime** + +
参数类型是否必填描述范围样例
start_hourinttrue开始小时[0,23]20
start_minuteinttrue开始分钟[0,59]0
end_hourinttrue结束小时[0,23]0
end_minuteinttrue结束分钟[0,59]0
cdc_enable_modeinttrue充放电设定0-待机,
1-充电,
2-放电
1
run_powerinttrue运行功率(单位:kW)[0,65535]300
+ + * **时间说明:**`start_hour`, `start_minute`, `end_hour`, `end_minute`组成左闭右开的时间区间 + * 如`start_hour=14`, `start_minute=15`, `end_hour=15`, `end_minute=00`表示`[14:15, 15:00)`,即14:15开始到15:00前结束。 + * 如`start_hour=20`, `start_minute=00`, `end_hour=00`, `end_minute=00`表示`[20:00, 00:00)`,即20:00开始到后一天的00:00前结束 +* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "charge_list",
+  "data": [{
+    "id": 1
+    "charge_type": 1,
+    "status": 1,
+    "year": 2024,
+    "month": [
+      1,
+      7,
+      8,
+      11
+    ],
+    "dates" : [1,2],
+    "mode" : 1,
+    "ems_devices": [{
+      "id": 1
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+      "license": "xxxxx"
+    }],
+    "apply_to_all": false,
+    "settings": [
+      {
+        "start_hour": 20,
+        "start_minute": 0,
+        "end_hour": 0,
+        "end_minute": 0,
+        "cdc_enable_mode": 2,
+        "run_power": 300
+      },
+      {
+        "start_hour": 0,
+        "start_minute": 0,
+        "end_hour": 0,
+        "end_minute": 0,
+        "cdc_enable_mode": 21,
+        "run_power": 0
+      }
+    ]
+  },
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步充放电策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_synccharge_sync
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "charge_sync", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +### 同步充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_synccharge_sync
datadatatrue消息内容-Payload - data/ChargeDetail
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "charge_sync",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "code": 200,
+  "msg": "",
+  "data": [{
+    "id": 1,
+    "charge_type": 1,
+    "status": 1,
+    "year": 2024,
+    "month": [
+      1,
+      7,
+      8,
+      11
+    ],
+    "week_day": [
+      5,
+      6
+    ],
+    "mode":2,
+    "ems_devices": [{
+      "id": 1,
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+    }],
+    "apply_to_all": false,
+    "settings": [
+      {
+        "start_hour": 20,
+        "start_minute": 0,
+        "end_hour": 23,
+        "end_minute": 0,
+        "cdc_enable_mode": 2,
+        "run_power": 300
+      },
+      {
+        "start_hour": 0,
+        "start_minute": 0,
+        "end_hour": 0,
+        "end_minute": 0,
+        "cdc_enable_mode": 21,
+        "run_power": 0
+      }
+    ]
+  }],
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +## 下发创建充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/create``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/${DEVICE}/``charge/create``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_createcharge_create
datadatatrue消息内容-Payload - data/ChargeCreate
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeCreate** + +
参数类型是否必填描述范围样例
charge_typeinttrue充放电类型(后续将支持更多类型)1-定时充放电1
statusinttrue策略开关0-关闭,
1-开启
1
yearinttrue(若mode=1,则year为必填;)2024
month[]inttrue月份选择(0代表一月)[0,11][1,7,8,11]
week_day[]intfalse星期选择(0代表星期一)[0,6][5,6]
dates[]intfalse日期选择(0代表1日)【0,30】【0,1,2】
modeinttrue模式(根据mode 参数取值不同,校验week_day或dates是否必填)1-月日模式
2- 月周模式
1
ems_device_uids[]stringfalse设备列表UID(uids、ids、apply_to_all三选一)--
ems_device_ids[]intfalse设备列表ID(uids、ids、apply_to_all三选一)--
apply_to_allboolfalse是否包括所有一级设备(uids、ids、apply_to_all三选一)-true
settings[]chargeTimetrue充放电时间段--
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "charge_create", + "data": { + "charge_type": 1, + "status": 1, + "year": 2024 + "month": [ + 1, + 7, + 8, + 11 + ], + "week_day": [ + 5, + 6 + ], + "mode":2, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ], + // "ems_device_uids": [ + // "ZedmOtl4pc" + // ], + // "apply_to_all": true, + "ems_device_ids": [ + 1, 2, 3 + ] // ems_device_ids、ems_device_uids、apply_to_all 三选一 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 创建充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/create``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/create``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_createcharge_create
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
datadatatrue其他数据见data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Data** + + | 参数 | 类型 | 说明 | + | ---------- | --- | ------- | + | policy\_id | int | 充放电策略id | +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "charge_create", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "data": { + "policy_id": 1 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发修改充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/update``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/update``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_updatecharge_update
datadatatrue消息内容-Payload - data/ChargeUpdate
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeUpdate** + +
参数类型是否必填描述范围样例
idinttrue策略ID--
其余字段见Payload - data/ChargeCreatefalse
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "charge_update", + "data": { + "id": 1, + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 1, + 7, + 8, + 11 + ], + "week_day": [ + 5, + 6 + ], + "mode":2, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ], + // "ems_device_uids": [ + // "ZedmOtl4pc" + // ], + // "apply_to_all": true, + "ems_device_ids": [ + 1, 2, 3 + ] // ems_device_ids、ems_device_uids、apply_to_all 三选一 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 下发修改充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/update``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/update``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_updatecharge_update
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "charge_update", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发删除充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/delete``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/delete``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_deletecharge_delete
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue充放电策略ID-1
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "charge_delete",
+  "data": {
+    "id": 1,
+  },
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +### 下发删除充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/delete``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/delete``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_deletecharge_delete
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "charge_delete", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 批量下发充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/update_all``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/update_all``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_update_allcharge_update_all
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - Data: \[]ChargeCreate** +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "charge_update_all", + "data": [ + { + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 8 + ], + "week_day": [ + 6 + ], + "mode":2, + "apply_to_all": true, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ] + } + ], + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` + +### 批量下发充放电策略响应 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/update_all``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/update_all``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_update_allcharge_update_all
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "d90e64f6-6c71-43e1-a755-d034bb307ee2", + "type": "charge_update_all", + "device_uid": "iYRkfVpi77", + "timestamp": 1706521447074, + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "code": 200, +} +``` + +## 下发创建/更新充放电策略(根据支路ID) + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/by_node``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/${DEVICE}/``charge/by_node``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_by_nodecharge_by_node
datadatatrue消息内容-Payload - data/ChargeByNode
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeByNode** + +
参数类型是否必填描述范围样例
node_idinttrue支路节点ID--
其余字段见Payload - data/ChargeCreatefalse
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "charge_by_node", + "data": { + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 6 + ], + "week_day": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "mode": 2, + "node_id": 2, + "settings": [ + { + "start_hour": 20, + "start_minute": 0, + "end_hour": 0, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 300 + }, + { + "start_hour": 0, + "start_minute": 0, + "end_hour": 1, + "end_minute": 0, + "cdc_enable_mode": 1, + "run_power": 300 + } + ] + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 创建/更新充放电策略(根据支路ID)响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge/by_node``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge/by_node``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_by_nodecharge_by_node
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
datadatatrue其他数据见data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Data** + + | 参数 | 类型 | 说明 | + | ---------- | --- | ------- | + | policy\_id | int | 充放电策略id | +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "charge_by_node", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "data": { + "policy_id": 1 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/condition-control.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/condition-control.md new file mode 100644 index 0000000..dd172ed --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/condition-control.md @@ -0,0 +1,126 @@ +# 手动控制-冷却系统远程控制 + +## 发送液冷远程控制策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``condition_control/set/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``condition_control/set/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型condition_setcondition_set
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
power_onintfalse开机 (0:关机, 1:开机)[0,1]1
target_heating_pointfloatfalse加热目标温度[0,∞]0
target_cooling_pointfloatfalse制冷目标温度[0,∞]1
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "type": "condition_set",
+  "data": {
+    "power_on":1,
+    "target_heating_point":100,
+    "target_cooling_point":10,
+    },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +### 发送液冷远程控制策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``condition_control/set``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``condition_control/set``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型condition_setcondition_set
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
sub_device_uidstrtrue子设备UID
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段2
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ + + +* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "condition_set", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "下发成功", + "sub_device_uid": "jHODSda39", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## + +## 请求同步液冷远程控制策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``condition_control/sync/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``condition_control/sync/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
typestrtrue消息类型condition_synccondition_sync
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "condition_sync", + "sub_device_uid": "${SUB_DEVICE_UID}", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + + + +### 同步液冷远程控制策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``condition_control/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``condition_control/sync/``result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型condition_synccondition_sync
code inttrue响应代码见响应代码
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** +* + +
参数类型是否必填描述范围样例
power_onintfalse开机 (0:关机, 1:开机)[0,1]1
target_heating_pointfloatfalse加热目标温度[0,∞]0
target_cooling_pointfloatfalse制冷目标温度[0,∞]1
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "condition_sync",
+  "code": 200,
+  "data": {
+    "power_on":1,
+    "target_heating_point":100,
+    "target_cooling_point":10,
+    },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/device-event-1.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/device-event-1.md new file mode 100644 index 0000000..4bac055 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/device-event-1.md @@ -0,0 +1,838 @@ +--- +description: V2 +--- + +# 设备事件V2 + +## 定时上报信息 + +* **Topic:** + * 用户自定义MQTT: `v2/wudun/${PRODUCT_KEY}/${DEVICE}/``report/regular``/post` + * 平台默认MQTT: `v2/user/${TENANT}/${DEVICE}/``report/regular``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型report_regularreport_regular
data[]datatrue消息内容-Payload - data
sub_device_uidstrfalse子设备UID,仅二级替单个子设备上报时需要该字段-jHODSda39
sub_device_idintfalse子设备ID,仅二级替单个子设备上报时需要该字段(0, ∞)2
device_uidstrtrue设备ID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +### **Payload - data/ReportRegular** + +
参数类型是否必填描述样例
typestrtrue

sub_ems_fire: 一级EMS设备火警数据

sub_ems_aircon:一级EMS设备风冷数据

sub_ems_liquidcon:一级EMS设备液冷数据

sub_ems_bms: 一级EMS设备BMS数据

sub_ems_pcs: 一级EMS设备PCS数据
sub_elemeter: 电表数据
sub_elemeters: 电表批量上报数据
ems: 二级ems数据
photovoltaic_elemeter: 光伏(电表)数据
photovoltaic_inverter: 光伏(逆变器)数据
alternating_pail: 充电桩(交流充电桩)数据
direct_pail: 充电桩(直流充电桩)
pail_meter: 充电桩(电表)数据

"ems"
indexinttrue编号0
data

(SubEMSFire/SubEMSAircon/SubEMSLiquid)/

SubEMSBMS/SubEMSPCS/

EMSData/

SubEleMeterData/

PhotovoltaicMeterData/

PhotovoltaicInverterData/
DirectChargePailData/
AlternatingChargePailData/
ChargePailMeterData

true

一级EMS火警/风冷/液冷数据组合

一级EMS设备BMS数据

一级EMS设备PCS数据

二级EMS数据

电表数据

光伏电表类型

光伏逆变器类型
直流充电桩
交流充电桩
充电桩电表

-
+ +### **payload - RegularReportSubEMSFire** + +
参数类型是否必填描述样例
fire_smoke_alarm_statusintfalse烟雾传感器报警状态: 0-无烟雾告警,1-有烟感告警1
fire_flammable_gas_alarm_statusintfalse可燃气体传感器报警状态: 0-无可燃气体告警,1-有可燃气体告警1
fire_safety_equipments_statusintfalse消防装置状态: 0-正常(无动作);1、被启动(火警1
fire_safety_systemintfalse0-正常;1-故障1
fire_temperature_sensorfloatfalse温度传感器
fire_humidity_sensorfloatfalse湿度传感器
+ +### **payload - RegularReportSubEMSAircon** + +
参数类型是否必填描述样例
machine_statusintfalse

整机状态
0-未知
1-关机

2-制冷

3-制热

4-自循环

5-自动

6-待机

7-送风

cooling_statusintfalse制冷
0-停止
1-运行
heating_statusintfalse制热
0-停止
1-运行
coil_tempfloatfalse盘管温度(单位:℃)
condensing_tempfloatfalse冷凝温度(单位:℃)
exhaust_tempfloatfalse排气温度(单位:℃)
outdoor_tempfloatfalse环境温度/室外温度(单位:℃)
indoor_tempfloatfalse室内温度(单位:℃)
cooling_pointfloatfalse制冷点(单位:℃)
heating_pointfloatfalse加热点(单位:℃)
cooling_difffloatfalse制冷目标回差
heating_difffloatfalse加热目标回差
+ +### **payload - RegularReportSubEMSLiquidcon** + +
参数类型是否必填描述样例
machine_statusintfalse

整机状态
0-未知
1-关机

2-制冷

3-制热

4-自循环

5-自动

6-待机

7-送风

indoor_tempfloatfalse室内温度(单位:℃)
inlet_tempfloatfalse进水温度(单位:℃)
outlet_tempfloatfalse出水温度(单位:℃)
inlet_pressurefloatfalse进水口压力值(单位:bar)
outlet_pressurefloatfalse出水口压力值(单位:bar)
ambient_temperaturefloatfalse环境温度(单位:℃)
compressor_powerfloatfalse压缩机功率(单位:kW)
cooling_pointfloatfalse制冷点(单位:℃)
heating_pointfloatfalse加热点(单位:℃)
cooling_difffloatfalse制冷目标回差
heating_difffloatfalse加热目标回差
+ +### **payload - RegularReportSubEMSBMS** + +
参数类型是否必填描述样例
running_statusintfalse

bms运行状态

0-未知状态

1-停机

2-待机

3-充电

4-放电

1
total_alarm_statusintfalse

总告警

0-正常

1-告警

0
total_fault_statusintfalse

总故障

0-正常

1-故障

0
high_voltage_closed_statusintfalse

高压状态

0-断开

1-闭合

1
socfloatfalseSOC80.1
sohfloatfalseSOH90.2
current_chargeable_energyfloatfalse剩余充电电量1000
current_dis_chargeable_energyfloatfalse剩余放电电量2000
total_voltagefloatfalse组电压400
total_currentfloatfalse组电流-10
powerfloatfalse组功率4000
charge_accumulated_energyfloatfalse累计充电电量100000
discharge_accumulated_energyfloatfalse累计放电电量50000
daily_charge_energyfloatfalse日充电电量(单位:kWh)100
daily_discharge_energyfloatfalse日放电电量(单位:kWh)50
max_allowed_charge_powerfloatfalse允许充电最大功率5000
max_allowed_discharge_powerfloatfalse允许放电最大功率3000
max_allowed_charge_currentfloatfalse允许充电最大电流200
max_allowed_dis_charge_currentfloatfalse允许放电最大电流100
highest_cell_voltagefloatfalse最高单体电压4200
highest_voltage_id_cellintfalse最高单体电压对应编号3
lowest_cell_voltagefloatfalse最低单体电压4100
lowest_voltage_id_cellintfalse最低单体电压对应编号5
average_cell_voltagefloatfalse平均单体电压4150
highest_cell_tempfloatfalse最高单体温度40
highest_temp_idintfalse最高单体温度对应编号4
lowest_cell_tempfloatfalse最低单体温度-5
lowest_temp_idintfalse最低单体温度对应编号6
average_cell_temperaturefloatfalse平均单体温度20
voltage_difffloatfalse单体电压极差值100
temp_diffloatfalse单体温度极差值45
cell_voltage[]floatfalse单体电压(数组长度固定为700)[4150,4130,4110]
cell_temp[]floatfalse单体温度(数组长度固定为700)[20,23,21]
+ +### **payload - RegularReportSubEMSPCS** + +
参数类型是否必填描述样例
running_statusintfalsePCS运行状态
0-未知状态
1-停机
2-待机
3-充电
4-放电
2
pcs_total_active_powerfloatfalse交流_总有功功率(单位:kW)100
pcs_active_power_phase_afloatfalse交流_A相有功功率(单位:kW)0.16
pcs_active_power_phase_bfloatfalse交流_B相有功功率(单位:kW)0.17
pcs_active_power_phase_cfloatfalse交流_C相有功功率(单位:kW)0.18
pcs_total_reactive_powerfloatfalse交流_总无功功率(单位:kVar)0.26
pcs_reactive_power_phase_afloatfalse交流_A相无功功率(单位:kVar)0.19
pcs_reactive_power_phase_bfloatfalse交流_B相无功功率(单位:kVar)0.2
pcs_reactive_power_phase_cfloatfalse交流_C相无功功率(单位:kVar)0.21
pcs_voltage_phase_afloatfalse交流_A相电压(单位:V)1.1
pcs_voltage_phase_bfloatfalse交流_B相电压(单位:V)2.2
pcs_voltage_phase_cfloatfalse交流_C相电压(单位:V)3.3
pcs_current_phase_afloatfalse交流_A相电流(单位:A)0.13
pcs_current_phase_bfloatfalse交流_B相电流(单位:A)0.14
pcs_current_phase_cfloatfalse交流_C相电流(单位:A)0.15
pcs_total_power_factorfloatfalse交流_总功率因数0.28
pcs_power_factor_phase_afloatfalse交流_A相功率因数1.23
pcs_power_factor_phase_bfloatfalse交流_B相功率因数4.56
pcs_power_factor_phase_cfloatfalse交流_C相功率因数7.89
pcs_frequency_gridfloatfalse交流_电网总频率(单位:Hz)
pcs_frequency_phase_afloatfalse交流_A相频率(单位:Hz)
pcs_frequency_phase_bfloatfalse交流_B相频率(单位:Hz)
pcs_frequency_phase_cfloatfalse交流_C相频率(单位:Hz)
pcs_ac_daily_charge_energyfloatfalse交流_日充电量(单位:kWh)
pcs_ac_daily_discharge_energyfloatfalse交流_日放电量(单位:kWh)
pcs_ac_charge_accumulated_energyfloatfalse交流_总充电电量(单位:kWh)
pcs_ac_discharge_accumulated_energyfloatfalse交流_总放电电量(单位:kWh)
pcs_input_powerfloatfalse直流_功率(单位:kW)0.33
pcs_input_voltagefloatfalse直流_电压(单位:V)3.4
pcs_input_currentfloatfalse直流_电流(单位:A)0.35
pcs_alarm_statusintfalse告警状态
0-正常
1-告警
pcs_fault_statusintfalse故障状态
0-正常
1-故障
pcs_grid_voltage_abfloatfalseAB相电网线电压(单位:V)
pcs_grid_voltage_bcfloatfalseBC相电网线电压(单位:V)
pcs_grid_voltage_cafloatfalseCA相电网线电压(单位:V)
pcs_internal_tempfloatfalse设备内部腔体温度(单位:℃)
igbt_temp_phase_afloatfalseA相IGBT温度(单位:℃)
igbt_temp_phase_bfloatfalseB相IGBT温度(单位:℃)
igbt_temp_phase_cfloatfalseC相IGBT温度(单位:℃)
+ +### **payload - RegularReportEMS** + +
参数类型是否必填描述样例
modeintfalse运行模式
0-本地调试模式
1-本地自动模式
2-远程被动模式
charge_strategy待定false充放电策略
(仅mode为远程时有)
protection_strategy待定false安全保护
(仅mode为远程时有)
+ +### **payload - EMSData** + +
参数类型是否必填描述样例
totalEMSDataTotalfalse二级EMS汇总
statistics[]EMSDataStatisticsfalse支路下属储能设备运行统计
+ +### **payload - EMSDataTotal** + +
参数类型是否必填描述样例
running_statusintfalse运行状态
0-未知状态
1-停机
2-运行
socfloatfalse平均soc
pcs_total_active_powerfloatfalse当前总有功功率(单位:kW)
pcs_total_reactive_powerfloatfalse当前总无功功率(单位:kVar)
current_chargeable_energyfloatfalse剩余可充电电量(单位:kWh)
current_dischargeable_energyfloatfalse剩余可放电电量(单位:kWh)
max_charge_powerfloatfalse最大可充电功率(单位:kW)
max_discharge_powerfloatfalse最大可放电功率(单位:kW)
+ +### **payload - EMSDataStatistics** + +
参数类型是否必填描述样例
ele_meter_idintfalse电表编号
running_statusintfalse运行状态
0-未知状态
1-停机
2-运行
pcs_total_active_powerfloatfalse当前总有功功率(单位:kW)
socfloatfalse平均soc
+ +### **payload - SubEleMeterData** + +
参数类型是否必填描述样例
device_idinttrue设备ID2
uidstringfalse设备UID
purposeinttrue

电表用途

1-关口表

2-计量表

1
scenariointfalse

适用场景

1-储能

2-光伏

3-充电桩

1
total_active_powerfloatfalse总有功功率(单位:kW)100.5
active_power_phase_afloatfalseA相有功功率(单位:kW)101.5
active_power_phase_bfloatfalseB相有功功率(单位:kW)102.5
active_power_phase_cfloatfalseC相有功功率(单位:kW)103.5
total_reactive_powerfloatfalse总无功功率(单位:kVar)104.5
reactive_power_phase_afloatfalseA相无功功率(单位:kVar)105.5
reactive_power_phase_bfloatfalseB相无功功率(单位:kVar)106.5
reactive_power_phase_cfloatfalseC相无功功率(单位:kVar)107.5
total_apparent_powerfloatfalse总视在功率(单位:kVar)108.5
apparent_power_phase_afloatfalseA相视在功率(单位:kVA)109.5
apparent_power_phase_bfloatfalseB相视在功率(单位:kVA)110.5
apparent_power_phase_cfloatfalseC相视在功率(单位:kVA)111.5
total_power_factorfloatfalse总功率因数112.5
power_factor_phase_afloatfalseA相功率因数113.5
power_factor_phase_bfloatfalseB相功率因数114.5
power_factor_phase_cfloatfalseC相功率因数115.5
voltage_phase_afloatfalseA相电压(单位:V)116.5
voltage_phase_bfloatfalseB相电压(单位:V)117.5
voltage_phase_cfloatfalseC相电压(单位:V)118.5
current_phase_afloatfalseA相电流(单位:A)119.5
current_phase_bfloatfalseB相电流(单位:A)120.5
current_phase_cfloatfalseC相电流(单位:A)121.5
frequency_gridfloatfalse电网总频率(单位:Hz)122.5
frequency_phase_afloatfalseA相频率(单位:Hz)123.5
frequency_phase_bfloatfalseB相频率(单位:Hz)124.5
frequency_phase_cfloatfalseC相频率(单位:Hz)125.5
total_active_energyfloatfalse组合有功总电能(单位:kWh)125.5
total_active_energy_1floatfalse组合功费率1电能(单位:kWh)125.5
total_active_energy_2floatfalse组合功费率2电能(单位:kWh)125.5
total_active_energy_3floatfalse组合功费率3电能(单位:kWh)125.5
total_active_energy_4floatfalse组合功费率4电能(单位:kWh)125.5
total_forward_active_energyfloatfalse正向有功总电能(单位:kWh)126.5
forward_active_energy_sharpfloatfalse正向有功尖电能(单位:kWh)127.5
forward_active_energy_peakfloatfalse正向有功峰电能(单位:kWh)128.5
forward_active_energy_flatfloatfalse正向有功平电能(单位:kWh)129.5
forward_active_energy_valleyfloatfalse正向有功谷电能(单位:kWh)130.5
forward_active_energy_1floatfalse正向有功费率1电能(单位:kWh)127.5
forward_active_energy_2floatfalse正向有功费率2电能(单位:kWh)128.5
forward_active_energy_3floatfalse正向有功费率3电能(单位:kWh)129.5
forward_active_energy_4floatfalse正向有功费率4电能(单位:kWh)130.5
total_reverse_active_energyfloatfalse反向有功总电能(单位:kWh)131.5
reverse_active_energy_sharpfloatfalse反向有功尖电能(单位:kWh)132.5
reverse_active_energy_peakfloatfalse反向有功峰电能(单位:kWh)133.5
reverse_active_energy_flatfloatfalse反向有功平电能(单位:kWh)134.5
reverse_active_energy_valleyfloatfalse反向有功谷电能(单位:kWh)135.5
reverse_active_energy_1floatfalse反向有功费率1电能(单位:kWh)132.5
reverse_active_energy_2floatfalse反向有功费率2电能(单位:kWh)133.5
reverse_active_energy_3floatfalse反向有功费率3电能(单位:kWh)134.5
reverse_active_energy_4floatfalse反向有功费率4电能(单位:kWh)135.5
max_demand_forward_active_powerfloatfalse正向有功最大需量(单位:kVar)657
occurred_time_forward_activeintfalse正向有功最大需量发生时间戳(单位:秒)1719398925
max_demand_reverse_active_powerfloatfalse反向有功最大需量(单位:kVar)342
occurred_time_reverse_active​intfalse反向有功最大需量发生时间戳(单位:秒)1719398925
max_demand_forward_reactive_powerfloatfalse正向无功最大需量(单位:kVar)357
occurred_time_forward_reactiveintfalse正向无功最大需量发生时间戳(单位:秒)1719398925
max_demand_reverse_reactive_powerfloatfalse反向无功最大需量(单位:kVar)342
occurred_time_reverse_reactiveintfalse反向无功最大需量发生时间戳(单位:秒)1719398925
instantaneous_apparent_powerfloatfalse实时视在需量(单位:KVA)123
+ +### **payload - PhotovoltaicMeterData** + +_与SubEleMeterData一致_ + +### **payload - PhotovoltaicInverterData** + +| 参数 | 类型 | 是否必填 | 描述 | 样例 | +| ------------------------------------------- | ------- | ---- | ------------------------------------------------------------- | ---- | +| direct\_current\_voltage | float64 | 否 | 直流侧(DC)电压(V) | 500 | +| direct\_current\_current | float64 | 否 | 直流侧(DC)电流(A) | 100 | +| alternating\_current\_voltage\_a | float64 | 否 | 交流侧(AC)A相电压(V) | 230 | +| alternating\_current\_voltage\_b | float64 | 否 | 交流侧(AC)B相电压(V) | 230 | +| alternating\_current\_voltage\_c | float64 | 否 | 交流侧(AC)C相电压(V) | 230 | +| alternating\_current\_current\_a | float64 | 否 | 交流侧(AC)A相电流(A) | 50 | +| alternating\_current\_current\_b | float64 | 否 | 交流侧(AC)B相电流(A) | 50 | +| alternating\_current\_current\_c | float64 | 否 | 交流侧(AC)C相电流(A) | 50 | +| direct\_current\_input\_power | float64 | 否 | 直流输入功率(kW) | 50 | +| alternating\_current\_output\_power | float64 | 否 | 交流输出功率(kW) | 45 | +| total\_active\_power | float64 | 否 | 有功功率(kW) | 40 | +| total\_reactive\_power | float64 | 否 | 无功功率(kVar) | 10 | +| alternating\_current\_output\_frequency | float64 | 否 | 交流输出频率(Hz) | 50 | +| inverter\_efficiency | float64 | 否 | 逆变器效率 | 98.5 | +| inverter\_internal\_temp | float64 | 否 | 逆变器内部温度(℃) | 45 | +| inverter\_heatsink\_temp | float64 | 否 | 散热器温度(℃) | 50 | +| running\_status | int | 否 |

当前运行状态

1-停机

2-待机

5-运行

7-故障

| 1 | +| fault\_status | int | 否 | 故障代码 | 0 | +| alternating\_current\_output\_power\_factor | float64 | 否 | 交流输出功率因数 | 0.95 | +| ambient\_temp | float64 | 否 | 环境温度(℃) | 30 | +| irradiance | float64 | 否 | 辐射强度(W/m²) | 800 | + +### **payload - AlternatingChargePailData** + +
参数类型是否必填描述样例
total_activefloatfalse总有功功率(单位:kW)100.5
active_power_phase_afloatfalseA相有功功率(单位:kW)101.5
active_power_phase_bfloatfalseB相有功功率(单位:kW)102.5
active_power_phase_cfloatfalseC相有功功率(单位:kW)103.5
total_reactive_powerfloatfalse总无功功率(单位:kVar)104.5
reactive_power_phase_afloatfalseA相无功功率(单位:kVar)105.5
reactive_power_phase_bfloatfalseB相无功功率(单位:kVar)106.5
reactive_power_phase_cfloatfalseC相无功功率(单位:kVar)107.5
total_apparent_powerfloatfalse总视在功率(单位:kVar)108.5
apparent_power_phase_afloatfalseA相视在功率(单位:kVA)109.5
apparent_power_phase_bfloatfalseB相视在功率(单位:kVA)110.5
apparent_power_phase_cfloatfalseC相视在功率(单位:kVA)111.5
total_power_factorfloatfalse总功率因数112.5
power_factor_phase_afloatfalseA相功率因数113.5
power_factor_phase_bfloatfalseB相功率因数114.5
power_factor_phase_cfloatfalseC相功率因数115.5
a_phase_voltagefloatfalseA相电压(单位:V)116.5
b_phase_voltagefloatfalseB相电压(单位:V)117.5
c_phase_voltagefloatfalseC相电压(单位:V)118.5
a_phase_currentfloatfalseA相电流(单位:A)119.5
b_phase_currentfloatfalseB相电流(单位:A)120.5
c_phase_currentfloatfalseC相电流(单位:A)121.5
frequency_gridfloatfalse电网总频率(单位:Hz)122.5
frequency_phase_afloatfalseA相频率(单位:Hz)123.5
frequency_phase_bfloatfalseB相频率(单位:Hz)124.5
frequency_phase_cfloatfalseC相频率(单位:Hz)125.5
total_electric_energyfloatfalse累计并入电网总电能)123.5
current_electric_energyfloatfalse当前并入电网电能123.5
+ +### **payload - DirectChargePailData** + +
参数类型是否必填描述样例
input_powerfloatfalse输入功率100.5
output_powerfloatfalse输出功率101.5
input_voltagefloatfalse输入电压102.5
output_voltagefloatfalse输出电压103.5
input_currentfloatfalse输入电流104.5
output_currentfloatfalse输出电流105.5
total_apparent_powerfloatfalse总视在功率(单位:kVar)108.5
total_power_factorfloatfalse总功率因数112.5
total_electric_energyfloatfalse累计充电电量113.5
current_electric_energyfloatfalse当前充电电量114.5
total_activefloatfalse总有功功率114.5
total_reactive_powerfloatfalse总无功功率115.5
a_phase_voltagefloatfalseA相电压(单位:V)116.5
b_phase_voltagefloatfalseB相电压(单位:V)117.5
c_phase_voltagefloatfalseC相电压(单位:V)118.5
frequency_gridfloatfalse电网总频率(单位:Hz)122.5
+ +### **payload - PailEleMeterData** + +_**SubEleMeterData一致**_ + +### **Payload示例 - sub\_ems\_fire和sub\_ems\_aircon/sub\_ems\_liquidcon组合数据** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "085be8f4-2f7b-488d-8a93-d0c7dcd7f033", + "mid": "044b29cf-565e-434d-82a6-364411af6a71", + "type": "report_regular", + "sub_device_id": 2, + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251899, + "data": [{ + "type": "sub_ems_fire", + "index": 0, + "data": { + "fire_status": 1, + } + },{ + "type": "sub_ems_aircon", // "sub_ems_aircon" / "sub_ems_liquidcon" + "index": 0, + "data": { + "machine_status": 1, + "cooling_status": 1, + "heating_status": 1, + "coil_temp": 26.9, + "condensing_temp": 5.1, + "exhaust_temp": 22.1, + "outdoor_temp": 20.7, + "indoor_temp": 28.4, + "cooling_point": 16.2, + "heating_point": 28.5, + "cooling_diff": 7.4, + "heating_diff": 13.1 + } + }] +} +``` +{% endcode %} + +### **Payload示例 - sub\_ems\_bms** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "085be8f4-2f7b-488d-8a93-d0c7dcd7f033", + "mid": "044b29cf-565e-434d-82a6-364411af6a71", + "type": "report_regular", + "sub_device_id": 2, + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251899, + "data": [{ + "type": "sub_ems_bms", + "index": 0, + "data": { + "running_status": 1, + "soc": 80, + "soh": 90, + "current_chargeable_energy": 1000, + "current_dis_chargeable_energy": 2000, + "total_voltage": 400, + "total_current": -10, + "power": 4000, + "charge_accumulated_energy": 100000, + "discharge_accumulated_energy": 50000, + "daily_charge_energy": 100, + "daily_discharge_energy": 50, + "max_allowed_charge_power": 5000, + "max_allowed_discharge_power": 3000, + "max_allowed_charge_current": 200, + "max_allowed_dis_charge_current": 100, + "highest_cell_voltage": 4200, + "highest_voltage_id_cell": 3, + "lowest_cell_voltage": 4100, + "lowest_voltage_id_cell": 5, + "average_cell_voltage": 4150, + "highest_cell_temp": 40, + "highest_temp_id": 4, + "lowest_cell_temp": -5, + "lowest_temp_id": 6, + "average_cell_temperature": 20, + "cell_voltage_range": 100, + "cell_temperature_range": 45, + "cell_voltage": [4150,4130,4110...], // 数组长度固定为700 + "cell_temp": [20,23,21...] // 数组长度固定为700 + } + },{ + "type": "sub_ems_bms", + "index": 1, + "data": { + "running_status": 1, + "soc": 80, + "soh": 90, + "current_chargeable_energy": 1000, + "current_dis_chargeable_energy": 2000, + "total_voltage": 400, + "total_current": -10, + "power": 4000, + "charge_accumulated_energy": 100000, + "discharge_accumulated_energy": 50000, + "daily_charge_energy": 100, + "daily_discharge_energy": 50, + "max_allowed_charge_power": 5000, + "max_allowed_discharge_power": 3000, + "max_allowed_charge_current": 200, + "max_allowed_dis_charge_current": 100, + "highest_cell_voltage": 4200, + "highest_voltage_id_cell": 3, + "lowest_cell_voltage": 4100, + "lowest_voltage_id_cell": 5, + "average_cell_voltage": 4150, + "highest_cell_temp": 40, + "highest_temp_id": 4, + "lowest_cell_temp": -5, + "lowest_temp_id": 6, + "average_cell_temperature": 20, + "cell_voltage_range": 100, + "cell_temperature_range": 45, + "cell_voltage": [4150,4130,4110...], // 数组长度固定为700 + "cell_temp": [20,23,21...] // 数组长度固定为700 + } + }] +} +``` +{% endcode %} + +### **Payload示例 - sub\_ems\_pcs** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "085be8f4-2f7b-488d-8a93-d0c7dcd7f033", + "mid": "044b29cf-565e-434d-82a6-364411af6a71", + "type": "report_regular", + "sub_device_id": 2, + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251899, + "data": [{ + "type": "sub_ems_pcs", + "index": 0, + "data": { + "running_status": 2, + "pcs_total_active_power": 2500, + "pcs_active_power_phase_a": null, + "pcs_active_power_phase_b": null, + "pcs_active_power_phase_c": null, + "pcs_total_reactive_power": 444.4, + "pcs_reactive_power_phase_a": null, + "pcs_reactive_power_phase_b": null, + "pcs_reactive_power_phase_c": null, + "pcs_voltage_phase_a": 0, + "pcs_voltage_phase_b": 0, + "pcs_voltage_phase_c": 0, + "pcs_current_phase_a": 1.2, + "pcs_current_phase_b": 2.3, + "pcs_current_phase_c": 3.4, + "pcs_total_power_factor": 8.88, + "pcs_power_factor_phase_a": null, + "pcs_power_factor_phase_b": null, + "pcs_power_factor_phase_c": null, + "pcs_frequency_grid": null, + "pcs_frequency_phase_a": null, + "pcs_frequency_phase_b": null, + "pcs_frequency_phase_c": null, + "pcs_ac_daily_charge_energy": 0, + "pcs_ac_daily_discharge_energy": 0, + "pcs_ac_charge_accumulated_energy": 0, + "pcs_ac_discharge_accumulated_energy": 0, + "pcs_input_power": 4.4, + "pcs_input_voltage": 3.3, + "pcs_input_current": 4.4, + "pcs_alarm_status": 0, + "pcs_fault_status": 0, + "pcs_grid_voltage_ab": 0, + "pcs_grid_voltage_bc": 0, + "pcs_grid_voltage_ca": 0, + "pcs_internal_temp": 7.7, + "igbt_temp_phase_a": 0, + "igbt_temp_phase_b": 0, + "igbt_temp_phase_c": 0 + } + }] +} +``` +{% endcode %} + +### **Payload示例 - ems** + +```json +{ + "trace_id": "a73f409b-69db-469d-ab46-5913e3cbb73a", + "mid": "33c71134-f57f-42d5-a76a-bd225ba09faf", + "type": "report_regular", + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251904, + "data": { + "type": "ems", + "data": { + "total": { + "running_status": 2, + "device_count": 3, + "soc": 95.33333333333333, + "pcs_total_active_power": 2500, + "pcs_total_reactive_power": 444.4, + "current_chargeable_energy": 4.4, + "current_dischargeable_energy": 2.2, + "max_charge_power": 582, + "max_discharge_power": 582 + }, + "statistics": [ + { + "ele_meter_id": 1, + "running_status": 2, + "pcs_total_active_power": 88.1, + "soc": 52.4 + }, + { + "ele_meter_id": 2, + "running_status": 2, + "pcs_total_active_power": 88.2, + "soc": 52.8 + } + ] + } + } +} +``` + +### **Payload示例 - sub\_elemeter** + +```json +{ + "trace_id": "2f492a12-5408-40b3-b347-ed64a3723050", + "mid": "d39835f5-2087-4601-8a12-85bb2bceb690", + "type": "report_regular", + "device_uid": "xxxxxxxxxx", + "timestamp": 1705563840345, + "data": [ + { + "type": "sub_elemeter", + "index": 0, + "data": { + "device_id": 1, + "uid": "", + "purpose": 2, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_active_energy": 234.1, + "total_active_energy_1": 234.1, + "total_active_energy_2": 234.1, + "total_active_energy_3": 234.1, + "total_active_energy_4": 234.1, + "total_forward_active_energy": 126.5, + "forward_active_energy_1": 0, + "forward_active_energy_2": 123.8, + "forward_active_energy_3": 424, + "forward_active_energy_4": 436.4, + "total_reverse_active_energy": 134.4, + "reverse_active_energy_1": 0, + "reverse_active_energy_2": 123.6, + "reverse_active_energy_3": 235.8, + "reverse_active_energy_4": 134, + "max_demand_forward_active_power": 124, + "occurred_time_forward_active": 1720752678, + "max_demand_reverse_active_power": 2343, + "occurred_time_reverse_active": 1720752678, + "max_demand_forward_reactive_power": 432, + "occurred_time_forward_reactive": 1720752678, + "max_demand_reverse_reactive_power": 563, + "occurred_time_reverse_reactive": 1720752678, + "instantaneous_apparent_power": 234 + } + } + ] +} + +``` + +### **Payload示例 - sub\_elemeters** + +```json +{ + "trace_id": "2f492a12-5408-40b3-b347-ed64a3723050", + "mid": "d39835f5-2087-4601-8a12-85bb2bceb690", + "type": "report_regular", + "device_uid": "xxxxxxxxxx", + "timestamp": 1705563840345, + "data": { + "type": "sub_elemeters", + "data": [ + { + "device_id": 1, + "uid": "", + "purpose": 2, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_active_energy": 234.1, + "total_active_energy_1": 234.1, + "total_active_energy_2": 234.1, + "total_active_energy_3": 234.1, + "total_active_energy_4": 234.1, + "total_forward_active_energy": 126.5, + "forward_active_energy_1": 0, + "forward_active_energy_2": 123.8, + "forward_active_energy_3": 424, + "forward_active_energy_4": 436.4, + "total_reverse_active_energy": 134.4, + "reverse_active_energy_1": 0, + "reverse_active_energy_2": 123.6, + "reverse_active_energy_3": 235.8, + "reverse_active_energy_4": 134, + "max_demand_forward_active_power": 124, + "occurred_time_forward_active": 1720752678, + "max_demand_reverse_active_power": 2343, + "occurred_time_reverse_active": 1720752678, + "max_demand_forward_reactive_power": 432, + "occurred_time_forward_reactive": 1720752678, + "max_demand_reverse_reactive_power": 563, + "occurred_time_reverse_reactive": 1720752678, + "instantaneous_apparent_power": 234 + }, + { + "device_id": 2, + "uid": "", + "purpose": 2, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_active_energy": 234.1, + "total_active_energy_1": 234.1, + "total_active_energy_2": 234.1, + "total_active_energy_3": 234.1, + "total_active_energy_4": 234.1, + "total_forward_active_energy": 126.5, + "forward_active_energy_1": 0, + "forward_active_energy_2": 123.8, + "forward_active_energy_3": 424, + "forward_active_energy_4": 436.4, + "total_reverse_active_energy": 134.4, + "reverse_active_energy_1": 0, + "reverse_active_energy_2": 123.6, + "reverse_active_energy_3": 235.8, + "reverse_active_energy_4": 134, + "max_demand_forward_active_power": 124, + "occurred_time_forward_active": 1720752678, + "max_demand_reverse_active_power": 2343, + "occurred_time_reverse_active": 1720752678, + "max_demand_forward_reactive_power": 432, + "occurred_time_forward_reactive": 1720752678, + "max_demand_reverse_reactive_power": 563, + "occurred_time_reverse_reactive": 1720752678, + "instantaneous_apparent_power": 234 + }, + { + "device_id": 3, + "uid": "", + "purpose": 2, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_active_energy": 234.1, + "total_active_energy_1": 234.1, + "total_active_energy_2": 234.1, + "total_active_energy_3": 234.1, + "total_active_energy_4": 234.1, + "total_forward_active_energy": 126.5, + "forward_active_energy_1": 0, + "forward_active_energy_2": 123.8, + "forward_active_energy_3": 424, + "forward_active_energy_4": 436.4, + "total_reverse_active_energy": 134.4, + "reverse_active_energy_1": 0, + "reverse_active_energy_2": 123.6, + "reverse_active_energy_3": 235.8, + "reverse_active_energy_4": 134, + "max_demand_forward_active_power": 124, + "occurred_time_forward_active": 1720752678, + "max_demand_reverse_active_power": 2343, + "occurred_time_reverse_active": 1720752678, + "max_demand_forward_reactive_power": 432, + "occurred_time_forward_reactive": 1720752678, + "max_demand_reverse_reactive_power": 563, + "occurred_time_reverse_reactive": 1720752678, + "instantaneous_apparent_power": 234 + } + ] + } +} +``` + +### **Payload示例 -** photovoltaic\_elemeter + +```json +{ + "trace_id": "144d6384-c32a-4221-ad44-5d0063128441", + "mid": "f76612ce-b8aa-4bab-8138-7e7fc74bcbcf", + "type": "report_regular", + "sub_device_id": 1, + "device_uid": "xxxxxxxxxx", + "timestamp": 1721180810009, + "data": [ + { + "type": "photovoltaic_meter", + "index": 0, + "data": { + "total_active_power": 2359.333, + "active_power_phase_a": 1966.111, + "active_power_phase_b": 2097.185, + "active_power_phase_c": 2228.259, + "total_reactive_power": 2883.629, + "reactive_power_phase_a": 2490.407, + "reactive_power_phase_b": 2621.481, + "reactive_power_phase_c": 2752.555, + "total_apparent_power": 3407.925, + "apparent_power_phase_a": 3014.703, + "apparent_power_phase_b": 3145.777, + "apparent_power_phase_c": 3276.851, + "total_power_factor": 0.057, + "power_factor_phase_a": 0.054, + "power_factor_phase_b": 0.055, + "power_factor_phase_c": 0.056, + "voltage_phase_a": 2, + "voltage_phase_b": 2.1, + "voltage_phase_c": 2.2, + "current_phase_a": 0.26, + "current_phase_b": 0.27, + "current_phase_c": 0.28, + "frequency_grid": 0.59, + "frequency_phase_a": null, + "frequency_phase_b": null, + "frequency_phase_c": null, + "total_active_energy": null, + "total_active_energy_1": null, + "total_active_energy_2": null, + "total_active_energy_3": null, + "total_active_energy_4": null, + "total_forward_active_energy": 0.99, + "forward_active_energy_sharp": 271978.56, + "forward_active_energy_peak": 273289.3, + "forward_active_energy_flat": 274600.04, + "forward_active_energy_valley": 275910.78, + "forward_active_energy_1": 271978.56, + "forward_active_energy_2": 273289.3, + "forward_active_energy_3": 274600.04, + "forward_active_energy_4": 275910.78, + "total_reverse_active_energy": 0.88, + "reverse_active_energy_sharp": 277221.52, + "reverse_active_energy_peak": 278532.26, + "reverse_active_energy_flat": 279843, + "reverse_active_energy_valley": 281153.74, + "reverse_active_energy_1": 277221.52, + "reverse_active_energy_2": 278532.26, + "reverse_active_energy_3": 279843, + "reverse_active_energy_4": 281153.74 + } + } + ] +} +``` + +### **Payload示例 -** photovoltaic\_inverter + +
{
+    "trace_id": "d882e331-ba8b-4b7a-8ab7-0690786844c8",
+    "mid": "b15d71d6-48f5-4aeb-83e8-2dc828a75701",
+    "type": "report_regular",
+    "sub_device_id": 1,
+    "device_uid": "xxxxxxxxxx",
+    "timestamp": 1721119850008,
+    "data": [
+        {
+            "type": "photovoltaic_inverter",
+            "index": 0,
+            "data": {
+                "alternating_current_voltage_a": 77.2,
+                "alternating_current_voltage_b": 77.3,
+                "alternating_current_voltage_c": 77.4,
+                "alternating_current_current_a": 77.5,
+                "alternating_current_current_b": 77.6,
+                "alternating_current_current_c": 77.7,
+                "direct_current_voltage": 79.6,
+                "direct_current_current": null,
+                "direct_current_input_power": null,
+                "alternating_current_output_power": 55706.451,
+                "total_active_power": null,
+                "total_reactive_power": 58524.542,
+                "alternating_current_output_frequency": 6671666.7,
+                "inverter_efficiency": null,
+                "inverter_internal_temp": 78.3,
+                "inverter_heatsink_temp": null,
+                "running_status": 0,
+                "fault_status": 785,
+                "alternating_current_output_power_factor": 0.886,
+                "ambient_temp": null,
+                "irradiance": null
+            }
+        }
+    ]
+}
+
+ +### **Payload示例 -** alternating\_pail + +```json +{ + "trace_id": "d882e331-ba8b-4b7a-8ab7-0690786844c8", + "mid": "b15d71d6-48f5-4aeb-83e8-2dc828a75701", + "type": "report_regular", + "sub_device_id": 1, + "device_uid": "xxxxxxxxxx", + "timestamp": 1721119850008, + "data": [ + { + "type": "alternating_pail", + "index": 0, + "data": { + "a_phase_voltage": 1.1, + "b_phase_voltage": 2.2, + "c_phase_voltage": 3.3, + "a_phase_current": 0.44, + "b_phase_current": 0.55, + "c_phase_current": 0.66, + "total_active": 50, + "active_power_phase_a": 0.099, + "active_power_phase_b": 0.099, + "active_power_phase_c": 0.099, + "total_reactive_power": 0.123, + "reactive_power_phase_a": 0.099, + "reactive_power_phase_b": 0.099, + "reactive_power_phase_c": 0.099, + "total_apparent_power": 0.234, + "apparent_power_phase_a": 0.099, + "apparent_power_phase_b": 0.099, + "apparent_power_phase_c": 0.099, + "total_power_factor": 8.88, + "power_factor_phase_a": 5.55, + "power_factor_phase_b": 6.66, + "power_factor_phase_c": 7.77, + "frequency_grid": 50, + "frequency_phase_a": null, + "frequency_phase_b": null, + "frequency_phase_c": null, + "total_electric_energy": 0, + "current_electric_energy": 0 + } + } + ] +} +``` + +### **Payload示例 -** direct\_pail + +```json +{ + "trace_id": "d882e331-ba8b-4b7a-8ab7-0690786844c8", + "mid": "b15d71d6-48f5-4aeb-83e8-2dc828a75701", + "type": "report_regular", + "sub_device_id": 1, + "device_uid": "xxxxxxxxxx", + "timestamp": 1721119850008, + "data": [ + { + "type": "direct_pail", + "index": 0, + "data": { + "input_power": 0, + "output_power": 0, + "input_voltage": 0, + "output_voltage": 0, + "input_current": 0, + "output_current": 0, + "a_phase_voltage": 0, + "b_phase_voltage": 0, + "c_phase_voltage": 0, + "total_electric_energy": 0, + "current_electric_energy": 0, + "frequency_grid": 0, + "total_active": 0, + "total_reactive_power": null, + "total_apparent_power": null, + "total_power_factor": null + } + } + ] +} +``` + +### **Payload示例 -** pail\_meter + +```json + +{ + "trace_id": "085be8f4-2f7b-488d-8a93-d0c7dcd7f033", + "mid": "044b29cf-565e-434d-82a6-364411af6a71", + "type": "report_regular", + "sub_device_id": 1, + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251899, + "data": [ + { + "type": "pail_meter", + "index": 0, + "data": { + "total_active_power": 0.285, + "active_power_phase_a": 0.11, + "active_power_phase_b": 0.105, + "active_power_phase_c": 0.065, + "total_reactive_power": 0.11, + "reactive_power_phase_a": 0, + "reactive_power_phase_b": 0, + "reactive_power_phase_c": 0.11, + "total_apparent_power": 0.35, + "apparent_power_phase_a": 0.11, + "apparent_power_phase_b": 0.11, + "apparent_power_phase_c": 0.13, + "total_power_factor": 0.187, + "power_factor_phase_a": 1, + "power_factor_phase_b": 1, + "power_factor_phase_c": 0.503, + "voltage_phase_a": 230.1, + "voltage_phase_b": 230.5, + "voltage_phase_c": 230.3, + "current_phase_a": 0, + "current_phase_b": 0, + "current_phase_c": 0, + "frequency_grid": 50, + "total_active_energy": 25197.5, + "total_active_energy_1": 0, + "total_active_energy_2": 0, + "total_active_energy_3": 0, + "total_forward_active_energy": 14318.5, + "forward_active_energy_1": 11, + "forward_active_energy_2": 10.5, + "forward_active_energy_3": 13.5, + "total_reverse_active_energy": 10879, + "reverse_active_energy_1": 1160, + "reverse_active_energy_2": 1160.5, + "reverse_active_energy_3": 1164 + } + } + ] +} +``` diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/device-event.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/device-event.md new file mode 100644 index 0000000..e3f74a7 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/device-event.md @@ -0,0 +1,342 @@ +--- +description: !该版本即将下线,请使用V2版本! +--- + +# \[Deprecated]设备事件 + +## 定时上报信息 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``report/regular``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``report/regular``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型report_regularreport_regular
datadatatrue消息内容-Payload - data
sub_device_uidstrfalse子设备UID,仅二级替单个子设备上报时需要该字段-jHODSda39
sub_device_idintfalse子设备ID,仅二级替单个子设备上报时需要该字段(0, ∞)2
device_uidstrtrue设备ID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/reportRegular** + +
参数类型是否必填描述样例
typestrtrue子设备类型
sub_ems: 一级EMS数据
sub_elemeter: 电表数据
sub_elemeters: 电表数据批量
ems: 二级ems数据
"ems"
dataSubEMSData/EMSData/SubEleMeterData/SubEleMetersDatatrue子设备/二级EMS数据/电表数据/电表组合数据-
+* **Payload - SubEMSData** + +
参数类型是否必填描述样例
uidstrfalse一级设备UID"xxxx"
bmsRegularReportBMSfalseBMS数据-
pcsRegularReportPCSfalsePCS数据-
emsRegularReportEMSfalseEMS数据-
coolingRegularReportAircon/RegularReportLiquidconfalse空调数据-
cooling_methodstrfalse冷却方式
air: 风冷
liquid: 液冷
“air“
fireRegularReportFirefalse消防数据
+* **payload - RegularReportBMS** + +
参数类型是否必填描述样例
running_statusintfalsebms运行状态
0-未知状态
1-停机
2-待机
3-充电
4-放电
2
total_alarm_statusintfalse总告警
0-正常
1-告警
0
total_fault_statusintfalse总故障
0-正常
1-故障
0
high_voltage_closed_statusintfalse高压状态
0-断开
1-闭合
1
socfloatfalse电池运行状态 SOC(单位:%)5
sohfloatfalse电池运行状态 SOH(单位:%)4.9
current_chargeable_energyfloatfalse剩余充电电量(单位:kWh)
current_dischargeable_energyfloatfalse剩余放电电量(单位:kWh)
charge_accumulated_energyfloatfalse累计充电电量(单位:kWh)
discharge_accumulated_energyfloatfalse累计放电电量(单位:kWh)
daily_charge_energyfloatfalse日充电电量(单位:kWh)
daily_discharge_energyfloatfalse日放电电量(单位:kWh)
total_voltagefloatfalse总电压(单位:V)99
total_currentfloatfalse总电流(单位:A)400
powerfloatfalse功率(单位:kW)
max_allowed_charge_currentfloatfalse电池最大允许充电电流(单位:A)123
max_allowed_discharge_currentfloatfalse电池最大允许放电电流(单位:A)456
lowest_cell_tempfloatfalse单体最低温度(单位:℃)10
lowest_temp_idintfalse单体最低温度位置
highest_cell_tempfloatfalse单体最高温度(单位:℃)50
highest_temp_idintfalse单体最高温度位置
lowest_cell_voltagefloatfalse单体最低电压(单位:V)2.345
lowest_voltage_idintfalse单体最低电压位置
highest_cell_voltagefloatfalse单体最高电压(单位:V)6.789
highest_voltage_idintfalse单体最高电压位置
cell_voltage[]floatfalse单体电压(单位:V)
cell_temp[]floatfalse单体温度(单位:℃)
+* **payload - RegularReportPCS** + +
参数类型是否必填描述样例
running_statusintfalsePCS运行状态
0-未知状态
1-停机
2-待机
3-充电
4-放电
2
pcs_total_active_powerfloatfalse交流_总有功功率(单位:kW)100
pcs_active_power_phase_afloatfalse交流_A相有功功率(单位:kW)0.16
pcs_active_power_phase_bfloatfalse交流_B相有功功率(单位:kW)0.17
pcs_active_power_phase_cfloatfalse交流_C相有功功率(单位:kW)0.18
pcs_total_reactive_powerfloatfalse交流_总无功功率(单位:kVar)0.26
pcs_reactive_power_phase_afloatfalse交流_A相无功功率(单位:kVar)0.19
pcs_reactive_power_phase_bfloatfalse交流_B相无功功率(单位:kVar)0.2
pcs_reactive_power_phase_cfloatfalse交流_C相无功功率(单位:kVar)0.21
pcs_voltage_phase_afloatfalse交流_A相电压(单位:V)1.1
pcs_voltage_phase_bfloatfalse交流_B相电压(单位:V)2.2
pcs_voltage_phase_cfloatfalse交流_C相电压(单位:V)3.3
pcs_current_phase_afloatfalse交流_A相电流(单位:A)0.13
pcs_current_phase_bfloatfalse交流_B相电流(单位:A)0.14
pcs_current_phase_cfloatfalse交流_C相电流(单位:A)0.15
pcs_total_power_factorfloatfalse交流_总功率因数0.28
pcs_power_factor_phase_afloatfalse交流_A相功率因数1.23
pcs_power_factor_phase_bfloatfalse交流_B相功率因数4.56
pcs_power_factor_phase_cfloatfalse交流_C相功率因数7.89
pcs_frequency_gridfloatfalse交流_电网总频率(单位:Hz)
pcs_frequency_phase_afloatfalse交流_A相频率(单位:Hz)
pcs_frequency_phase_bfloatfalse交流_B相频率(单位:Hz)
pcs_frequency_phase_cfloatfalse交流_C相频率(单位:Hz)
pcs_ac_daily_charge_energyfloatfalse交流_日充电量(单位:kWh)
pcs_ac_daily_discharge_energyfloatfalse交流_日放电量(单位:kWh)
pcs_ac_charge_accumulated_energyfloatfalse交流_总充电电量(单位:kWh)
pcs_ac_discharge_accumulated_energyfloatfalse交流_总放电电量(单位:kWh)
pcs_input_powerfloatfalse直流_功率(单位:kW)0.33
pcs_input_voltagefloatfalse直流_电压(单位:V)3.4
pcs_input_currentfloatfalse直流_电流(单位:A)0.35
pcs_alarm_statusintfalse告警状态
0-正常
1-告警
pcs_fault_statusintfalse故障状态
0-正常
1-故障
pcs_grid_voltage_abfloatfalseAB相电网线电压(单位:V)
pcs_grid_voltage_bcfloatfalseBC相电网线电压(单位:V)
pcs_grid_voltage_cafloatfalseCA相电网线电压(单位:V)
pcs_internal_tempfloatfalse设备内部腔体温度(单位:℃)
igbt_temp_phase_afloatfalseA相IGBT温度(单位:℃)
igbt_temp_phase_bfloatfalseB相IGBT温度(单位:℃)
igbt_temp_phase_cfloatfalseC相IGBT温度(单位:℃)
soc_tempfloatfalse片上SOC温度(单位:℃)
igbt_temp_1floatfalseIGBT温度1(单位:℃)
igbt_temp_2floatfalseIGBT温度2(单位:℃)
igbt_temp_3floatfalseIGBT温度3(单位:℃)
igbt_temp_4floatfalseIGBT温度4(单位:℃)
+* **payload - RegularReportEMS** + +
参数类型是否必填描述样例
modeintfalse运行模式
0-本地调试模式
1-本地自动模式
2-远程被动模式
charge_strategy待定false充放电策略
(仅mode为远程时有)
protection_strategy待定false安全保护
(仅mode为远程时有)
+* **payload - RegularReportAircon** + +
参数类型是否必填描述样例
machine_statusintfalse整机状态
1-运行
2-制冷
3-制热
4-自循环
5-自动
6-待机
cooling_statusintfalse制冷
0-停止
1-运行
heating_statusintfalse制热
0-停止
1-运行
outdoor_tempfloatfalse环境温度/室外温度(单位:℃)
coil_tempfloatfalse盘管温度(单位:℃)
indoor_tempfloatfalse室内温度(单位:℃)
exhaust_tempfloatfalse排气温度(单位:℃)
cooling_pointfloatfalse制冷点(单位:℃)
heating_pointfloatfalse加热点(单位:℃)
+* **payload - RegularReportLiquidcon** + +
参数类型是否必填描述样例
machine_statusintfalse整机状态
1-运行
2-制冷
3-制热
4-自循环
5-自动
6-待机
indoor_tempfloatfalse室内温度(单位:℃)
inlet_tempfloatfalse进水温度(单位:℃)
outlet_tempfloatfalse出水温度(单位:℃)
inlet_pressurefloatfalse进水口压力值(单位:bar)
outlet_pressurefloatfalse出水口压力值(单位:bar)
cooling_pointfloatfalse制冷点(单位:℃)
heating_pointfloatfalse加热点(单位:℃)
+* **payload - RegularReportFire** + +
参数类型是否必填描述样例
fire_statusintfalse消防相关状态
0-无状态
1-烟感反馈
+* **payload - EMSData** + +
参数类型是否必填描述样例
totalEMSDataTotalfalse二级EMS汇总
statistics[]EMSDataStatisticsfalse支路下属储能设备运行统计
+* **payload - ****EMSDataTotal** + +
参数类型是否必填描述样例
running_statusintfalse运行状态
0-未知状态
1-停机
2-运行
socfloatfalse平均soc
pcs_total_active_powerfloatfalse当前总有功功率(单位:kW)
pcs_total_reactive_powerfloatfalse当前总无功功率(单位:kVar)
current_chargeable_energyfloatfalse剩余可充电电量(单位:kWh)
current_dischargeable_energyfloatfalse剩余可放电电量(单位:kWh)
+* **payload -** EMSDataStatistics + +
参数类型是否必填描述样例
ele_meter_idintfalse电表编号
running_statusintfalse运行状态
0-未知状态
1-停机
2-运行
pcs_total_active_powerfloatfalse当前总有功功率(单位:kW)
socfloatfalse平均soc
+* **payload - SubEleMeterData** + +
参数类型是否必填描述样例
idinttrue设备ID2
uidstringfalse设备UID
purposeinttrue

电表用途

1-关口表

2-计量表

1
total_active_powerfloatfalse总有功功率(单位:kW)100.5
active_power_phase_afloatfalseA相有功功率(单位:kW)101.5
active_power_phase_bfloatfalseB相有功功率(单位:kW)102.5
active_power_phase_cfloatfalseC相有功功率(单位:kW)103.5
total_reactive_powerfloatfalse总无功功率(单位:kVar)104.5
reactive_power_phase_afloatfalseA相无功功率(单位:kVar)105.5
reactive_power_phase_bfloatfalseB相无功功率(单位:kVar)106.5
reactive_power_phase_cfloatfalseC相无功功率(单位:kVar)107.5
total_apparent_powerfloatfalse总视在功率(单位:kVar)108.5
apparent_power_phase_afloatfalseA相视在功率(单位:kVA)109.5
apparent_power_phase_bfloatfalseB相视在功率(单位:kVA)110.5
apparent_power_phase_cfloatfalseC相视在功率(单位:kVA)111.5
total_power_factorfloatfalse总功率因数112.5
power_factor_phase_afloatfalseA相功率因数113.5
power_factor_phase_bfloatfalseB相功率因数114.5
power_factor_phase_cfloatfalseC相功率因数115.5
voltage_phase_afloatfalseA相电压(单位:V)116.5
voltage_phase_bfloatfalseB相电压(单位:V)117.5
voltage_phase_cfloatfalseC相电压(单位:V)118.5
current_phase_afloatfalseA相电流(单位:A)119.5
current_phase_bfloatfalseB相电流(单位:A)120.5
current_phase_cfloatfalseC相电流(单位:A)121.5
frequency_gridfloatfalse电网总频率(单位:Hz)122.5
frequency_phase_afloatfalseA相频率(单位:Hz)123.5
frequency_phase_bfloatfalseB相频率(单位:Hz)124.5
frequency_phase_cfloatfalseC相频率(单位:Hz)125.5
total_forward_active_energyfloatfalse正向有功总电能(单位:kWh)126.5
forward_active_energy_sharpfloatfalse正向有功尖电能(单位:kWh)127.5
forward_active_energy_peakfloatfalse正向有功峰电能(单位:kWh)128.5
forward_active_energy_flatfloatfalse正向有功平电能(单位:kWh)129.5
forward_active_energy_valleyfloatfalse正向有功谷电能(单位:kWh)130.5
total_reverse_active_energyfloatfalse反向有功总电能(单位:kWh)131.5
reverse_active_energy_sharpfloatfalse反向有功尖电能(单位:kWh)132.5
reverse_active_energy_peakfloatfalse反向有功峰电能(单位:kWh)133.5
reverse_active_energy_flatfloatfalse反向有功平电能(单位:kWh)134.5
reverse_active_energy_valleyfloatfalse反向有功谷电能(单位:kWh)135.5
+* **payload - SubEleMetersData = \[]SubEleMeterData** +* **Payload示例-sub\_ems** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "085be8f4-2f7b-488d-8a93-d0c7dcd7f033", + "mid": "044b29cf-565e-434d-82a6-364411af6a71", + "type": "report_regular", + "sub_device_uid": "iBbgRK0Lno5yUdF", + "sub_device_id": 2, + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251899, + "data": { + "type": "sub_ems", + "data": { + "uid": "iBbgRK0Lno5yUdF", + "bms": { + "running_status": 0, + "soc": 88, + "soh": 99, + "current_chargeable_energy": 4.4, + "current_dischargeable_energy": 2.2, + "total_voltage": 6.6, + "total_current": 161.30000000000018, + "power": null, + "charge_accumulated_energy": 0, + "discharge_accumulated_energy": 0, + "daily_charge_energy": 0, + "daily_discharge_energy": 0, + "max_allowed_charge_current": 20, + "max_allowed_discharge_current": 10, + "lowest_cell_temp": 6459.6, + "lowest_temp_id": 4, + "highest_cell_temp": 6460.6, + "highest_temp_id": 3, + "temp_diff": 1, + "lowest_cell_voltage": 345, + "lowest_voltage_id": 2, + "highest_cell_voltage": 234, + "highest_voltage_id": 1, + "voltage_diff": 6225.6, + "cell_voltage": [10, 10, 10, ...], + "cell_temp": [25.4, 25.4, 25.4, ...] + }, + "pcs": { + "running_status": 2, + "pcs_total_active_power": 2500, + "pcs_active_power_phase_a": null, + "pcs_active_power_phase_b": null, + "pcs_active_power_phase_c": null, + "pcs_total_reactive_power": 444.4, + "pcs_reactive_power_phase_a": null, + "pcs_reactive_power_phase_b": null, + "pcs_reactive_power_phase_c": null, + "pcs_voltage_phase_a": 0, + "pcs_voltage_phase_b": 0, + "pcs_voltage_phase_c": 0, + "pcs_current_phase_a": 1.2, + "pcs_current_phase_b": 2.3, + "pcs_current_phase_c": 3.4, + "pcs_total_power_factor": 8.88, + "pcs_power_factor_phase_a": null, + "pcs_power_factor_phase_b": null, + "pcs_power_factor_phase_c": null, + "pcs_frequency_grid": null, + "pcs_frequency_phase_a": null, + "pcs_frequency_phase_b": null, + "pcs_frequency_phase_c": null, + "pcs_ac_daily_charge_energy": 0, + "pcs_ac_daily_discharge_energy": 0, + "pcs_ac_charge_accumulated_energy": 0, + "pcs_ac_discharge_accumulated_energy": 0, + "pcs_input_power": 4.4, + "pcs_input_voltage": 3.3, + "pcs_input_current": 4.4, + "pcs_alarm_status": 0, + "pcs_fault_status": 0, + "pcs_grid_voltage_ab": 0, + "pcs_grid_voltage_bc": 0, + "pcs_grid_voltage_ca": 0, + "pcs_internal_temp": 7.7, + "igbt_temp_phase_a": 0, + "igbt_temp_phase_b": 0, + "igbt_temp_phase_c": 0 + }, + "ems": { + "mode": 2 + }, + "cooling_method": "air", + "cooling": { + "machine_status": null, + "cooling_status": null, + "heating_status": null, + "outdoor_temp": null, + "coil_temp": null, + "indoor_temp": null, + "exhaust_temp": null, + "cooling_point": null, + "heating_point": null + }, + "fire": { + "fire_alarm_status": 1 + } + } + } +} +``` +{% endcode %} + +* **Payload示例-ems** + +```json +{ + "trace_id": "a73f409b-69db-469d-ab46-5913e3cbb73a", + "mid": "33c71134-f57f-42d5-a76a-bd225ba09faf", + "type": "report_regular", + "device_uid": "xxxxxxxxxx", + "timestamp": 1705980251904, + "data": { + "type": "ems", + "data": { + "total": { + "running_status": 2, + "soc": 95.33333333333333, + "pcs_total_active_power": 2500, + "pcs_total_reactive_power": 444.4, + "current_chargeable_energy": 4.4, + "current_dischargeable_energy": 2.2 + } + } + } +} +``` + +* **Payload示例-sub\_elemeter** + +```json +{ + "trace_id": "2f492a12-5408-40b3-b347-ed64a3723050", + "mid": "d39835f5-2087-4601-8a12-85bb2bceb690", + "type": "report_regular", + "sub_device_uid": "a8TJthsYq3J4hjz", + "sub_device_id": 2, + "device_uid": "xxxxxxxxxx", + "timestamp": 1705563840345, + "data": { + "type": "sub_elemeter", + "data": { + "id": 2, + "uid": "", + "purpose": 1, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_forward_active_energy": 126.5, + "forward_active_energy_sharp": 127.5, + "forward_active_energy_peak": 128.5, + "forward_active_energy_flat": 129.5, + "forward_active_energy_valley": 130.5, + "total_reverse_active_energy": 131.5, + "reverse_active_energy_sharp": 132.5, + "reverse_active_energy_peak": 133.5, + "reverse_active_energy_flat": 134.5, + "reverse_active_energy_valley": 135.5 + } + } +} +``` + +* **Payload示例-sub\_elemeters** + +```json +{ + "trace_id": "2f492a12-5408-40b3-b347-ed64a3723050", + "mid": "d39835f5-2087-4601-8a12-85bb2bceb690", + "type": "report_regular", + "device_uid": "xxxxxxxxxx", + "timestamp": 1705563840345, + "data": { + "type": "sub_elemeters", + "data": [ + { + "id": 1, + "uid": "", + "purpose": 2, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_forward_active_energy": 126.5, + "forward_active_energy_sharp": 127.5, + "forward_active_energy_peak": 128.5, + "forward_active_energy_flat": 129.5, + "forward_active_energy_valley": 130.5, + "total_reverse_active_energy": 131.5, + "reverse_active_energy_sharp": 132.5, + "reverse_active_energy_peak": 133.5, + "reverse_active_energy_flat": 134.5, + "reverse_active_energy_valley": 135.5 + }, + { + "id": 2, + "uid": "", + "purpose": 1, + "total_active_power": 100.5, + "active_power_phase_a": 101.5, + "active_power_phase_b": 102.5, + "active_power_phase_c": 103.5, + "total_reactive_power": 104.5, + "reactive_power_phase_a": 105.5, + "reactive_power_phase_b": 106.5, + "reactive_power_phase_c": 107.5, + "total_apparent_power": 108.5, + "apparent_power_phase_a": 109.5, + "apparent_power_phase_b": 110.5, + "apparent_power_phase_c": 111.5, + "total_power_factor": 112.5, + "power_factor_phase_a": 113.5, + "power_factor_phase_b": 114.5, + "power_factor_phase_c": 115.5, + "voltage_phase_a": 116.5, + "voltage_phase_b": 117.5, + "voltage_phase_c": 118.5, + "current_phase_a": 119.5, + "current_phase_b": 120.5, + "current_phase_c": 121.5, + "frequency_grid": 122.5, + "frequency_phase_a": 123.5, + "frequency_phase_b": 124.5, + "frequency_phase_c": 125.5, + "total_forward_active_energy": 126.5, + "forward_active_energy_sharp": 127.5, + "forward_active_energy_peak": 128.5, + "forward_active_energy_flat": 129.5, + "forward_active_energy_valley": 130.5, + "total_reverse_active_energy": 131.5, + "reverse_active_energy_sharp": 132.5, + "reverse_active_energy_peak": 133.5, + "reverse_active_energy_flat": 134.5, + "reverse_active_energy_valley": 135.5 + }, + ] + } +} +``` diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/fault-alarm.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/fault-alarm.md new file mode 100644 index 0000000..3363a0a --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/fault-alarm.md @@ -0,0 +1,40 @@ +# 故障告警 + +## 上报故障告警 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``alarm/details``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``alarm/details``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型alarm_detailsalarm_details
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段(0, ∞)1
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/AlarmData** + +
参数类型是否必填描述范围样例
idinttrue告警id(0, ∞)10
contentstrtrue故障/告警内容不控整流告警
device_typestrtrue发生设备设备类型PCS、BMSPCS
alarm_typestrtrue上报设备类型emsems
levelinttrue告警等级[1,3]1
handle_statusinttrue状态1-新增,2-已处理2
handle_typeintfalse处理方式1-系统自动处理,2-用户手动处理2
user_idintfalse处理的用户ID1
occur_timestrtrue告警发生时间2024-04-16T02:30:27Z(UTC)
handle_timestrfalse告警处理时间2024-04-16T02:30:27Z(UTC)
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "alarms_details", + "data": { + "content": "不控整流告警", + "device_type": "PCS", + "alarm_type": "ems", + "level": 1, + "handle_status": 2, + "handle_type": 2, + "user_id": 1, + "occur_time": "2024-04-16T02:30:27Z", + "handle_time": "2024-04-16T02:30:27Z" + }, + "sub_device_uid": "${SUB_DEVICE_UID}", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/grid-fm-passively.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/grid-fm-passively.md new file mode 100644 index 0000000..877b9c4 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/grid-fm-passively.md @@ -0,0 +1,33 @@ +# 调频-被动调频 + +## 上报被动调频信息 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``grid_fm/receive``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``grid_fm/receive``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型grid_fm_receivegrid_fm_receive
datadatatrue消息内容-Payload - data
sub_device_uidstrfalse子设备UID,仅二级替单个子设备上报时需要该字段-jHODSda39
sub_device_idintfalse子设备ID,仅二级替单个子设备上报时需要该字段(0, ∞)2
device_uidstrtrue设备ID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +### **Payload - data** + +
参数类型是否必填描述范围样例
typestrtrue指令类型status-启停状态
power-功率
power
valuefloattrue指令内容
  • 对于status

    • 0-停机
    • 1-启动
  • 对于power

    • 单位:kw
    • 正充负放
100.5
receive_timeinttrue接收到调频指令的时间(单位:毫秒)(0, ∞)1696837112000
+ +* **Payload示例** + +```json +{ + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "grid_fm_receive", + "data": { + "type": "power", + "value": 100.5, + "receive_time": 1696837112000 + }, + "sub_device_id": 2, + "device_uid": "iYRkfVpi77", + "timestamp": 1696837112000 +} +``` + diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/ota-emu.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/ota-emu.md new file mode 100644 index 0000000..38bb1d4 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/ota-emu.md @@ -0,0 +1,220 @@ +--- +description: EMUOTA +--- + +# \[未上线]OTA-EMU + +## 请求EMU版本信息 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/emu_version``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/emu_version``/command` +* **权限:发布** +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型emu_versionemu_version
datadatatrue消息内容-Payload - data
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data 无** +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-06hjkgfg2", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "emu_version", + "device_uid": "test", + "timestamp": 1697789021000 +} +``` +{% endcode %} + + + +### EMU版本信息响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/emu_version``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/emu_version``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型emu_versionemu_version
datadatatrue消息内容-Payload - data
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +* **Payload - data \[]**EMUVersion +* EMUVersion + +
参数类型是否必填描述样例
device_idint升级设备ID2
statusint

设备状态

1-运行

2-离线

3-故障

1
emu_upgrade_successint

EMU升级成功

0-有错误

1-全部升级成功

1
emu_upgrade_deviceint

EMU升级设备

3:EMU

21:通讯板卡1

22:通讯板2

23:通讯板3

24:通讯板4

25:通讯板5

26:通讯板6

3
emu_upgrade_statusint

EMU升级状态

1:升级准备

2:传输准备

3:传输状态

4:校验状态

5:完成状态

5
emu_upgrade_contentint升级内容 传输状态:对应文件传输进度100
emu_product_snstringEMU产品SN码emu-v1.0.0
+ +* **Payload示例** + +
{
+    "trace_id": "577f5df0-65d6-432d-8aac-011789wfg2",
+    "mid": "389d9ac9-c660-4459-b9d5-f43160183552",
+    "type": "emu_version",
+    "device_uid": "test",
+    "timestamp": 1725615497191,
+    "data": [{
+        "device_id": 2,
+        "status": 1,
+        "emu_upgrade_success": 1,
+        "emu_upgrade_device": 3,
+        "emu_upgrade_status": 5,
+        "emu_upgrade_content": 100,
+        "emu_product_sn": "emu-v1.0.0"   
+    },
+    {
+        "device_id": 3,
+        "status": 1,
+        "emu_upgrade_success": 1,
+        "emu_upgrade_device": 3,
+        "emu_upgrade_status": 5,
+        "emu_upgrade_content": 100,
+        "emu_product_sn": "emu-v1.0.0"
+    },
+    {
+        "device_id": 4,
+        "status": 2,
+        "emu_upgrade_success": null,
+        "emu_upgrade_device": null,
+        "emu_upgrade_status": null,
+        "emu_upgrade_content": null,
+        "emu_product_sn": ""
+    }]
+}
+
+ +## 下发OTA-EMU升级命令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/emu_upgrade``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/emu_upgrade``/command` +* **权限:发布** +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型emu_upgradeemu_upgrade
datadatatrue消息内容-Payload - data
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段-2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +| 参数 | 类型 | 是否必填 | 描述 | 样例 | +| ------------- | ------ | ---- | ---- | -------------------------------------------------------- | +| download\_url | string | 是 | 下载链接 | [http://example.com/ems\_II](http://example.com/ems\_II) | +| md5\_code | string | 是 | MD5码 |

50a2811e047dd49ace3801685eedb732

| + +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-06hjkgfg2", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "emu_upgrade", + "device_uid": "test", + "sub_device_id": 2, + "timestamp": 1697789021000, + "data":{ + "download_url": "http://example.com/ems_II", + "md5_code": "50a2811e047dd49ace3801685eedb732", + } +} +``` +{% endcode %} + + + +### OTA-EMU升级命令响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/emu_upgrade``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/emu_upgrade``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型emu_upgradeemu_upgrade
datadatatrue消息内容-Payload - data
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段-2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +* **Payload - data** + +
参数类型是否必填描述样例
device_idint升级设备ID2
download_statusint

下载状态

1-下发EMU升级成功

2-下载失败

3-MD5校验失败

4-删除文件夹内容失败

5-解压失败

6-下发EMU升级失败

1
+ +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-011789wfg2", + "mid": "389d9ac9-c660-4459-b9d5-f43160183552", + "type": "emu_upgrade", + "device_uid": "test", + "sub_device_id": 2, + "timestamp": 1725615497191, + "data": { + "device_id": 2, + "download_status": 1, + }, +} +``` +{% endcode %} + + + +## 请求OTA-EMU升级结果 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/emu_upgrade_result``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/emu_upgrade_result``/command` +* **权限:发布** +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型emu_upgrade_resultemu_upgrade_result
datadatatrue消息内容-Payload - data
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段-2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data 无** +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-06hjkgfg2", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "emu_upgrade_result", + "device_uid": "test", + "sub_device_id": 2, + "timestamp": 1697789021000, +} +``` +{% endcode %} + +### OTA-EMU升级结果响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/emu_upgrade_result``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/emu_upgrade_result``/result` +* **权限:订阅** +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型emu_upgrade_resultemu_upgrade_result
datadatatrue消息内容-Payload - data
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段-2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +* **Payload - data** + +
参数类型是否必填描述样例
device_idint升级设备ID2
statusint

设备状态

1-运行

2-离线

3-故障

1
emu_upgrade_successint

EMU升级成功

0-有错误

1-全部升级成功

1
emu_upgrade_deviceint

EMU升级设备

3:EMU

21:通讯板卡1

22:通讯板2

23:通讯板3

24:通讯板4

25:通讯板5

26:通讯板6

3
emu_upgrade_statusint

EMU升级状态

1:升级准备

2:传输准备

3:传输状态

4:校验状态

5:完成状态

5
emu_upgrade_contentint升级内容 传输状态:对应文件传输进度100
emu_product_snstringEMU产品SN码emu-v1.0.0
+ +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-011789wfg2", + "mid": "389d9ac9-c660-4459-b9d5-f43160183552", + "type": "emu_upgrade_result", + "device_uid": "test", + "sub_device_id": 2, + "timestamp": 1725615497191, + "data": { + "device_id": 2, + "status": 1, + "emu_upgrade_success": 1, + "emu_upgrade_device": 3, + "emu_upgrade_status": 5, + "emu_upgrade_content": 100, + "emu_product_sn": "emu-v1.0.0" + }, +} +``` +{% endcode %} + diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/ota.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/ota.md new file mode 100644 index 0000000..5a24aaa --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/ota.md @@ -0,0 +1,102 @@ +--- +description: OTA +--- + +# \[未上线]OTA + +## 下发OTA命令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/upgrade``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/upgrade``/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型ota_upgradeota_upgrade
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +| 参数 | 类型 | 是否必填 | 描述 | 样例 | +| ------------- | ------ | ---- | ---- | -------------------------------------------------------- | +| source | string | 是 | 更新目标 | ems\_II | +| download\_url | string | 是 | 下载链接 | [http://example.com/ems\_II](http://example.com/ems\_II) | +| md5\_code | string | 是 | MD5码 |

50a2811e047dd49ace3801685eedb732

| + +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-06hjkgfg2", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "ota_upgrade", + "device_uid": "test", + "timestamp": 1697789021000, + "data":{ + "source": "ems_II", + "download_url": "http://example.com/ems_II", + "md5_code": "50a2811e047dd49ace3801685eedb732", + } +} +``` +{% endcode %} + +### 同步OTA结果响应 + +* **说明:** + +这里结果会有两阶段,发送两次响应,不同阶段对应的状态不同 + +* 第一阶段 + +第一阶段是准备阶段,在下载好确认文件无误后状态是 **2-文件已准备**。 + +状态有:**1-禁止更新 2-更新已准备3-更新准备失败** + +* 第二阶段 + +第二阶段是最后结果,如果更新成功后状态是 **4-更新成功**。 + +状态有:**4-更新成功 5-回滚成功 6-回滚失败** + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``ota/upgrade``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``ota/upgrade``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型ota_upgradeota_upgrade
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +* **Payload - data** + +| 参数 | 类型 | 是否必填 | 描述 | 样例 | +| ------------------- | ------ | ---- | -------------------------------------------------------------------------------------------- | ------------ | +| source | string | 否 | 来源 | ems\_II | +| version | string | 否 | 当前版本 | v1.0.0 | +| target\_commit\_sha | string | 否 | 目标提交SHA | 6f7g8h9i0j1k | +| target\_version | string | 否 | 目标版本 | v1.1.0 | +| final\_commit\_sha | string | 否 | 最终提交SHA | 6f7g8h9i0j1k | +| final\_version | string | 否 | 最终版本 | v1.1.0 | +| status | int | 否 |

更新状态

1-禁止更新

2-更新已准备

3-更新准备失败

4-更新成功

5-回滚成功

6-回滚失败

| 4 | + +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-011789wfg2", + "mid": "389d9ac9-c660-4459-b9d5-f43160183552", + "type": "ota_upgrade", + "device_uid": "test", + "timestamp": 1725615497191, + "data": { + "source": "ems_II", + "target_commit_sha": "6a2bbabde8d42abc6f8fef7b31f60c5e69045245", + "target_version": "0.9.1", + "final_commit_sha": "6a2bbabde8d42abc6f8fef7b31f60c5e69045245", + "final_version": "0.9.1", + "status": 4 + } +} +``` +{% endcode %} + diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/overdemand.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/overdemand.md new file mode 100644 index 0000000..a1891c9 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/overdemand.md @@ -0,0 +1,580 @@ +# 策略-需量管理与防逆流 + +## 上报防逆流过需策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/list``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/list``/post` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_liststreaming_overdemand_list
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data: \StreamingOverDemand** + +
参数类型是否必填描述范围样例
idinttrue过需逆流策略ID1
device_typeinttrue设备类型

2-储能设备

3-光伏

4-充电桩

2
devicesanytrue设备列表-[]emsDevice/[]photovoltaic/[]pail
elemetereleMetertrue电表-eleMeter
ele_meter_idinttrue电表id1
streaming_conditioninttrue防逆流执行条件-5000
streaming_statusinttrue

防逆流状态

1-启用

2-禁用

1
over_demand_condition[]inttrue每月防过需执行条件(1-12月)-[5000,6000,5000,5000,6000,5000,5000,6000,5000,5000,6000,5000]
over_demand_statusinttrue防逆流状态

1-启用

2-禁用

1
dynamic_demandinttrue动态需量6000
dynamic_demand_percentageinttrue动态需量追峰比例90
current_over_demand_conditioninttrue当前月份的过需条件2000
updated_bystrtrue更新人user: 1-admin
created_atstrtrue创建时间2024-06-06T08:59:20.21309056Z
updated_atstrtrue更新时间2024-06-06T08:59:20.21309056Z
+* **Payload - emsDevice** + +
参数类型是否必填描述范围样例
uidstrtrue设备UID-DGHDJSJKD-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度--
latitudefloattrue纬度-
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - eleMeter** + +
参数类型是否必填描述样例
uidstrtrue电表UID-QmqEhterhgrzS66grew-1
station_namestrtrue站点名称-站点1
portinttrue端口[0,65535]1
namestrtrue设备名称-东区变压器
elec_device_typeeleDeviceTypetrue电表类型对象--
rateinttrue倍率(0, ∞)100
running_statusinttrue

运行状态

1-在线

2-离线

[1,2]1
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "streaming_overdemand_list", + "data": [{ + "id": 4, + "device_type": 2, + "ele_meter_id": 10, + "ele_meter": { + "id": 10, + "proto_type": 1, + "proto_id": 1, + "slave_id": 1, + "host": "192.168.77.94", + "port": 1, + "com_addr": "", + "com_no": 0, + "baud_rate": 0, + "data_bits": 0, + "stop_bits": 0, + "parity": "", + "uid": "", + "station_name": "测试站点", + "name": "test", + "ele_device_type_id": 1, + "ele_device_type": { + "id": 1, + "name": "Acrel-ADW300" + }, + "running_status": 2, + "direction": 1, + "pt": 1, + "ct": 1, + "purpose": 1, + "meter_ids": null, + "associate_meters": null + }, + "devices": [ + { + "uid": "", + "name": "设备208", + "site_name": "测试站点", + "location": "", + "longitude": 0, + "latitude": 0, + "statistics_port": 1504, + "cooling_method": 1, + "level": 1, + "charges": null, + "pcs_reboot": 0, + "bms_reboot": 0, + "license": "00000011", + "type": "Linux", + "running_status": 1, + "id": 3, + "proto_type": 1, + "proto_id": 0, + "slave_id": 1, + "host": "192.168.77.208", + "port": 1502, + "com_addr": "", + "com_no": 0, + "baud_rate": 0, + "data_bits": 0, + "stop_bits": 0, + "parity": "", + "created_at": "2024-04-24T02:11:01.16135116Z", + "updated_at": "2024-06-07T07:32:32.1991944Z" + }, + { + "uid": "", + "name": "设备210", + "site_name": "测试站点", + "location": "", + "longitude": 0, + "latitude": 0, + "statistics_port": 1504, + "cooling_method": 1, + "level": 1, + "charges": null, + "pcs_reboot": 1, + "bms_reboot": 0, + "license": "", + "type": "", + "running_status": 1, + "id": 4, + "proto_type": 1, + "proto_id": 0, + "slave_id": 1, + "host": "192.168.77.210", + "port": 1502, + "com_addr": "", + "com_no": 0, + "baud_rate": 0, + "data_bits": 0, + "stop_bits": 0, + "parity": "", + "created_at": "2024-05-08T02:03:48.4397178Z", + "updated_at": "2024-06-07T07:32:32.2174462Z" + } + ], + "over_demand_status": 1, + "over_demand_condition": [ + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000 + ], + "current_over_demand_condition": 2000, + "dynamic_demand_status": 1, + "dynamic_demand": 0, + "dynamic_demand_percentage": 60, + "streaming_status": 1, + "streaming_condition": 2000, + "created_at": "2024-06-06T08:59:20.21309056Z", + "updated_at": "2024-06-06T08:59:20.21309056Z", + "updated_by": "user: 1-admin" + }], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +## 平台请求同步防逆流过需策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_syncstreaming_overdemand_sync
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "streaming_overdemand_sync", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +### 同步防逆流过需电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_syncstreaming_overdemand_sync
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue过需逆流策略ID1
device_typeinttrue设备类型

2-储能设备

3-光伏

4-充电桩

2
devicesanytrue设备列表-[]emsDevice/[]photovoltaic/[]pail
elemetereleMetertrue电表-eleMeter
ele_meter_idinttrue电表id1
streaming_conditioninttrue防逆流执行条件-5000
streaming_statusinttrue

防逆流状态

1-启用

2-禁用

1
over_demand_condition[]inttrue每月防过需执行条件(1-12月)-[5000,6000,5000,5000,6000,5000,5000,6000,5000,5000,6000,5000]
over_demand_statusinttrue防逆流状态

1-启用

2-禁用

1
dynamic_demandinttrue动态需量6000
dynamic_demand_percentageinttrue动态需量追峰比例90
current_over_demand_conditioninttrue当前月份的过需条件2000
updated_bystrtrue更新人user: 1-admin
created_atstrtrue创建时间2024-06-06T08:59:20.21309056Z
updated_atstrtrue更新时间2024-06-06T08:59:20.21309056Z
+ +* **Payload - emsDevice** + +
参数类型是否必填描述范围样例
uidstrtrue设备UID-DGHDJSJKD-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - eleMeter** + +
参数类型是否必填描述样例
uidstrtrue电表UID-QmqEhterhgrzS66grew-1
station_namestrtrue站点名称-站点1
portinttrue端口[0,65535]1
namestrtrue设备名称-东区变压器
elec_device_typeeleDeviceTypetrue电表类型对象--
rateinttrue倍率(0, ∞)100
running_statusinttrue

运行状态

1-在线

2-离线

[1,2]1
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "streaming_overdemand_sync", + "data": [{ + "id": 4, + "ele_meter_id": 10, + "ele_meter": { + "id": 10, + "proto_type": 1, + "proto_id": 1, + "slave_id": 1, + "host": "192.168.77.94", + "port": 1, + "com_addr": "", + "com_no": 0, + "baud_rate": 0, + "data_bits": 0, + "stop_bits": 0, + "parity": "", + "uid": "", + "station_name": "测试站点", + "name": "test", + "ele_device_type_id": 1, + "ele_device_type": { + "id": 1, + "name": "Acrel-ADW300" + }, + "running_status": 2, + "direction": 1, + "pt": 1, + "ct": 1, + "purpose": 1, + "meter_ids": null, + "associate_meters": null + }, + "devices": [ + { + "uid": "", + "name": "设备208", + "site_name": "测试站点", + "location": "", + "longitude": 0, + "latitude": 0, + "statistics_port": 1504, + "cooling_method": 1, + "level": 1, + "charges": null, + "pcs_reboot": 0, + "bms_reboot": 0, + "license": "00000011", + "type": "Linux", + "running_status": 1, + "id": 3, + "proto_type": 1, + "proto_id": 0, + "slave_id": 1, + "host": "192.168.77.208", + "port": 1502, + "com_addr": "", + "com_no": 0, + "baud_rate": 0, + "data_bits": 0, + "stop_bits": 0, + "parity": "", + "created_at": "2024-04-24T02:11:01.16135116Z", + "updated_at": "2024-06-07T07:32:32.1991944Z" + }, + { + "uid": "", + "name": "设备210", + "site_name": "测试站点", + "location": "", + "longitude": 0, + "latitude": 0, + "statistics_port": 1504, + "cooling_method": 1, + "level": 1, + "charges": null, + "pcs_reboot": 1, + "bms_reboot": 0, + "license": "", + "type": "", + "running_status": 1, + "id": 4, + "proto_type": 1, + "proto_id": 0, + "slave_id": 1, + "host": "192.168.77.210", + "port": 1502, + "com_addr": "", + "com_no": 0, + "baud_rate": 0, + "data_bits": 0, + "stop_bits": 0, + "parity": "", + "created_at": "2024-05-08T02:03:48.4397178Z", + "updated_at": "2024-06-07T07:32:32.2174462Z" + } + ], + "over_demand_status": 1, + "over_demand_condition": [ + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000 + ], + "current_over_demand_condition": 2000, + "dynamic_demand_status": 1, + "dynamic_demand": 0, + "dynamic_demand_percentage": 60, + "streaming_status": 1, + "streaming_condition": 2000, + "created_at": "2024-06-06T08:59:20.21309056Z", + "updated_at": "2024-06-06T08:59:20.21309056Z", + "updated_by": "user: 1-admin" + }], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +## 下发创建防逆流过需电策略指令 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/create``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/create``/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_createstreaming_overdemand_create
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - Data/StreamingOverDemand** +* + +
参数类型是否必填描述范围样例
ele_meter_idinttrue电表设备ID-1
streaming_statusinttrue防逆流状态 1-启用 2-禁用1
streaming_conditioninttrue防逆流执行条件-1000
over_demand_statusinttrue防过需状态 1-启用 2-禁用2
over_demand_condition[]inttrue防过需执行条件分为12个月份,每个月份一个值
[
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000,
+              2000
+            ],
+    
dynamic_demand_statusinttrue动态需量控制状态 1-启用 2-禁用1
dynamic_demand_percentageinttrue动态需量追峰比例百分比90
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "streaming_overdemand_create", + "data": [ + { + "over_demand_status": 1, + "streaming_status": 1, + "dynamic_demand_status": 1, + "over_demand_condition": [ + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000 + ], + "ele_meter_id": 9, + "dynamic_demand_percentage": 80, + "streaming_condition": 1000 +}], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} + + +``` +{% endcode %} + +### 创建防过需防逆流策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/create``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/create``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_createstreaming_overdemand_create
codeinttrue响应代码-见响应代码
datadatatrueData见Data
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Data** +* + + | 参数 | 类型 | 说明 | + | -- | --- | --------- | + | id | int | 防过需逆流策略id | +* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "streaming_overdemand_create", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "data": { + "id": 1 + }, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发更新防逆流过需电策略指令 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/update``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/update``/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_updatestreaming_overdemand_update
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - Data: \StreamingOverDemandUpdateCommand(其他字段见StreamingOverDemand)** + +| 参数 | 类型 | 是否必填 | 描述 | 样例 | +| -- | --- | ---- | ---------- | -- | +| id | int | 是 | 防过需防逆流策略ID | 1 | + +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "streaming_overdemand_update", + "data": [ { + "id": 1, + "over_demand_status": 1, + "streaming_status": 1, + "dynamic_demand_status": 1, + "over_demand_condition": [ + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000, + 2000 + ], + "ele_meter_id": 9, + "dynamic_demand_percentage": 80, + "streaming_condition": 1000 +}], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 更新防过需防逆流策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/update``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/update``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_updatestreaming_overdemand_update
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "streaming_overdemand_update", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发删除防逆流过需电策略指令 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/delete``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/delete``/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_deletestreaming_overdemand_delete
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - Data/StreamingOverDemandDeleteCommand** + +| 参数 | 类型 | 是否必填 | 描述 | 样例 | +| -- | --- | ---- | ---------- | -- | +| id | int | 是 | 防过需防逆流策略ID | 1 | + +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "streaming_overdemand_delete", + "data": [{ + "id": 1, + }], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 删除防过需防逆流策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``streaming_overdemand/delete``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``streaming_overdemand/delete``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型streaming_overdemand_deletestreaming_overdemand_delete
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "streaming_overdemand_delete", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/pcs-control.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/pcs-control.md new file mode 100644 index 0000000..59f036f --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/pcs-control.md @@ -0,0 +1,128 @@ +# 手动控制-PCS远程控制 + +## 发送pcs远程控制策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``pcs_control/set/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``pcs_control/set/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pcs_setpcs_set
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段(0, ∞)2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
pcs_fault_resetintfalse故障复位[0,1]1
pcs_device_startupintfalse设备启动[0,1]0
pcs_device_stopintfalse设备停机[0,1]1
pcs_remote_emergency_stopintfalse远程急停[0,1]0
pcs_reset_cumulative_chargeintfalse累计充电电量清零[0, 1]1
pcs_reset_cumulative_dischargeintfalse累计放电电量清零[0,1]1
pcs_remote_local_settingintfalse远程/就地设置 0-就地,1-远程 }[0, 1]1
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "type": "pcs_set",
+  "data": {
+    "pcs_device_stop":1,
+    },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +### 发送pcs远程控制策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``pcs_control/set``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``pcs_control/set``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pcs_setpcs_set
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
sub_device_uidstrtrue子设备UID
sub_device_idinttrue子设备ID2
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ + + +* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "pcs_set", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "下发成功", + "sub_device_uid": "jHODSda39", + "sub_device_id": 2, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## + +## 请求同步pcs远程控制策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``pcs_control/sync/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``pcs_control/sync/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
typestrtrue消息类型pcs_syncpcs_sync
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "pcs_sync", + "sub_device_uid": "${SUB_DEVICE_UID}", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + + + +### 同步pcs远程控制策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``pcs_control/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``pcs_control/sync/``result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pcs_syncpcs_sync
code inttrue响应代码见响应代码
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段2
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** +* + +
参数类型是否必填描述范围样例
pcs_fault_resetintfalse故障复位[0,1]1
pcs_device_startupintfalse设备启动[0,1]0
pcs_device_stopintfalse设备停机[0,1]1
pcs_remote_emergency_stopintfalse远程急停[0,1]0
pcs_reset_cumulative_chargeintfalse累计充电电量清零[0, 1]1
pcs_reset_cumulative_dischargeintfalse累计放电电量清零[0,1]1
pcs_remote_local_settingintfalse远程/就地设置 0-就地,1-远程 }[0, 1]1
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "pcs_sync",
+  "code": 200,
+  "data": {
+    "pcs_fault_reset":0,
+    "pcs_device_startup":0,
+    "pcs_device_stop":1,
+    "pcs_remote_emergency_stop":0,
+    "pcs_reset_cumulative_charge":0,
+    "pcs_reset_cumulative_discharge":0,
+    "pcs_remote_local_setting":0
+    },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/photovoltaic_charge-strategy-1.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/photovoltaic_charge-strategy-1.md new file mode 100644 index 0000000..94dde3e --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/photovoltaic_charge-strategy-1.md @@ -0,0 +1,523 @@ +# 策略-充电桩均衡充放电 + +## 上报充放电策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/list``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/list``/post` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_listpail_charge_list
datadatatrue消息内容-Payload - data/ChargeDetail
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeDetail** + +
参数类型是否必填描述范围样例
idinttrueID-1
charge_typeinttrue充放电类型(后续将支持更多类型)1-定时充放电1
statusinttrue策略开关0-关闭,
1-开启
1
yearinttrue(若mode=1,则year为必填;)2024
month[]inttrue月份选择(0代表一月)[0,11][1,7,8,11]
week_day[]intfalse星期选择(0代表星期一)[0,6][5,6]
dates[]intfalse日期选择(0代表1日)[0, 30](根据年份大小月份变化)[0,1]
modeinttrue模式(根据mode参数取值不同,校验week_day或dates是否必填)1-月日模式
2- 月周模式
1(若mode=1,则dates为必填;若mode=2,则week_day为必填
devices[]Devicetrue光伏设备列表--
settings[]chargeTimetrue充放电时间段--
apply_to_allbooltrue是否包括所有设备-false
+* **Payload - Device** + +
参数类型是否必填描述范围样例
uidstrtrue设备UID-DGHDJSJKD-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - chargeTime** + +
参数类型是否必填描述范围样例
start_hourinttrue开始小时[0,23]20
start_minuteinttrue开始分钟[0,59]0
end_hourinttrue结束小时[0,23]0
end_minuteinttrue结束分钟[0,59]0
cdc_enable_modeinttrue充放电设定0-待机,
1-充电,
2-放电
1
run_powerinttrue运行功率(单位:kW)[0,65535]300
+ + * **时间说明:**`start_hour`, `start_minute`, `end_hour`, `end_minute`组成左闭右开的时间区间 + * 如`start_hour=14`, `start_minute=15`, `end_hour=15`, `end_minute=00`表示`[14:15, 15:00)`,即14:15开始到15:00前结束。 + * 如`start_hour=20`, `start_minute=00`, `end_hour=00`, `end_minute=00`表示`[20:00, 00:00)`,即20:00开始到后一天的00:00前结束 +* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "pail_charge_list",
+  "data": [{
+    "id": 1
+    "charge_type": 1,
+    "status": 1,
+    "year": 2024,
+    "month": [
+      1,
+      7,
+      8,
+      11
+    ],
+    "dates" : [1,2],
+    "mode" : 1,
+    "devices": [
+      {
+            "id": 1,
+            "proto_id": 6,
+            "proto_type": 1,
+            "application_proto_type": 2,
+            "host": "192.168.77.208",
+            "port": 1510,
+            "com_addr": "/dev/ttyS3",
+            "com_no": 3,
+            "baud_rate": 9600,
+            "data_bits": 8,
+            "stop_bits": 1,
+            "parity": "N",
+            "dlt_addr": "",
+            "slave_id": 1,
+            "uid": "",
+            "station_name": "测试站点",
+            "name": "充电桩1",
+            "model": 1,
+            "ele_meter_id": null,
+            "pt": 0,
+            "ct": 0,
+            "direction": 0,
+            "charge_power": 10,
+            "point_table_proto_type": {
+                  "id": 0,
+                  "device_type": 0,
+                  "name": ""
+            },
+            "running_status": 1,
+            "charges": null,
+            "power_node_pail": null
+      }
+    ],
+    "apply_to_all": false,
+    "settings": [
+      {
+        "start_hour": 20,
+        "start_minute": 0,
+        "end_hour": 0,
+        "end_minute": 0,
+        "cdc_enable_mode": 2,
+        "run_power": 300
+      },
+      {
+        "start_hour": 0,
+        "start_minute": 0,
+        "end_hour": 0,
+        "end_minute": 0,
+        "cdc_enable_mode": 21,
+        "run_power": 0
+      }
+    ]
+  },
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步光伏充放电策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/sync``/command` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_syncpail_charge_sync
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "pail_charge_sync", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +### 同步充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/sync``/result` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_syncpail_charge_sync
datadatatrue消息内容-Payload - data/ChargeDetail
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "pail_charge_sync",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "code": 200,
+  "msg": "",
+  "data": [{
+    "id": 1,
+    "charge_type": 1,
+    "status": 1,
+    "year": 2024,
+    "month": [
+      1,
+      7,
+      8,
+      11
+    ],
+    "week_day": [
+      5,
+      6
+    ],
+    "mode":2,
+    "devices": [
+      {
+            "id": 1,
+            "proto_id": 6,
+            "proto_type": 1,
+            "application_proto_type": 2,
+            "host": "192.168.77.208",
+            "port": 1510,
+            "com_addr": "/dev/ttyS3",
+            "com_no": 3,
+            "baud_rate": 9600,
+            "data_bits": 8,
+            "stop_bits": 1,
+            "parity": "N",
+            "dlt_addr": "",
+            "slave_id": 1,
+            "uid": "",
+            "station_name": "测试站点",
+            "name": "充电桩1",
+            "model": 1,
+            "ele_meter_id": null,
+            "pt": 0,
+            "ct": 0,
+            "direction": 0,
+            "charge_power": 10,
+            "point_table_proto_type": {
+                  "id": 0,
+                  "device_type": 0,
+                  "name": ""
+            },
+            "running_status": 1,
+            "charges": null,
+            "power_node_pail": null
+      }
+    ],
+    "apply_to_all": false,
+    "settings": [
+      {
+        "start_hour": 20,
+        "start_minute": 0,
+        "end_hour": 23,
+        "end_minute": 0,
+        "cdc_enable_mode": 2,
+        "run_power": 300
+      },
+      {
+        "start_hour": 0,
+        "start_minute": 0,
+        "end_hour": 0,
+        "end_minute": 0,
+        "cdc_enable_mode": 21,
+        "run_power": 0
+      }
+    ]
+  }],
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +## 下发创建充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/create``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/create``/command` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_listpail_charge_list
datadatatrue消息内容-Payload - data/ChargeCreate
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeCreate** + +
参数类型是否必填描述范围样例
charge_typeinttrue充放电类型(后续将支持更多类型)1-定时充放电1
statusinttrue策略开关0-关闭,
1-开启
1
yearinttrue(若mode=1,则year为必填;)2024
month[]inttrue月份选择(0代表一月)[0,11][1,7,8,11]
week_day[]intfalse星期选择(0代表星期一)[0,6][5,6]
dates[]intfalse日期选择(0代表1日)【0,30】【0,1,2】
modeinttrue模式(根据mode 参数取值不同,校验week_day或dates是否必填)1-月日模式
2- 月周模式
1
device_ids[]intfalse设备列表ID(uids、ids、apply_to_all三选一)--
apply_to_allboolfalse是否包括所有一级设备(uids、ids、apply_to_all三选一)-true
settings[]chargeTimetrue充放电时间段--
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "pail_charge_create", + "data": { + "charge_type": 1, + "status": 1, + "year": 2024 + "month": [ + 1, + 7, + 8, + 11 + ], + "week_day": [ + 5, + 6 + ], + "mode":2, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ], + "device_ids": [ + 1 + ], +// "apply_to_all": true, +// "ems_device_ids": [ +// "1" +// ] // ems_device_ids、ems_device_uids、apply_to_all 三选一 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 创建充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/create``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/create``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_createpail_charge_create
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
datadatatrue其他数据见data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Data** + + | 参数 | 类型 | 说明 | + | ---------- | --- | ------- | + | policy\_id | int | 充放电策略id | +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "pail_charge_create", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "data": { + "policy_id": 1 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发修改充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/update``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/update``/command` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_updatepail_charge_update
datadatatrue消息内容-Payload - data/ChargeUpdate
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeUpdate** + +
参数类型是否必填描述范围样例
idinttrue策略ID--
其余字段见Payload - data/ChargeCreatefalse
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "pail_charge_update", + "data": { + "id": 1, + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 1, + 7, + 8, + 11 + ], + "week_day": [ + 5, + 6 + ], + "mode":2, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ], + "device_ids": [ + 1 + ] +// "apply_to_all": true, +// "ems_device_ids": [ +// "1" +// ] // ems_device_ids、ems_device_uids、apply_to_all 三选一 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 下发修改充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/update``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/update``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_updatepail_charge_update
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "pail_charge_update", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发删除充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/delete``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/delete``/command` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_deletepail_charge_delete
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue充放电策略ID-1
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "pail_charge_delete",
+  "data": {
+    "id": 1,
+  },
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +### 下发删除充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/delete``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/delete``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_deletepail_charge_delete
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "pail_charge_delete", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 批量下发充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/update_all``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/update_all``/command` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_update_allpail_charge_update_all
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - Data: \[]ChargeCreate** +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "pail_charge_update_all", + "data": [ + { + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 8 + ], + "week_day": [ + 6 + ], + "mode":2, + "apply_to_all": true, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ] + } + ], + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` + +### 批量下发充放电策略响应 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/update_all``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/update_all``/result` +* **权限:**上报 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型pail_charge_update_allpail_charge_update_all
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "d90e64f6-6c71-43e1-a755-d034bb307ee2", + "type": "pail_charge_update_all", + "device_uid": "iYRkfVpi77", + "timestamp": 1706521447074, + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "code": 200, +} +``` diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/photovoltaic_charge-strategy.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/photovoltaic_charge-strategy.md new file mode 100644 index 0000000..6d8c56d --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/photovoltaic_charge-strategy.md @@ -0,0 +1,481 @@ +# 策略-光伏均衡充放电 + +## 上报充放电策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/list``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/list``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_listphotovoltaic_charge_list
datadatatrue消息内容-Payload - data/ChargeDetail
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeDetail** + +
参数类型是否必填描述范围样例
idinttrueID-1
charge_typeinttrue充放电类型(后续将支持更多类型)1-定时充放电1
statusinttrue策略开关0-关闭,
1-开启
1
yearinttrue(若mode=1,则year为必填;)2024
month[]inttrue月份选择(0代表一月)[0,11][1,7,8,11]
week_day[]intfalse星期选择(0代表星期一)[0,6][5,6]
dates[]intfalse日期选择(0代表1日)[0, 30](根据年份大小月份变化)[0,1]
modeinttrue模式(根据mode参数取值不同,校验week_day或dates是否必填)1-月日模式
2-月周模式
1(若mode=1,则dates为必填;若mode=2,则week_day为必填
devices[]Devicetrue光伏设备列表--
settings[]chargeTimetrue充放电时间段--
apply_to_allbooltrue是否包括所有设备-false
+* **Payload - Device** + +
参数类型是否必填描述范围样例
idinttrueID-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度-
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - chargeTime** + +
参数类型是否必填描述范围样例
start_hourinttrue开始小时[0,23]20
start_minuteinttrue开始分钟[0,59]0
end_hourinttrue结束小时[0,23]0
end_minuteinttrue结束分钟[0,59]0
cdc_enable_modeinttrue充放电设定0-待机,
2-放电
1
run_powerinttrue运行功率(单位:kW)[0,65535]300
+ + * **时间说明:**`start_hour`, `start_minute`, `end_hour`, `end_minute`组成左闭右开的时间区间 + * 如`start_hour=14`, `start_minute=15`, `end_hour=15`, `end_minute=00`表示`[14:15, 15:00)`,即14:15开始到15:00前结束。 + * 如`start_hour=20`, `start_minute=00`, `end_hour=00`, `end_minute=00`表示`[20:00, 00:00)`,即20:00开始到后一天的00:00前结束 +* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "photovoltaic_charge_list",
+  "data": [{
+    "id": 1
+    "charge_type": 1,
+    "status": 1,
+    "year": 2024,
+    "month": [
+      1,
+      7,
+      8,
+      11
+    ],
+    "dates" : [1,2],
+    "mode" : 1,
+    "ems_devices": [{
+      "id": 1,
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+    }],
+    "apply_to_all": false,
+    "settings": [
+      {
+        "start_hour": 0,
+        "start_minute": 0,
+        "end_hour": 20,
+        "end_minute": 0,
+        "cdc_enable_mode": 2,
+        "run_power": 300
+      },
+      {
+        "start_hour": 20,
+        "start_minute": 0,
+        "end_hour": 23,
+        "end_minute": 0,
+        "cdc_enable_mode": 0,
+        "run_power": 0
+      }
+    ]
+  },
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步光伏充放电策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_syncphotovoltaic_charge_sync
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "photovoltaic_charge_sync", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +### 同步充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_syncphotovoltaic_charge_sync
datadatatrue消息内容-Payload - data/ChargeDetail
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "photovoltaic_charge_sync",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "code": 200,
+  "msg": "",
+  "data": [{
+    "id": 1,
+    "charge_type": 1,
+    "status": 1,
+    "year": 2024,
+    "month": [
+      1,
+      7,
+      8,
+      11
+    ],
+    "week_day": [
+      5,
+      6
+    ],
+    "mode":2,
+    "devices": [{
+      "id": 1,
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+    }],
+    "apply_to_all": false,
+    "settings": [
+      {
+        "start_hour": 0,
+        "start_minute": 0,
+        "end_hour": 10,
+        "end_minute": 0,
+        "cdc_enable_mode": 2,
+        "run_power": 300
+      },
+      {
+        "start_hour": 20,
+        "start_minute": 0,
+        "end_hour": 23,
+        "end_minute": 0,
+        "cdc_enable_mode": 1,
+        "run_power": 0
+      }
+    ]
+  }],
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +## 下发创建充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/create``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/create``/command` +* **权限:**下发 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型charge_photovoltaic_createcharge_photovoltaic_create
datadatatrue消息内容-Payload - data/ChargeCreate
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeCreate** + +
参数类型是否必填描述范围样例
charge_typeinttrue充放电类型(后续将支持更多类型)1-定时充放电1
statusinttrue策略开关0-关闭,
1-开启
1
yearinttrue(若mode=1,则year为必填;)2024
month[]inttrue月份选择(0代表一月)[0,11][1,7,8,11]
week_day[]intfalse星期选择(0代表星期一)[0,6][5,6]
dates[]intfalse日期选择(0代表1日)[0,30][0,1,2]
modeinttrue模式(根据mode 参数取值不同,校验week_day或dates是否必填)1-月日模式
2-月周模式
1
device_ids[]intfalse设备列表ID(uids、ids、apply_to_all三选一)--
apply_to_allboolfalse是否包括所有一级设备(uids、ids、apply_to_all三选一)-true
settings[]chargeTimetrue充放电时间段--
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "photovoltaic_charge_create", + "data": { + "charge_type": 1, + "status": 1, + "year": 2024 + "month": [ + 1, + 7, + 8, + 11 + ], + "week_day": [ + 5, + 6 + ], + "mode":2, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ], + "device_ids": [ + 1 + ], +// "apply_to_all": true, +// "ems_device_ids": [ +// "1" +// ] // ems_device_ids、ems_device_uids、apply_to_all 三选一 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 创建充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/create``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/create``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_createphotovoltaic_charge_create
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
datadatatrue其他数据见data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Data** + + | 参数 | 类型 | 说明 | + | ---------- | --- | ------- | + | policy\_id | int | 充放电策略id | +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "photovoltaic_charge_create", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "data": { + "policy_id": 1 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发修改充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/update``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/update``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_updatephotovoltaic_charge_update
datadatatrue消息内容-Payload - data/ChargeUpdate
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/ChargeUpdate** + +
参数类型是否必填描述范围样例
idinttrue策略ID--
其余字段见Payload - data/ChargeCreatefalse
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "type": "photovoltaic_charge_update", + "data": { + "id": 1, + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 1, + 7, + 8, + 11 + ], + "week_day": [ + 5, + 6 + ], + "mode":2, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ], + "device_ids": [ + 1 + ] +// "apply_to_all": true, +// "ems_device_ids": [ +// "1" +// ] // ems_device_ids、ems_device_uids、apply_to_all 三选一 + }, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +### 下发修改充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/update``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/update``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_updatephotovoltaic_charge_update
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "photovoltaic_charge_update", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 下发删除充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/delete``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/delete``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_deletephotovoltaic_charge_delete
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue充放电策略ID-1
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "charge_delete",
+  "data": {
+    "id": 1,
+  },
+  "device_uid": "iYRkfVpi77",
+  "timestamp": 1695265371000
+}
+
+ +### 下发删除充放电策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/delete``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/delete``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_deletephotovoltaic_charge_delete
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "photovoltaic_charge_delete", + "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +## 批量下发充放电策略指令 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/update_all``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/update_all``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_update_allphotovoltaic_charge_update_all
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - Data: \[]ChargeCreate** +* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "photovoltaic_charge_update_all", + "data": [ + { + "charge_type": 1, + "status": 1, + "year": 2024, + "month": [ + 8 + ], + "week_day": [ + 6 + ], + "mode":2, + "apply_to_all": true, + "settings": [ + { + "start_hour": 1, + "start_minute": 50, + "end_hour": 23, + "end_minute": 0, + "cdc_enable_mode": 2, + "run_power": 100 + } + ] + } + ], + "device_uid": "iYRkfVpi77", + "timestamp": 1695265371000 +} +``` + +### 批量下发充放电策略响应 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_photovoltaic/update_all``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_photovoltaic/update_all``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型photovoltaic_charge_update_allphotovoltaic_charge_update_all
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "d90e64f6-6c71-43e1-a755-d034bb307ee2", + "type": "photovoltaic_charge_update_all", + "device_uid": "iYRkfVpi77", + "timestamp": 1706521447074, + "reply": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "code": 200, +} +``` diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/power-node.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/power-node.md new file mode 100644 index 0000000..a40fd8c --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/power-node.md @@ -0,0 +1,217 @@ +# 配置-支路设计 + +## 上报支路设计 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``power_node/list``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``power_node/list``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型power_node_listpower_node_list
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述样例
idinttrueID-1
namestrtrue支路名称-电表1
typeinttrue设备类型 1-电表设备 2-EMS设备[1,2]1
deviceeleMeter/emsDevicetrue设备详情--
parent_idinttrue父节点ID-0
pathstrtrue路径--0-
running_statusinttrue运行状态 1-运行 2-离线 3-故障[1,2,3]1
children[]powerNodetrue子节点--
+ +* **Payload - emsDevice** + +
参数类型是否必填描述范围样例
uidstrtrue设备UID-DGHDJSJKD-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度--
latitudefloattrue纬度-
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - eleMeter** + +
参数类型是否必填描述样例
uidstrtrue电表UID-QmqEhterhgrzS66grew-1
station_namestrtrue站点名称-站点1
portinttrue端口[0,65535]1
namestrtrue设备名称-东区变压器
rateinttrue倍率(0, ∞)100
running_statusinttrue

运行状态

1-在线

2-离线

[1,2] 1
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "power_node_list", + "data": [{ + "id": 1, + "name": "总电表", + "type": 1, + "device": { + "uid": "QmqEhterhgrzS66grew-1", + "station_name": "", + "port": 1, + "com_addr": "/dev/ttyS9", + "slave_id": 1, + "name": "总电表", + "running_status": 2, + "direction": -1, + "rate": 100 + }, + "parent_id": 0, + "path": "-0-", + "running_status": 0, + "children": null + },{ + "id": 2, + "name": "左电表", + "type": 1, + "device": { + "uid": "QmqEhterhgrzS66grew-2", + "station_name": "", + "port": 2, + "com_addr": "/dev/ttyS5", + "slave_id": 1, + "name": "左电表", + "running_status": 2, + "direction": 1, + "rate": 20 + }, + "parent_id": 1, + "path": "-0-1-", + "running_status": 0, + "children": null + },{ + "id": 3, + "name": "设备204", + "type": 2, + "device": { + "uid": "QmqEiSCEuFNXCozS66W9y8-5", + "name": "设备204", + "site_name": "测试站点", + "location": "", + "longitude": 0, + "latitude": 0, + "level": 1, + "charges": null, + "license": "", + "type": "", + "running_status": 2, + "host": "192.168.77.204", + "port": 1502 + }, + "parent_id": 2, + "path": "-0-1-2-", + "running_status": 0, + "children": null + }], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +## 平台请求同步支路设计 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``power_node/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``power_node/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型power_node_syncpower_node_sync
codeinttrue响应代码-见响应代码
msgstrfalse失败原因-参数错误
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "power_node_sync", + "code": 200, + "msg": "", + "device_uid": "iYRkfVpi77", + "timestamp": 1695265671000 +} +``` + +### 同步支路设计响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``power_node/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``power_node/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型power_node_syncpower_node_sync
datadatatrue消息内容-Payload - data
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述样例
idinttrueID-1
namestrtrue支路名称-电表1
typeinttrue设备类型 1-电表设备 2-EMS设备[1,2]1
deviceemsMeter/emsDevicetrue设备详情--
parent_idinttrue父节点ID-0
pathstrtrue路径--0-
running_statusinttrue运行状态 1-运行 2-离线 3-故障[1,3]1
children[]powerNodetrue子节点--
+ +* **Payload - emsDevice** + +
参数类型是否必填描述范围样例
uidstrtrue设备UID-DGHDJSJKD-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload - eleMeter** + +
参数类型是否必填描述样例
uidstrtrue电表UID-QmqEhterhgrzS66grew-1
station_namestrtrue站点名称-站点1
portinttrue端口[0,65535]1
namestrtrue设备名称-东区变压器
rateinttrue倍率(0, ∞)100
running_statusinttrue

运行状态

1-在线

2-离线

[1,2] 1
+* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "power_node_sync", + "data": [{ + "id": 1, + "name": "总电表", + "type": 1, + "device": { + "uid": "QmqEhterhgrzS66grew-1", + "station_name": "", + "port": 1, + "com_addr": "/dev/ttyS9", + "slave_id": 1, + "name": "总电表", + "running_status": 2, + "direction": -1, + "rate": 100 + }, + "parent_id": 0, + "path": "-0-", + "running_status": 0, + "children": null + },{ + "id": 2, + "name": "左电表", + "type": 1, + "device": { + "uid": "QmqEhterhgrzS66grew-2", + "station_name": "", + "port": 2, + "com_addr": "/dev/ttyS5", + "slave_id": 1, + "name": "左电表", + "running_status": 2, + "direction": 1, + "rate": 20 + }, + "parent_id": 1, + "path": "-0-1-", + "running_status": 0, + "children": null + },{ + "id": 3, + "name": "设备204", + "type": 2, + "device": { + "uid": "QmqEiSCEuFNXCozS66W9y8-5", + "name": "设备204", + "site_name": "测试站点", + "location": "", + "longitude": 0, + "latitude": 0, + "level": 1, + "charges": null, + "license": "", + "type": "", + "running_status": 2, + "host": "192.168.77.204", + "port": 1502 + }, + "parent_id": 2, + "path": "-0-1-2-", + "running_status": 0, + "children": null + }], + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/safety.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/safety.md new file mode 100644 index 0000000..e2b6f1a --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/safety.md @@ -0,0 +1,109 @@ +# 策略-安全保护 + +## 上报安全保护策略 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``safety/details``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``safety/details``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型safety_detailssafety_details
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
bms_3inttrueBMS三级报警停机状态 0-关 1-开[0,1]1
fire_controlinttrue

消防报警停机

0-关

1-开

[0,1]0
floodinginttrue

水浸停机

0-关

1-开

[0,1]1
airconinttrue

空调掉线停机

0-关

1-开

[0,1]0
aircon_minsinttrue空调掉线停机时间[0, ∞)10
tempinttrue

室内温度过高停机

0-关

1-开

[0,1]1
temp_celsiusinttrue室内温度过高停机温度[0, ∞)35
groundedinttrue

接地离线停机状态

0-关

1-开

[0,1]1
grounded_minsinttrue接地离线停机时间[0, ∞)5
bms_2inttrue

BMS二级报警降功率停机

0-关

1-开

[0,1]1
bms_2_kwinttrueBMS二级报警降功率至停机功率[0, ∞)100
meter_offline_power0inttrue

电表离线停机

0-关

1-开

[0,1]1
meter_offline_minsinttrue电表离线停机时间[0, ∞)100
+* **Payload示例** + +
{
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "type": "safety_details",
+  "data": {
+    "bms_3": 0,
+    "fire_control": 0,
+    "flooding": 0,
+    "aircon": 0,
+    "aircon_mins": 0,
+    "temp": 0,
+    "temp_celsius": 0,
+    "grounded": 0,
+    "grounded_mins": 0,
+    "bms_2": 0,
+    "bms_2_kw": 0,
+    "meter_offline_power0": 0,
+    "meter_offline_mins": 0
+  },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步安全保护策略 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``safety/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``safety/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型safety_syncsafety_sync
codeinttrue响应代码-见响应代码
msgstrtrue失败原因-参数错误
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "safety_sync", + "code": 200, + "msg": "", + "sub_device_uid": "${SUB_DEVICE_UID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + + + +### 同步安全保护策略响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``safety/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``safety/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型safety_syncsafety_sync
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
bms_3inttrueBMS三级报警停机状态 0-关 1-开[0,1]1
fire_controlinttrue

消防报警停机

0-关

1-开

[0,1]0
floodinginttrue

水浸停机

0-关

1-开

[0,1]1
airconinttrue

空调掉线停机

0-关

1-开

[0,1]0
aircon_minsinttrue空调掉线停机时间[0, ∞)10
tempinttrue

室内温度过高停机

0-关

1-开

[0,1]1
temp_celsiusinttrue室内温度过高停机温度[0, ∞)35
groundedinttrue

接地离线停机状态

0-关

1-开

[0,1]1
grounded_minsinttrue接地离线停机时间[0, ∞)5
bms_2inttrue

BMS二级报警降功率停机

0-关

1-开

[0,1]1
bms_2_kwinttrueBMS二级报警降功率至停机功率[0, ∞)100
meter_offline_power0inttrue

电表离线停机

0-关

1-开

[0,1]1
meter_offline_minsinttrue电表离线停机时间[0, ∞)100
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "safety_sync",
+  "data": {
+    "bms_3": 0,
+    "fire_control": 0,
+    "flooding": 0,
+    "aircon": 0,
+    "aircon_mins": 0,
+    "temp": 0,
+    "temp_celsius": 0,
+    "grounded": 0,
+    "grounded_mins": 0,
+    "bms_2": 0,
+    "bms_2_kw": 0,
+    "meter_offline_power0": 0,
+    "meter_offline_mins": 0
+  },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/sub-device.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/sub-device.md new file mode 100644 index 0000000..b230b98 --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/sub-device.md @@ -0,0 +1,173 @@ +# 信息-EMU设备 + +## 上报设备信息 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``device_info/details``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``device_info/details``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型device_info_detailsdevice_info_details
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
sub_device_idinttrue一级设备ID,仅二级替一级设备上报时需要该字段(0, ∞)2
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue设备ID-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "type": "device_info_details",
+  "data": {
+      "id": 1,
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+      "license": "2YIZedmOtl4pcqo1EA4zhM5gofDI",
+  },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "sub_device_id": 2,
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步设备信息 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``device_info/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``device_info/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型device_info_syncdevice_info_sync
datadatatrue消息内容-Payload - data
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "device_info_sync", + "sub_device_uid": "${SUB_DEVICE_UID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + +### 同步设备信息响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``device_info/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``device_info/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型device_info_syncdevice_info_sync
datadatatrue消息内容-Payload - data
codeinttrue响应代码-见响应代码
msgstrtrue失败原因-参数错误
sub_device_uidstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue设备ID-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度-
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "device_info_sync",
+  "data": {
+      "id": 1,
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+      "license": "2YIZedmOtl4pcqo1EA4zhM5gofDI",
+  },
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步设备信息列表 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``device_info/list``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``device_info/list``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型device_info_listdevice_info_list
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "device_info_list", + "code": 200, + "msg": "", + "sub_device_uid": "${SUB_DEVICE_UID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + +### 同步设备信息响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``device_info/list``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``device_info/list``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-4c5b3c27-cea8-4ea1-a936-41fd3596e0e9
replyUUIDtrue所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型device_info_listdevice_info_list
datadatatrue消息内容-Payload - data
codeinttrue响应代码-见响应代码
msgstrtrue失败原因-参数错误
device_uidstrtrue设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data** + +
参数类型是否必填描述范围样例
idinttrue设备ID-1
namestrtrue设备名称-ems设备
site_namestrtrue站点名称-ems站点
locationstrtrue详细地理位置-wudun
longitudefloattrue经度-
latitudefloattrue纬度-
levelinttrueEMS等级[1, 2]1
typestrtrue设备类型-ems
running_statusinttrue

运行状态

1-运行

2-离线

3-故障

[1,2,3]1
hoststrtrue地址-192.168.0.1
portstrtrue端口[0,65525]2171
licensestrtrue激活码-2YIZedmOtl4pcqo1EA4zhM5gofDI
+* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "device_info_list",
+  "data": [{
+      "id": 1,
+      "name": "右206",
+      "site_name": "测试站点",
+      "location": "",
+      "longitude": 0,
+      "latitude": 0,
+      "statistics_port": 1504,
+      "level": 1,
+      "type": "ems",
+      "running_status": 1,
+      "host": "192.168.77.206",
+      "port": 1502,
+      "license": "2YIZedmOtl4pcqo1EA4zhM5gofDI",
+  }],
+  "sub_device_uid": "${SUB_DEVICE_UID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/sub-elemeter.md b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/sub-elemeter.md new file mode 100644 index 0000000..88768ab --- /dev/null +++ b/00. 预研阶段/wudun_EMS_MQTT/level-2-ems/sub-elemeter.md @@ -0,0 +1,227 @@ +# 信息-电表设备 + +## 上报电表设备信息 + +* **Topic:** + * 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``elemeter_info/details``/post` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``elemeter_info/details``/post` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
miduuid消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestr消息类型elemeter_info_detailselemeter_info_details
datadata消息内容-Payload - data
sub_device_idint一级设备ID,仅二级替一级设备上报时需要该字段-1
device_uidstr(二级)设备UID-iYRkfVpi77
timestampint消息时间戳(单位:毫秒)(0, ∞)1696837112000
+ +* **Payload - data/eleMeter** + +
参数类型是否必填描述范围样例
iduintID-1
station_namestr站点名称-丽宝广场
virtual_typeuint虚拟类型1-虚拟电表
2-真实电表
2
proto_typeuint协议类型

1-tcp

2-rtu

1
application_proto_typeuint应用层协议类型1-dlt645
2-modbus
2
slave_iduint设备从站id(应用层协议类型为modbus时必填)-1
dlt_addrstr私有地址(应用层协议类型为1时必填)-AAAAAAAAAAAA
hoststr地址(传输层协议类型为2时必填)-192.168.0.1
portuint端口(传输层协议类型为2时必填)[0,65535]502
com_addrstr串口地址(传输层协议类型为1时必填-/dev/ttyS1
com_nouint串口号(传输层协议类型为1时必填-1
baud_rateint波特率(传输层协议类型为1时必填)-9600
data_bitsint数据位(传输层协议类型为1时必填)-8
stop_bitsint停止位(传输层协议类型为1时必填)-1
paritystring校验位 (传输层协议类型为1时必填)N:无校验
E:奇校验
O:偶校验
N
namestr设备名称东区变压器
ele_device_type_iduint电表类型id1
ele_device_typeele_device_type电表类型对象
ptuint电压互感10
ctuint电流互感10
directionint电表方向
running_statusuint运行状态1
purposeint用途 1-关口表 2-计量表1
associate_meters[]eleMeter关联的电表关联自身
+ +* **Payload示例** + +{% code lineNumbers="true" %} +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed", + "type": "elemeter_info_details", + "data": { + "id": 1, + "proto_id": 1, + "proto_type": 1, + "application_proto_type": 2, + "host": "192.168.1.2", + "port": 502, + "com_addr": "", + "com_no": 0, + "baud_rate": 9600, + "data_bits": 8, + "stop_bits": 1, + "parity": "N", + "dlt_addr": "", + "slave_id": 1, + "uid": "", + "station_name": "测试站点", + "name": "电表208", + "virtual_type": 2, + "ele_device_type_id": 1, + "ele_device_type": { + "id": 1, + "device_type": 1, + "name": "Acrel-ADW300" + }, + "running_status": 1, + "direction": 1, + "pt": 1, + "ct": 1, + "purpose": 1, + "meter_ids": null, + "associate_meters": [] + }, + "sub_device_uid": "${SUB_DEVICE_UID}", + "sub_device_id": 2, + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265371000 +} +``` +{% endcode %} + +## 平台请求同步设备信息 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``elemeter_info/sync``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``elemeter_info/sync``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
midUUIDtrue消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestrtrue消息类型elemeter_info_syncelemeter_info_sync
sub_device_idstrtrue一级设备UID,仅二级替一级设备上报时需要该字段-jHODSda39
device_uidstrtrue(二级)设备UID-iYRkfVpi77
timestampinttrue消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "elemeter_info_sync", + "sub_device_id": "${SUB_DEVICE_ID}", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + +### 同步设备信息响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``elemeter_info/sync``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``elemeter_info/sync``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
miduuid消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
replyuuid所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestr消息类型elemeter_info_syncelemeter_info_sync
datadata消息内容-Payload - data
codeint响应代码-见响应代码
msgstr失败原因-参数错误
sub_device_idint一级设备ID,仅二级替一级设备上报时需要该字段-1
device_uidstr(二级)设备UID-iYRkfVpi77
timestampint消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/eleMeter** +* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "elemeter_info_sync",
+  "data": {
+    "id": 1,
+    "proto_id": 1,
+    "proto_type": 1,
+    "application_proto_type": 2,
+    "host": "192.168.1.2",
+    "port": 502,
+    "com_addr": "",
+    "com_no": 0,
+    "baud_rate": 9600,
+    "data_bits": 8,
+    "stop_bits": 1,
+    "parity": "N",
+    "dlt_addr": "",
+    "slave_id": 1,
+    "uid": "",
+    "station_name": "测试站点",
+    "name": "电表208",
+    "virtual_type": 2,
+    "ele_device_type_id": 1,
+    "ele_device_type": {
+      "id": 1,
+      "device_type": 1,
+      "name": "Acrel-ADW300"
+    },
+    "running_status": 1,
+    "direction": 1,
+    "pt": 1,
+    "ct": 1,
+    "purpose": 1,
+    "meter_ids": null,
+    "associate_meters": []
+  },
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
+ +## 平台请求同步设备信息列表 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``elemeter_info/list``/command` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``elemeter_info/list``/command` +* **权限:**发布 +* **Payload主结构** + +
参数类型是否必填描述范围样例
miduuid消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
typestr消息类型elemeter_info_listelemeter_info_list
device_uidstr(二级)设备UID-iYRkfVpi77
timestampint消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **响应代码** + +
错误码描述说明
200下发成功
400参数有误
+* **Payload示例** + +```json +{ + "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152", + "mid": "4c5b3c27-cea8-4ea1-a936-41fd3596e0e9", + "type": "elemeter_info_list", + "device_uid": "${DEVICE_UID}", + "timestamp": 1695265671000 +} +``` + +### 同步设备信息响应 + +* **Topic:** + * 用户自定义MQTT:`v1/wudun/${PRODUCT_KEY}/${DEVICE}/``elemeter_info/list``/result` + * 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``elemeter_info/list``/result` +* **权限:**订阅 +* **Payload主结构** + +
参数类型是否必填描述范围样例
miduuid消息ID-3e681859-6917-4b9a-9afd-3f162cd185bd
replyuuid所回复消息的mid-3e681859-6917-4b9a-9afd-3f162cd185bd
typestr消息类型elemeter_info_listelemeter_info_list
datadata消息内容-Payload - data
codeint响应代码-见响应代码
msgstr失败原因-参数错误
sub_device_idint一级设备ID,仅二级替一级设备上报时需要该字段-1
device_uidstr(二级)设备UID-iYRkfVpi77
timestampint消息时间戳(单位:毫秒)(0, ∞)1696837112000
+* **Payload - data/\[]eleMeter** +* **Payload示例** + +
{  
+  "trace_id": "577f5df0-65d6-432d-8aac-0116e9530152",
+  "mid": "ee2e8f09-b280-4e4d-bcb9-1529b703cfed",
+  "reply": "3e681859-6917-4b9a-9afd-3f162cd185bd",
+  "type": "elemeter_info_list",
+  "data": [ 
+    {
+      "id": 1,
+      "proto_id": 1,
+      "proto_type": 1,
+      "application_proto_type": 2,
+      "host": "192.168.1.2",
+      "port": 502,
+      "com_addr": "",
+      "com_no": 0,
+      "baud_rate": 9600,
+      "data_bits": 8,
+      "stop_bits": 1,
+      "parity": "N",
+      "dlt_addr": "",
+      "slave_id": 1,
+      "uid": "",
+      "station_name": "测试站点",
+      "name": "电表208",
+      "virtual_type": 2,
+      "ele_device_type_id": 1,
+      "ele_device_type": {
+        "id": 1,
+        "device_type": 1,
+        "name": "Acrel-ADW300"
+      },
+      "running_status": 1,
+      "direction": 1,
+      "pt": 1,
+      "ct": 1,
+      "purpose": 1,
+      "meter_ids": null,
+      "associate_meters": []
+    },
+],
+  "sub_device_id": "${SUB_DEVICE_ID}",
+  "device_uid": "${DEVICE_UID}",
+  "timestamp": 1695265371000
+}
+
diff --git a/00. 预研阶段/平台收益计算公式.xlsx b/00. 预研阶段/平台收益计算公式.xlsx new file mode 100644 index 0000000..223d07d Binary files /dev/null and b/00. 预研阶段/平台收益计算公式.xlsx differ diff --git a/00. 预研阶段/物盾(启辰新能源)云平台.docx b/00. 预研阶段/物盾(启辰新能源)云平台.docx new file mode 100644 index 0000000..55fda6b Binary files /dev/null and b/00. 预研阶段/物盾(启辰新能源)云平台.docx differ diff --git a/00. 预研阶段/物盾EMS使用场景.xlsx b/00. 预研阶段/物盾EMS使用场景.xlsx new file mode 100644 index 0000000..bd606bb Binary files /dev/null and b/00. 预研阶段/物盾EMS使用场景.xlsx differ diff --git a/00. 预研阶段/物盾EMS功能分解.pdf b/00. 预研阶段/物盾EMS功能分解.pdf new file mode 100644 index 0000000..8f658b8 Binary files /dev/null and b/00. 预研阶段/物盾EMS功能分解.pdf differ diff --git a/00. 预研阶段/物盾EMS网站页面.docx b/00. 预研阶段/物盾EMS网站页面.docx new file mode 100644 index 0000000..94f6646 Binary files /dev/null and b/00. 预研阶段/物盾EMS网站页面.docx differ diff --git a/00. 预研阶段/物盾EMU功能分解.pdf b/00. 预研阶段/物盾EMU功能分解.pdf new file mode 100644 index 0000000..7c55d06 Binary files /dev/null and b/00. 预研阶段/物盾EMU功能分解.pdf differ diff --git a/00. 预研阶段/电站设备拓扑.png b/00. 预研阶段/电站设备拓扑.png new file mode 100644 index 0000000..f99e158 Binary files /dev/null and b/00. 预研阶段/电站设备拓扑.png differ diff --git a/00. 预研阶段/电站设备相关数据拓扑.png b/00. 预研阶段/电站设备相关数据拓扑.png new file mode 100644 index 0000000..35b8401 Binary files /dev/null and b/00. 预研阶段/电站设备相关数据拓扑.png differ diff --git a/00. 预研阶段/飞凌图片/024cf97916f423877b72d148444611c6_compress.png b/00. 预研阶段/飞凌图片/024cf97916f423877b72d148444611c6_compress.png new file mode 100644 index 0000000..867094a Binary files /dev/null and b/00. 预研阶段/飞凌图片/024cf97916f423877b72d148444611c6_compress.png differ diff --git a/00. 预研阶段/飞凌图片/f03d9a220830203a1e539bca8b5f5a60_compress(1).png b/00. 预研阶段/飞凌图片/f03d9a220830203a1e539bca8b5f5a60_compress(1).png new file mode 100644 index 0000000..ae39dc2 Binary files /dev/null and b/00. 预研阶段/飞凌图片/f03d9a220830203a1e539bca8b5f5a60_compress(1).png differ diff --git a/00. 预研阶段/飞凌图片/fc507adac3d6f82c0082e0b9a3e82cfc_origin(1).png b/00. 预研阶段/飞凌图片/fc507adac3d6f82c0082e0b9a3e82cfc_origin(1).png new file mode 100644 index 0000000..ae82092 Binary files /dev/null and b/00. 预研阶段/飞凌图片/fc507adac3d6f82c0082e0b9a3e82cfc_origin(1).png differ diff --git a/00. 预研阶段/飞凌图片/正-右.png b/00. 预研阶段/飞凌图片/正-右.png new file mode 100644 index 0000000..6f8926f Binary files /dev/null and b/00. 预研阶段/飞凌图片/正-右.png differ diff --git a/00. 预研阶段/飞凌图片/正-右1.png b/00. 预研阶段/飞凌图片/正-右1.png new file mode 100644 index 0000000..be35236 Binary files /dev/null and b/00. 预研阶段/飞凌图片/正-右1.png differ diff --git a/03. 设计阶段/WEB UI/稿1.jpg b/03. 设计阶段/WEB UI/稿1.jpg new file mode 100644 index 0000000..1c41af3 Binary files /dev/null and b/03. 设计阶段/WEB UI/稿1.jpg differ diff --git a/03. 设计阶段/WEB UI/稿2.jpg b/03. 设计阶段/WEB UI/稿2.jpg new file mode 100644 index 0000000..8aaf3e6 Binary files /dev/null and b/03. 设计阶段/WEB UI/稿2.jpg differ diff --git a/03. 设计阶段/WEB UI/稿3.png b/03. 设计阶段/WEB UI/稿3.png new file mode 100644 index 0000000..8d82309 Binary files /dev/null and b/03. 设计阶段/WEB UI/稿3.png differ