# 策略-充电桩均衡充放电
## 上报充放电策略
* **Topic:**
* 用户自定义MQTT: `v1/wudun/${PRODUCT_KEY}/${DEVICE}/``charge_pail/list``/post`
* 平台默认MQTT: `v1/user/${TENANT}/${DEVICE}/``charge_pail/list``/post`
* **权限:**上报
* **Payload主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_list | pail_charge_list |
data | data | true | 消息内容 | - | 见Payload - data/ChargeDetail |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **Payload - data/ChargeDetail**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
id | int | true | ID | - | 1 |
charge_type | int | true | 充放电类型(后续将支持更多类型) | 1-定时充放电 | 1 |
status | int | true | 策略开关 | 0-关闭, 1-开启 | 1 |
year | int | true | 年 | (若mode=1,则year为必填;) | 2024 |
month | []int | true | 月份选择(0代表一月) | [0,11] | [1,7,8,11] |
week_day | []int | false | 星期选择(0代表星期一) | [0,6] | [5,6] |
dates | []int | false | 日期选择(0代表1日) | [0, 30](根据年份大小月份变化) | [0,1] |
mode | int | true | 模式(根据mode参数取值不同,校验week_day或dates是否必填) | 1-月日模式 2- 月周模式
| 1(若mode=1,则dates为必填;若mode=2,则week_day为必填 |
devices | []Device | true | 光伏设备列表 | - | - |
settings | []chargeTime | true | 充放电时间段 | - | - |
apply_to_all | bool | true | 是否包括所有设备 | - | false |
* **Payload - Device**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
uid | str | true | 设备UID | - | DGHDJSJKD-1 |
name | str | true | 设备名称 | - | ems设备 |
site_name | str | true | 站点名称 | - | ems站点 |
location | str | true | 详细地理位置 | - | wudun |
longitude | float | true | 经度 | - | |
latitude | float | true | 纬度 | | |
level | int | true | EMS等级 | [1, 2] | 1 |
type | str | true | 设备类型 | - | ems |
running_status | int | true | 运行状态 1-运行 2-离线 3-故障 | [1,2,3] | 1 |
host | str | true | 地址 | - | 192.168.0.1 |
port | str | true | 端口 | [0,65525] | 2171 |
license | str | true | 激活码 | - | 2YIZedmOtl4pcqo1EA4zhM5gofDI |
* **Payload - chargeTime**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
start_hour | int | true | 开始小时 | [0,23] | 20 |
start_minute | int | true | 开始分钟 | [0,59] | 0 |
end_hour | int | true | 结束小时 | [0,23] | 0 |
end_minute | int | true | 结束分钟 | [0,59] | 0 |
cdc_enable_mode | int | true | 充放电设定 | 0-待机, 1-充电, 2-放电 | 1 |
run_power | int | true | 运行功率(单位: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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_sync | pail_charge_sync |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **响应代码**
* **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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 4c5b3c27-cea8-4ea1-a936-41fd3596e0e9 |
reply | UUID | true | 所回复消息的mid | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_sync | pail_charge_sync |
data | data | true | 消息内容 | - | 见Payload - data/ChargeDetail |
code | int | true | 响应代码 | - | 见响应代码 |
msg | str | false | 失败原因 | - | 参数错误 |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_list | pail_charge_list |
data | data | true | 消息内容 | - | 见Payload - data/ChargeCreate |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **Payload - data/ChargeCreate**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
charge_type | int | true | 充放电类型(后续将支持更多类型) | 1-定时充放电 | 1 |
status | int | true | 策略开关 | 0-关闭, 1-开启 | 1 |
year | int | true | 年 | (若mode=1,则year为必填;) | 2024 |
month | []int | true | 月份选择(0代表一月) | [0,11] | [1,7,8,11] |
week_day | []int | false | 星期选择(0代表星期一) | [0,6] | [5,6] |
dates | []int | false | 日期选择(0代表1日) | 【0,30】 | 【0,1,2】 |
mode | int | true | 模式(根据mode 参数取值不同,校验week_day或dates是否必填) | 1-月日模式 2- 月周模式 | 1 |
device_ids | []int | false | 设备列表ID(uids、ids、apply_to_all三选一) | - | - |
apply_to_all | bool | false | 是否包括所有一级设备(uids、ids、apply_to_all三选一) | - | true |
settings | []chargeTime | true | 充放电时间段 | - | - |
* **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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 4c5b3c27-cea8-4ea1-a936-41fd3596e0e9 |
reply | UUID | true | 所回复消息的mid | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_create | pail_charge_create |
code | int | true | 响应代码 | - | 见响应代码 |
msg | str | false | 失败原因 | - | 参数错误 |
data | data | true | 其他数据 | | 见data |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **响应代码**
* **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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_update | pail_charge_update |
data | data | true | 消息内容 | - | 见Payload - data/ChargeUpdate |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **Payload - data/ChargeUpdate**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
id | int | true | 策略ID | - | - |
其余字段见Payload - data/ChargeCreate | | false | | | |
* **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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 4c5b3c27-cea8-4ea1-a936-41fd3596e0e9 |
reply | UUID | true | 所回复消息的mid | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_update | pail_charge_update |
code | int | true | 响应代码 | - | 见响应代码 |
msg | str | false | 失败原因 | - | 参数错误 |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **响应代码**
* **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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_delete | pail_charge_delete |
data | data | true | 消息内容 | - | 见Payload - data |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **Payload - data**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
id | int | true | 充放电策略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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 4c5b3c27-cea8-4ea1-a936-41fd3596e0e9 |
reply | UUID | true | 所回复消息的mid | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_delete | pail_charge_delete |
code | int | true | 响应代码 | - | 见响应代码 |
msg | str | false | 失败原因 | - | 参数错误 |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (0, ∞) | 1696837112000 |
* **响应代码**
* **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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_update_all | pail_charge_update_all |
data | data | true | 消息内容 | - | 见Payload - data |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (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主结构**
参数 | 类型 | 是否必填 | 描述 | 范围 | 样例 |
---|
mid | UUID | true | 消息ID | - | 4c5b3c27-cea8-4ea1-a936-41fd3596e0e9 |
reply | UUID | true | 所回复消息的mid | - | 3e681859-6917-4b9a-9afd-3f162cd185bd |
type | str | true | 消息类型 | pail_charge_update_all | pail_charge_update_all |
code | int | true | 响应代码 | - | 见响应代码 |
msg | str | false | 失败原因 | - | 参数错误 |
device_uid | str | true | (二级)设备UID | - | iYRkfVpi77 |
timestamp | int | true | 消息时间戳(单位:毫秒) | (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,
}
```