
Scholt MQTT 驱动
以下集成可用于通过 MQTT 发送现场测量数据,并接收安装的不同设备类型的命令。
Python 演示脚本
此测试代码的简单功能是持续向安装发送虚假测量数据,并接收命令:
请在您首选的 Python IDE 中下载下面的文件。填写您的序列号、站点过滤器和 MQTT 凭据,然后执行脚本:
先决条件
云控制器
站点将通过云控制器进行控制。请联系 Eniris 设置新的云控制器。
站点设置
创建云控制器后,它将包含一个唯一的序列号 (<Controller SN>
)。
可以使用唯一的站点过滤器 <site_filter>
在云控制器上生成新站点。
这两个变量必须在 MQTT 主题和正文中使用。
使用相同的站点过滤器会导致错误。
设备选择
Device Type | 支持 |
---|---|
太阳能逆变器 | ✅ |
储能设备 | |
热泵 | |
电网与消费表 | |
电动车充电器 | ❌ |
站点中的设备在创建后无法编辑。
MQTT 凭据
Eniris 将提供 MQTT 凭据。在生成新站点时,必须输入 MQTT 用户名。
凭据只需提供一次。一个 MQTT 凭据集可以用于控制所有站点。
发送测量数据
要向 SmartgridOne Controller 发送测量数据,可以使用以下 MQTT 主题进行发布: standard1/outbound/scholt_meas/<site_filter>/<Controller SN>/
可选字段用 斜体 表示。
可以按设备类型发送以下字段:
-
储能
- mean_soc_perc
- active_power_W
- today_charged_Wh
- today_discharged_Wh
- energy_stored_Wh
-
太阳能
- active_power_W
- today_energy_Wh
-
热泵
- operation_modes
- 可能的操作模式为 off, on
- active_power_W
- 当热泵处于 on 状态时等于额定功率
- operation_modes
-
表计
- active_power_W
- today_imported_energy_Wh
- today_exported_energy_Wh
消息必须按以下结构组织:
{
"time": "<Unix Timestamp>",
"data": {
"state": {
"grid": {
"active_power_W": <电网有功功率(瓦特)>,
"today_imported_energy_Wh": <电网进口能量(瓦时)>,
"today_exported_energy_Wh": <电网出口能量(瓦时)>,
},
"meter": {
"active_power_W": <电网有功功率(瓦特)>,
"today_imported_energy_Wh": <电网进口能量(瓦时)>,
"today_exported_energy_Wh": <电网出口能量(瓦时)>,
},
"storage": {
"energy_stored_Wh": <储存能量(瓦时)>,
"mean_soc_perc": <平均充电状态百分比>,
"active_power_W": <有功功率(瓦特)>,
"today_charged_Wh": <今天当前充电的能量(瓦时)>,
"today_discharged_Wh": <今天当前放电的能量(瓦时)>,
},
"solar": {
"active_power_W": <太阳能有功功率(瓦特)>,
"today_energy_Wh": <今天产生的能量(瓦时)>.
},
"heat_pump": {
"active_power_W": <热泵有功功率(瓦特)>,
"operation_modes": <热泵操作模式>
}
},
"response_code": <响应代码>
},
"fields": {},
"requestTime": "<Unix Timestamp>",
"time": "<Unix Timestamp>",
"siteNodeId": "<site_filter"
}
测量确认
当成功接收到测量数据时,将在以下主题上发送确认: standard1/rp_one_s/scholt_ack/<site_filter>/<Controller SN>
此确认可用于:
- 验证测量消息是否成功接收。
- 验证测量消息是否包含所有必要的数据。
接收命令
要接收来自 SmartgridOne Controller 的命令,请订阅以下 MQTT 主题: standard1/outbound/scholt_cmd/<site_filter>/<Controller SN>/
响应的结构如下:
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": "<Unix Timestamp>",
"fields": {
"solar_policy": "<policy>",
"solar_power_setpoint_w": 5000,
"storage_policy": "<policy>",
"storage_power_setpoint_w": -5000
}
}
可以接收到的政策列表请参见这里:潜在政策列表