OpenData API
当前在线文档内容对应《Indevolt OpenData Application Note》V1.6。
1️⃣ 介绍
OpenData是为基于WiFi的INDEVOLT物联网设备设计的轻量级通信框架。设备通过WiFi接入本地网络,支持数据主动推送与外部查询响应。
核心功能
- 设备数据获取:实时拉取设备数据。
- 设备控制:动态调整设备参数及配置。
使用场景
-
接收外部HTTP查询请求
2️⃣ 准备
步骤一、安装工具
步骤二、开启 API
在默认状态下设备API功能未开启,需要开启后才能使用API。OpenData提供以下三种方式:
- HTTP
- HTTP+ Digest 认证
- HTTPS (目前不支持,敬请期待)
您可在 INDEVOLT App 中设置本地API:
- 设备已联网:推荐使用 云端设置,操作更简单
- 设备暂未联网:可通过本地蓝牙设置,直接与设备连接即可完成配置
- 通过云端设置
- 通过本地蓝牙设置
步骤三、查看固件版本
若设备版本低于表格所列版本,请更新设备固件。
Model Applicable firmware version BK1600/BK1600Ultra V1.3.0A_R006.072_M4848_00000039 SolidFlex2000/PowerFlex2000 CMS:V1406.07.002E 请在 INDEVOLT App 中查看设备固件版本。在设备设置页选择 固件升级 查看固件信息.
![]()
![]()
步骤四、获取 IP 地址
以下三种方法任选其一:
🧩方法 1:路由器管理后台查询;
🧩方法 2:App设备设置界面查看;
![]()
![]()
🧩方法 3: UDP广播获取IP
(1) 确保设备接入的WiFi网络与电脑处于同一局域网。
(2) 打开网络调试工具。
(3) 选择 UDP 协议。
(4) 选择 Local Host Addr。
(5) 设置Local Host Port为10000。
(6) 单击 Open。![]()
(7) 在Remote设置广播地址及端口:255.255.255.255:8099。
![]()
(8) 在消息框里填写AT指令:AT+IGDEVICEIP。
(9) 单击 Send。![]()
(10) 同一局域网内的INDEVOLT设备会回复其IP地址和SN号。
![]()
3️⃣ HTTP使用说明
3.1 请求结构
请求方法
| 方法 | 说明 |
|---|---|
| GET | 请求服务器返回指定资源。 |
| POST | 请求服务器执行特定操作。 |
请求地址
http://{IP_ADDRESS}:8080/rpc/{API}
其中:
{IP_ADDRESS}:设备的IP地址。{API}:调用的HTTP API。
请求示例
- 获取设备数据:
POST http://192.168.31.213:8080/rpc/Indevolt.GetData?config={"t":[1664,1665]}
cURL 命令示例
-
获取电池 SOC:
curl -g -X POST -H "Content-Type: application/json" "http://192.168.1.75:8080/rpc/Indevolt.GetData?config={\"t\":[6002]}"
3.2 Digest 认证
Digest认证技术用于网络通信中验证用户身份,避免密码明文传输。
在HTTP+Digest模式下:
- 首次使用或恢复出厂设置的设备需要先使用
User.SetConfig接口修改默认密码。 - 修改密码成功后,可使用其他接口。
工具
- ASCII → 十六进制转换器
- 十六进制 → Base64 转换器
- AES-GCM 加密工具
修改密码示例
-
将新密码、原始密码与随机数转换为十六进制。
ASCII 字符串 十六进制 新密码 qwertyui 71 77 65 72 74 79 75 69 原始密码 qazwsxed 71 61 7a 77 73 78 65 64 00 00 00 00 00 00 00 00
(补齐至 16 字节)随机数 123456 31 32 33 34 35 36 00 00 00 00 00 00
(补齐至 12 字节) -
使用 AES-GCM 工具加密,在工具中填写对应信息进行加密。
-
将密文和 Tag 转换为 Base64。
十六进制 Base64 密文 4e b2 90 67 54 02 d4 c4 TrKQZ1QC1MQ= Tag cf 0b d0 4e 37 a0 e6 bb cb 74 1b cb ce ab 72 9a zwvQTjeg5rvLdBvLzqtymg== -
完成 Digest Authentication 字段并发送
User.SetConfig请求。 POSThttp://{IP_ADDRESS}:8080/rpc/User.SetConfig?config={"Password":"{PASSWORD}"}其中:
{IP_ADDRESS}:设备 IP 地址。{PASSWORD}:经过 AES128-GCM 加密后并转换为 Base64 的密文。
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| Username | String | 默认值 opend | 必填 |
| Password | String | 默认设备密钥。 - 使用 默认密码 只能请求 User.SetConfig 接口修改密码。- 修改密码后,使用 新密码 可以调用其他接口。 | 必填 |
| Realm | String | - 调用 User.SetConfig 修改密码时,需要提供 AES128-GCM Tag。- 调用 其他接口 时,可以使用随机值。 | 必填 |
| Nonce | Digest 默认类型 | 可使用随机值 | 必填 |
| Algorithm | Digest 默认类型 | MD5 | 必填 |
| qop | Digest 默认类型 | auth | 必填 |
| Nonce Count | Digest 默认类型 | 可使用随机值 | 必填 |
| Client Nonce | Digest 默认类型 | 可使用随机值 | 必填 |
3.3 错误码
| 状态码 | 描述 | 说明 |
|---|---|---|
| 400 | Bad Request | 服务器无法理解请求格式;客户端需修改请求后重试。 |
| 401 | Unauthorized | 请求需要身份验证;客户端需提供有效凭证。 |
| 403 | Forbidden | 服务器理解请求,但拒绝执行,通常由于权限不足。 |
| 404 | Not Found | 服务器找不到请求的资源,可能资源不存在或已被删除。 |
| 405 | Method Not Allowed | 请求的方法与资源不兼容,例如对只读资源执行写操作。 |
| 408 | Request Timeout | 服务器等待请求超时,客户端可稍后重试。 |
| 409 | Conflict | 请求与资源的当前状态冲突,例如多用户同时编辑同一资源。 |
| 410 | Gone | 请求的资源已被永久删除且无新的地址。 |
| 500 | Internal Server Error | 服务器遇到未知错误,无法完成请求。 |
| 501 | Not Implemented | 服务器不支持请求的方法,无法执行。 |
| 502 | Bad Gateway | 作为网关或代理的服务器从上游服务器收到无效响应。 |
| 503 | Service Unavailable | 服务器当前无法处理请求,可能由于过载或维护。 |
| 504 | Gateway Timeout | 作为网关或代理的服务器未能及时从上游服务器收到响应。 |
| 505 | HTTP Version Not Supported | 服务器不支持请求使用的 HTTP 版本。 |
4️⃣ HTTP API
| 组件 | 说明 |
|---|---|
Indevolt | 读取 INDEVOLT 设备数据,控制设备。 |
Sys | 获取设备 CMS (Communication Management System) 信息。 |
5️⃣ Indevolt
Indevolt 允许你通过标准 HTTP 请求 获取设备实时数据 并 发送控制命令。
5.1 获取设备数据
-
请求示例
POST
http://192.168.31.213:8080/rpc/Indevolt.GetData?config={"t":[1664,1665]} -
返回示例
{
"1664":100,
"1665":251
}
方法:
Indevolt.GetData参数
参数名 类型 说明 config Object t:请求数据的地址,见下表cJSON Point列。返回值
JSON 格式的设备数据。
- SolidFlex2000/PowerFlex2000
- BK1600/BK1600Ultra
cJSON 点位 cJSON 值类型 单位 说明 Enum 定义 SN 0 String Device SN Firmware Version Information 1118 String PG2000Series EMS 1109 String PG2000Series BMS-MB 1119 String PG2000Series PCS 1120 String PG2000Series DCDC 1136 String SFA/PFA DCDC1 1137 String SFA/PFA BMS1 1138 String SFA/PFA DCDC2 1139 String SFA/PFA BMS2 1140 String SFA/PFA DCDC3 1141 String SFA/PFA BMS3 1142 String SFA/PFA DCDC4 1143 String SFA/PFA BMS4 1098 String SFA/PFA DCDC5 1099 String SFA/PFA BMS5 System Operating Information 7101 Enum Working Mode 1: Self-consumed Prioritized
4: Real-time Control
5: Charge/Discharge Sc hedule142 Num kWh Rated Capacity 2618 Num Grid Charging 1000: Disable
1001: Enable11009 Num W Inverter Input Limit 2101 Num W Total AC Input Power 2108 Num W Total AC Output Power 11010 Num W Feed-in Power Limit 11011 Num W Max AC Output Power 680 Num Bypass 0: Disable
1: Enable6105 Num % Backup SOC 7171 Num Light 0: Disable
1: EnableCluster Information 606 Enum Master-slave identification 1000: Master
1001: Slave
1002: NoneBypass Power 667 Float W Bypass power Electrical Energy Information 2107 Num kWh Total AC Input Energy 2104 Num kWh Total AC Output Energy 2105 Num kWh Off-grid Output Energy 11034 Num Wh Bypass Input Energy 1502 Num kWh Daily PV Generation 6004 Num kWh Battery Daily Charging Energy 6005 Num kWh Battery Daily Discharging Energy 6006 Num kWh Battery Total Charging Energy 6007 Num kWh Battery Total Discharging Energy Electricity Meter Status 7120 Enum Meter Connection Status 1000: Enable
1001: Disable11016 Float W Meter Power Grid Information 2600 Num V Grid Voltage 2612 Num Hz Grid Frequency Battery Pack Operating Parameters 6001 Enum Battery Charge/Discharge State 1000: Static
1001: Charging
1002: Discharging6000 Num W Battery Power 6002 Num % Battery SOC Total 9008 String Batt SN-MB 9000 Num % Batt SOC-MB 9004 Num V Batt V-MB 9013 Num A Batt I-MB 9012 Num ℃ Batt Temp-MB 9009 Num V Batt Cell1 V-MB 9011 Num V Batt Cell2 V-MB 9032 String Batt SN-Pack1 9016 Num % Batt SOC-Pack1 9020 Num V Batt V-Pack1 19173 Num A Batt I-Pack1 9030 Num ℃ Batt Temp-Pack1 9021 Num V Batt Cell1 V-Pack1 9023 Num V Batt Cell2 V-Pack1 9051 String Batt SN-Pack2 9035 Num % Batt SOC-Pack2 9039 Num V Batt V-Pack2 19174 Num A Batt I-Pack2 9049 Num ℃ Batt Temp-Pack2 9040 Num V Batt Cell1 V-Pack2 9042 Num V Batt Cell2 V-Pack2 9070 String Batt SN-Pack3 9054 Num % Batt SOC-Pack3 9058 Num V Batt V-Pack3 19175 Num A Batt I-Pack3 9068 Num ℃ Batt Temp-Pack3 9059 Num V Batt Cell1 V-Pack3 9061 Num V Batt Cell2 V-Pack3 9165 Num Batt SN-Pack4 9149 Num % Batt SOC-Pack4 9153 Num V Batt V-Pack4 19176 Num A Batt I-Pack4 9163 Num ℃ Batt Temp-Pack4 9154 Num V Batt Cell1 V-Pack4 9156 Num V Batt Cell2 V-Pack4 9218 String Batt SN-Pack5 9202 Num % Batt SOC-Pack5 9206 Num V Batt V-Pack5 19177 Num A Batt I-Pack5 9216 Num ℃ Batt Temp-Pack5 9219 Num V Batt Cell1 V-Pack5 9222 Num V Batt Cell2 V-Pack5 PV Operating Parameters 1501 Num W Total DC Output Power 1632 Num A DC Input Current 1 1600 Num V DC Input Voltage 1 1664 Num W DC Input Power 1 1633 Num A DC Input Current 2 1601 Num V DC Input Voltage 2 1665 Num W DC Input Power 2 1634 Num A DC Input Current 3 1602 Num V DC Input Voltage 3 1666 Num W DC Input Power 3 1635 Num A DC Input Current 4 1603 Num V DC Input Voltage 4 1667 Num W DC Input Power 4
cJSON 点位 cJSON 值类型 单位 说明 Enum 定义 0 Float Device SN 7101 Enum Working mode 0: Outdoor Portable
1: Self-consumed Prioritized
5: Charge/Discharge Schedule1664 Float W DC Input Power1 1665 Float W DC Input Power2 2108 Float W Total AC Output Power 1502 Float kWh Daily Production 1505 Float 0.001kWh Cumulative Production 2101 Float W Total AC Input Power 2107 Float kWh Total AC Input Energy 1501 Float W Total DC Output Power 6000 Float W Battery Power 6001 Enum Battery Charge/Discharge State 1000: Static
1001: Charging
1002: Discharging6002 Float % Battery SOC 6105 Float % Emergency power supply 6004 Float kWh Battery Daily Charging Energy 6005 Float kWh Battery Daily Discharging Energy 6006 Float kWh Battery Total Charging Energy 6007 Float kWh Battery Total Discharging Energy 7120 Enum Meter Connection Status 1000: Enable
1001: Disable21028 Float W Meter Power
5.2 控制设备
-
请求示例
POST
http://192.168.31.213:8080/rpc/Indevolt.SetData?config={"f":16,"t":47005,"v":[4]} -
返回示例
{"result": true}
-
请求示例
POST
http://192.168.31.213:8080/rpc/Indevolt.SetData?config={"f":16,"t":47015,"v":[2,700,5]} -
返回示例
{"result": true}
方法:
Indevolt.SetData参数
参数名 类型 说明 config Object f:功能码,统一用16;t: 寄存器地址,见下表cJSON 点位列;v: 写入值,见下表值列。
- SolidFlex2000/PowerFlex2000
- BK1600/BK1600Ultra
cJSON 点位 cJSON 值类型 单位 说明 值 47005 Enum Mode Setting 1: Self-consumed Prioritized
4: Real-time control
5: Charge/Discharge Schedule47015 UINT State Setting (Only available in real-time control) 0: Standby
1: Charging
2: Discharging47016 INT W Power Setting (Only available in real-time control) MAX Charging: 50–2400
MAX Discharging: 50–240047017 UINT % SOC Setting (Only available in real-time control) 5-100 1147 INT W Max AC Output Power Setting 50-2400 1146 INT W Feed-in Power Limit Setting 50-2400 1143 UINT Grid Charging Setting 0: Disable
1: Enable1138 INT W Inverter Input Limit Setting 50-2400 1 Enum Load Setting 1: Smart Plug
2: Meter
3: Key Load
4: Custom7266 Enum Bypass Setting 0: Disable
1: Enable1142 INT % Backup SOC Setting 5-100 7265 Enum Light Setting 0: Disable
1: Enable
cJSON 点位 cJSON 值类型 单位 说明 值 47005 Enum Mode 1: Self-consumed Prioritized
2: Charge/discharge Schedule
4: Real-time Control47015 UINT State 0: Standby
1: Charging
2: Discharging47016 INT W Power Charging: 0-1200
Discharging: 0-80047017 UINT % SOC 0-100 信息实时控制模式下,可一次性写入状态、功率、SOC值以控制设备充放电。
返回值
参数名 类型 说明 resultBool true: success;false: failure.
6️⃣ Sys
Sys 用于获取固件版本信息,包括 CMS(Communication Management System)信息。
-
请求示例
GET
http://192.168.31.213:8080/rpc/Sys.GetConfig -
返回示例
{
"device": {
"hostname": "",
"timezone": 480,
"type": "CMS-SF2000",
"sn": "",
"mac": "7C3E82EF997F",
"fw": "T1.4.06_ROOD. 072_M4801_0000002C",
"f_ver": "T1406.07.002C",
"p_ver": "VOD.00.08",
"time": "2025-12-18 09:44:57",
"time_stamp": 1766051097,
"run_time": 2244
}
}
方法:
Sys.GetConfig返回值
参数名 类型 说明 deviceObject 设备配置信息请参见下表。 设备配置
参数名 类型 说明 hostnameString Device name timezoneNum Timezone typeString Device model snString Device serial number macString Device MAC address fwString Device firmware version f_verString PG2000Series CMS p_verString PG2000Series Pfile timeString Current time time_stampNum Current timestamp (in seconds) run_timeNum Device runtime (in seconds)
7️⃣ FAQ
Q: HTTP 访问返回 401 Unauthorized。
- 检查 Digest 认证的用户名和密码是否正确。
- 首次使用/恢复出厂设置的设备只支持访问指定接口
User.SetConfig。详情请见 Digest 认证,修改密码成功后用新密码认证即可正常使用其他接口。
Q: 发送广播指令后设备未返回 IP 地址。
OpenData API尚未开启,导致该功能不可用。详情请见开启 API。









