OpenData API
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 错误码
| 状态码 | 描述 | 说明 |
|---|---|---|
| 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 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 默认类型 | 可使用随机值 | 必填 |
5️⃣ API
| 组件 | 说明 |
|---|---|
Indevolt | 读取 INDEVOLT 设备数据,控制设备。 |
Sys | 获取设备 CMS (Communication Management System) 信息。 |
6️⃣ Indevolt
Indevolt 允许你通过标准 HTTP 请求 获取设备实时数据 并 发送控制命令。
6.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 定义 API 注释 SN 0 String Device SN Indevolt.GetDataFirmware Version Information 1118 String PG2000Series EMS Indevolt.GetData1109 String PG2000Series BMS-MB Indevolt.GetData1119 String PG2000Series PCS Indevolt.GetData1120 String PG2000Series DCDC Indevolt.GetData1136 String SFA/PFA DCDC1 Indevolt.GetData1137 String SFA/PFA BMS1 Indevolt.GetData1138 String SFA/PFA DCDC2 Indevolt.GetData1139 String SFA/PFA BMS2 Indevolt.GetData1140 String SFA/PFA DCDC3 Indevolt.GetData1141 String SFA/PFA BMS3 Indevolt.GetData1142 String SFA/PFA DCDC4 Indevolt.GetData1143 String SFA/PFA BMS4 Indevolt.GetData1098 String SFA/PFA DCDC5 Indevolt.GetData1099 String SFA/PFA BMS5 Indevolt.GetDataSystem Operating Information 7101 Enum Working Mode 1: Self-consumed Prioritized
4: Real-time Control
5: Charge/Discharge ScheduleIndevolt.GetData142 Num kWh Rated Capacity Indevolt.GetData2618 Num Grid Charging 1000: Disable
1001: EnableIndevolt.GetData11009 Num W Inverter Input Limit Indevolt.GetData2101 Num W Total AC Input Power Indevolt.GetData2108 Num W Total AC Output Power Indevolt.GetData11010 Num W Feed-in Power Limit Indevolt.GetData11011 Num W Max AC Output Power Indevolt.GetData680 Num Bypass 0: Disable
1: EnableIndevolt.GetData11039 Num Bypass mode 0: Eps
1: M-InvIndevolt.GetDataAutomatically switch according to forward and reverse current 6105 Num % Backup SOC Indevolt.GetData7171 Num Light 0: Disable
1: EnableIndevolt.GetData8646 Num Day Battery Calibration: Cycle 0-60
0: OFFIndevolt.GetDataOperating time without full charge 8647 Num Time Battery Calibration: Start Time DEC-->HEX
H: hour
L: minuteIndevolt.GetDatae.g.: 256-->0100
01(HEX-H)-->01h
00(HEX-L)-->00min2802 Num W Battery Calibration: Charging power (AC) Indevolt.GetDataCluster Information 606 Enum Master-slave identification 1000: Master
1001: Slave
1002: NoneIndevolt.GetDataBypass Power 667 Float W Bypass power Indevolt.GetDataReal-time power flowing through the bypass path.
- Grid-tied: power may come from the microinverter or be supplied directly to loads
- Off-grid: power is directly supplied to loadsElectrical Energy Information 2107 Num kWh Total AC Input Energy Indevolt.GetDataTotal energy imported from the grid. This energy can be used to charge the battery or directly supply loads through bypass. 2104 Num kWh Total AC Output Energy Indevolt.GetDataComprehensive electrical energy, including (DC+AC+Bypass) 11035 Num Wh Daily bypass M-inv input energy Indevolt.GetDataDaily energy coming from the microinverter. This is only available in grid-tied mode, when the system is connected to a microinverter. 11034 Num Wh Total bypass M-inv input energy Indevolt.GetDataTotal energy coming from the microinverter. This is only available in grid-tied mode, when the system is connected to a microinverter. 11037 Num KWh Daily off-grid bypass output energy Indevolt.GetDataDaily electrical energy of off - grid bypass discharge 2105 Num KWh Total off-grid bypass output energy Indevolt.GetDataTotal electrical energy of off-grid bypass discharge 9285 Num Wh Daily bypass output energy Indevolt.GetDataDaily electrical energy of bypass discharge (grid-connected + off-grid) 9284 Num Wh Total bypass output energy Indevolt.GetDataTotal electrical energy of bypass discharge (grid-connected + off-grid) 1502 Num kWh Daily PV Generation Indevolt.GetData1505 Num Wh Cumulative Production Indevolt.GetData6004 Num kWh Battery Daily Charging Energy Indevolt.GetData6005 Num kWh Battery Daily Discharging Energy Indevolt.GetData6006 Num kWh Battery Total Charging Energy Indevolt.GetData6007 Num kWh Battery Total Discharging Energy Indevolt.GetDataElectricity Meter Status 7120 Enum Meter Connection Status 1000: Enable
1001: DisableIndevolt.GetData11016 Float W Meter Power Indevolt.GetDataGrid Information 2600 Num V Grid Voltage Indevolt.GetData2612 Num Hz Grid Frequency Indevolt.GetDataBattery Pack Operating Parameters 6001 Enum Battery Charge/Discharge State 1000: Static
1001: Charging
1002: DischargingIndevolt.GetData6000 Num W Battery Power Indevolt.GetData6002 Num % Battery SOC Total Indevolt.GetData9008 String Batt SN-MB Indevolt.GetData9000 Num % Batt SOC-MB Indevolt.GetData9004 Num V Batt V-MB Indevolt.GetData9013 Num A Batt I-MB Indevolt.GetData9012 Num ℃ Batt Temp-MB Indevolt.GetData9009 Num V Batt Cell1 V-MB Indevolt.GetData9011 Num V Batt Cell2 V-MB Indevolt.GetData9032 String Batt SN-Pack1 Indevolt.GetData9016 Num % Batt SOC-Pack1 Indevolt.GetData9020 Num V Batt V-Pack1 Indevolt.GetData19173 Num A Batt I-Pack1 Indevolt.GetData9030 Num ℃ Batt Temp-Pack1 Indevolt.GetData9021 Num V Batt Cell1 V-Pack1 Indevolt.GetData9023 Num V Batt Cell2 V-Pack1 Indevolt.GetData9051 String Batt SN-Pack2 Indevolt.GetData9035 Num % Batt SOC-Pack2 Indevolt.GetData9039 Num V Batt V-Pack2 Indevolt.GetData19174 Num A Batt I-Pack2 Indevolt.GetData9049 Num ℃ Batt Temp-Pack2 Indevolt.GetData9040 Num V Batt Cell1 V-Pack2 Indevolt.GetData9042 Num V Batt Cell2 V-Pack2 Indevolt.GetData9070 String Batt SN-Pack3 Indevolt.GetData9054 Num % Batt SOC-Pack3 Indevolt.GetData9058 Num V Batt V-Pack3 Indevolt.GetData19175 Num A Batt I-Pack3 Indevolt.GetData9068 Num ℃ Batt Temp-Pack3 Indevolt.GetData9059 Num V Batt Cell1 V-Pack3 Indevolt.GetData9061 Num V Batt Cell2 V-Pack3 Indevolt.GetData9165 Num Batt SN-Pack4 Indevolt.GetData9149 Num % Batt SOC-Pack4 Indevolt.GetData9153 Num V Batt V-Pack4 Indevolt.GetData19176 Num A Batt I-Pack4 Indevolt.GetData9163 Num ℃ Batt Temp-Pack4 Indevolt.GetData9154 Num V Batt Cell1 V-Pack4 Indevolt.GetData9156 Num V Batt Cell2 V-Pack4 Indevolt.GetData9218 String Batt SN-Pack5 Indevolt.GetData9202 Num % Batt SOC-Pack5 Indevolt.GetData9206 Num V Batt V-Pack5 Indevolt.GetData19177 Num A Batt I-Pack5 Indevolt.GetData9216 Num ℃ Batt Temp-Pack5 Indevolt.GetData9219 Num V Batt Cell1 V-Pack5 Indevolt.GetData9222 Num V Batt Cell2 V-Pack5 Indevolt.GetDataPV Operating Parameters 1501 Num W Total DC Output Power Indevolt.GetData1632 Num A DC Input Current 1 Indevolt.GetData1600 Num V DC Input Voltage 1 Indevolt.GetData1664 Num W DC Input Power 1 Indevolt.GetData1633 Num A DC Input Current 2 Indevolt.GetData1601 Num V DC Input Voltage 2 Indevolt.GetData1665 Num W DC Input Power 2 Indevolt.GetData1634 Num A DC Input Current 3 Indevolt.GetData1602 Num V DC Input Voltage 3 Indevolt.GetData1666 Num W DC Input Power 3 Indevolt.GetData1635 Num A DC Input Current 4 Indevolt.GetData1603 Num V DC Input Voltage 4 Indevolt.GetData1667 Num W DC Input Power 4 Indevolt.GetData
cJSON 点位 cJSON 值类型 单位 说明 Enum 定义 API 0 Float Device SN Indevolt.GetData7101 Enum Working mode 0: Outdoor Portable
1: Self-consumed Prioritized
5: Charge/Discharge ScheduleIndevolt.GetData1664 Float W DC Input Power1 Indevolt.GetData1665 Float W DC Input Power2 Indevolt.GetData2108 Float W Total AC Output Power Indevolt.GetData1502 Float kWh Daily Production Indevolt.GetData1505 Float 0.001kWh Cumulative Production Indevolt.GetData2101 Float W Total AC Input Power Indevolt.GetData2107 Float kWh Total AC Input Energy Indevolt.GetData1501 Float W Total DC Output Power Indevolt.GetData6000 Float W Battery Power Indevolt.GetData6001 Enum Battery Charge/Discharge State 1000: Static
1001: Charging
1002: DischargingIndevolt.GetData6002 Float % Battery SOC Indevolt.GetData6105 Float % Emergency power supply Indevolt.GetData6004 Float kWh Battery Daily Charging Energy Indevolt.GetData6005 Float kWh Battery Daily Discharging Energy Indevolt.GetData6006 Float kWh Battery Total Charging Energy Indevolt.GetData6007 Float kWh Battery Total Discharging Energy Indevolt.GetData7120 Enum Meter Connection Status 1000: Enable
1001: DisableIndevolt.GetData21028 Float W Meter Power Indevolt.GetData
6.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 值类型 单位 说明 值 API 47005 Enum Mode Setting 1: Self-consumed Prioritized
4: Real-time control
5: Charge/Discharge ScheduleIndevolt.SetData47015 UINT State Setting (Only available in real-time control) 0: Standby
1: Charging
2: DischargingIndevolt.SetData47016 INT W Power Setting (Only available in real-time control) MAX Charging: 50–2400
MAX Discharging: 50–2400Indevolt.SetData47017 UINT % SOC Setting (Only available in real-time control) 5-100 Indevolt.SetData1147 INT W Max AC Output Power Setting 50-2400 Indevolt.SetData1146 INT W Feed-in Power Limit Setting 50-2400 Indevolt.SetData1143 UINT Grid Charging Setting 0: Disable
1: EnableIndevolt.SetData1138 INT W Inverter Input Limit Setting 100-2400 Indevolt.SetData1 Enum Load Setting 1: Smart Plug
2: Meter
3: Key Load
4: CustomIndevolt.SetData7266 Enum Bypass Setting 0: Disable
1: EnableIndevolt.SetData1142 INT % Backup SOC Setting Indevolt.SetData7265 Enum Light Setting 0: Disable
1: EnableIndevolt.SetData
cJSON 点位 cJSON 值类型 单位 说明 值 API 47005 Enum Mode 1: Self-consumed Prioritized
2: Charge/discharge Schedule
4: Real-time ControlIndevolt.SetData47015 UINT State 0: Standby
1: Charging
2: DischargingIndevolt.SetData47016 INT W Power Charging: 0-1200
Discharging: 0-800Indevolt.SetData47017 UINT % SOC 0-100 Indevolt.SetData信息实时控制模式下,可一次性写入状态、功率、SOC值以控制设备充放电。
返回值
参数名 类型 说明 resultBool true: success;false: failure.
7️⃣ 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)
8️⃣ FAQ
Q: HTTP 访问返回 401 Unauthorized。
- 检查 Digest 认证的用户名和密码是否正确。
- 首次使用/恢复出厂设置的设备只支持访问指定接口
User.SetConfig。详情请见 Digest 认证,修改密码成功后用新密码认证即可正常使用其他接口。
Q: 发送广播指令后设备未返回 IP 地址。
OpenData API尚未开启,导致该功能不可用。详情请见开启 API。













