跳到主要内容

虚拟电厂

提示

VPP 协议基于实时 MQTT 协议。请在此之前参考此页面。查看 实时 MQTT 控制

提示

初始 VPP 设置 必须Eniris 完成。在执行下一步之前,请联系 Eniris

连接到 MQTT 代理

请参考以下部分以了解如何连接到 Eniris MQTT 代理:MQTT 代理连接

VPP 功能

VPP 旨在为每个设备组(例如:太阳能、储存)接收一组设定点/策略,并在连接到 VPP 的控制器之间聚合设定点。

虽然实时 MQTT 协议会向单个控制器发送命令,但 VPP 允许用户向一组控制器发送一个命令。

Image 1

将控制器添加到 VPP

Image 1
Image 1
Image 1
Image 1

添加 Eniris MQTT 信号时,会显示 VPP ID 字段。输入在此处接收到的 VPP ID

Enter VPP ID
Image 1

聚合算法

设定点根据属于各个控制器的设备的容量进行聚合。

MQTT 主题

完成初始设置后,将提供 VPP IDMQTT 用户名(及密码)。

进入主题

主题:vpp/{MQTT 用户名}/{VPP ID}

该主题由用户用于向 VPP 发送聚合命令。

主体:

{
"msg_id": <递增消息 ID>(int),
"vpp_id": <VPP ID>(str)
"time": "<Unix 时间戳>(int)",
"fields": {
"<组件策略>": "<策略类型>",
"<组件功率设定点>": <以瓦特为单位的设定点>
}
}

组件策略和设定点在此处可以找到:MQTT 组件和策略

确认主题

主题:vpp/{MQTT 用户名}/{VPP ID}/acknowledgement

在发送命令后,VPP 将以确认响应,指示命令是否成功接收。

主体:

{
"payload": {
"fields": {
"responseCode": <成功/失败代码>(int),
"ack": <确认消息>(str)
},
"target": <VPP ID>(str)
},
"message_type": <消息类型>(str)
}

反馈主题

主题:vpp/{MQTT 用户名}/{VPP ID}/feedback

反馈主题包含各个控制器返回的反馈。

主体:

{
"payload": {
"updated_on": <数据的 Unix 时间戳>(str)
"feedback_dict": {
<反馈字典>(dict)
},
"target": <站点节点 ID>(str)
},
"message_type": <消息类型>(str)
}

反馈字典结构可以在此处找到:MQTT 反馈有效负载结构

聚合反馈主题

主题:vpp/{MQTT 用户名}/{VPP ID}/aggregated_feedback

VPP 聚合从每个单独控制器接收到的反馈。

主体:

{
"payload": {
"updated_on": <数据的 Unix 时间戳>(str)
"feedback_dict": {
<聚合反馈字典>(dict)
},
},
"message_type": <消息类型>(str)
}

聚合反馈字典的结构与 MQTT 反馈有效负载结构 类似。 然而,字符串值,例如执行的策略,无法聚合,因此未包含在内。

派发命令主题

主题:vpp/{MQTT 用户名}/{VPP ID}/dispatched_commands

当 VPP 向控制器发送命令时,将使用该主题进行报告。

主体:

{
"payload": {
"aggregated": {
<组件名称>(str): <命令功率值>(float)...
},
"dispatched_commands": [
<发送给控制器的个别命令列表>
],
},
"message_type": <消息类型>(str)
}

发送的个别命令的有效负载结构可以在此处找到:MQTT 反馈有效负载结构

警告主题

主题:vpp/{MQTT 用户名}/{VPP ID}/warning

如果 VPP 发生错误或警告,将通过此 MQTT 主题发送消息。

主体:

{
"payload": {
"fields": {
<字段字典>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <消息类型>(str)
}