OpenData API
1️⃣ Introduction
OpenData is a lightweight communication framework designed for WiFi-based INDEVOLT IoT devices. Devices connect to local networks via WiFi, supporting both active data push and response to external queries.
Core Features
- Device data acquisition: Real-time pulling of device data.
- Device control: Dynamic adjustment of device parameters and configurations.
Use Cases
-
Receiving external HTTP query requests.
2️⃣ Preparations
Step 1: Install Tools
Step 2: Enable API
Device APIs are disabled by default and must be enabled before use. OpenData provides three modes:
- HTTP
- HTTP Digest
- HTTPS (Currently unsupported, coming soon)
You can configure the Local API in the INDEVOLT App:
- Device is online: It is recommended to use Cloud Configuration, which is simpler to operate
- Device is not online: You can use Local Bluetooth Configuration to connect directly to the device and complete the setup
- Cloud
- Local Bluetooth
Step 3: Check Firmware Version
If it is lower than the minimum version listed in the table below, please update the firmware.
Model Applicable firmware version BK1600 / BK1600 Ultra V1.3.0A_R006.072_M4848_00000039 SolidFlex 2000 / PowerFlex 2000 CMS:CMS:V1406.07.002E You can check the device firmware version in the INDEVOLT app.
- Cloud
- Local Bluetooth
Step 4: Obtain IP Address
Choose any one of the following methods:
🧩Method 1: Query via router’s management list;
🧩Method 2: Check in App device settings:
![]()
![]()
🧩Method 3: Obtain IP via UDP broadcast:
(1) Ensure the device's WiFi network and computer are on the same local area network.
(2) Open a network debugging tool.
(3) Select UDP protocol.
(4) Select Local Host Addr.
(5) Set Local Host Post to 10000.
(6) Click Open.![]()
(7) Configure Remote with broadcast address and port: 255.255.255.255:8099.
![]()
(8) Enter AT command in message box: AT+IGDEVICEIP.
(9) Click Send.![]()
(10) INDEVOLT devices on the same network will respond with their IP address and serial number (SN).
![]()
3️⃣ HTTP Usage
3.1 Request Structure
Request Methods
| Method | Description |
|---|---|
| GET | Requests the server to return specified resources. |
| POST | Requests the server to perform specified operations. |
Request Address
http://{IP_ADDRESS}:8080/rpc/{API}
where
{IP_ADDRESS}: Device IP address.{API}: HTTP API to be invoked.
Request Example
-
Retrieve device data:
POST http://192.168.31.213:8080/rpc/Indevolt.GetData?config={"t":[1664,1665]}
cURL command Example
-
Retrieve battery SOC:
curl -g -X POST -H "Content-Type: application/json" "http://192.168.1.75:8080/rpc/Indevolt.GetData?config={\"t\":[6002]}"
3.2 Rate Limit
To ensure system stability, all HTTP APIs are subject to the following limits:
| Type | Limit |
|---|---|
| Recommended request interval | ≥ 5 seconds |
| Minimum interval | 1 second |
3.3 Errors
| Status code | Description | Explanation |
|---|---|---|
| 400 | Bad Request | The server cannot understand the format of the request; the client should modify the request and try again. |
| 401 | Unauthorized | The request requires authentication; the client needs to provide valid credentials. |
| 403 | Forbidden | The server understands the request but refuses to execute it, usually due to permission issues. |
| 404 | Not Found | The server cannot find the requested resource, possibly because the resource does not exist or has been deleted. |
| 405 | Method Not Allowed | The requested method is incompatible with the resource, for example, performing a write operation on a read-only resource. |
| 408 | Request Timeout | The server times out while waiting for the request; the client can retry later. |
| 409 | Conflict | The request conflicts with the current state of the resource, for example, multiple users editing the same resource simultaneously. |
| 410 | Gone | The requested resource has been permanently deleted and there is no new address. |
| 500 | Internal Server Error | The server encounters an unknown error and cannot complete the request. |
| 501 | Not Implemented | The server does not support the requested method and cannot execute it. |
| 502 | Bad Gateway | The server, acting as a gateway or proxy, received an invalid response from the upstream server. |
| 503 | Service Unavailable | The server is currently unable to handle the request, possibly due to overload or maintenance. |
| 504 | Gateway Timeout | The server, acting as a gateway or proxy, did not receive a timely response from the upstream server. |
| 505 | HTTP Version Not Supported | The server does not support the HTTP version used in the request. |
4️⃣ HTTP Digest
Digest Authentication verifies user identity in network communications, preventing plaintext password transmission.
In HTTP + Digest mode:
- New or factory-reset devices must first use the
User.SetConfiginterface to modify the default password. - Other APIs become accessible only after successful password modification.
Required tools
- ASCII to hexadecimal converter
- Hexadecimal to base64 converter
- AES_GCM encryption tool
Password modification example
- Convert the new password, original password, and random number from string to hexadecimal.
| ASCII string | Hexadecimal | |
|---|---|---|
| New password | qwertyui | 71 77 65 72 74 79 75 69 |
| Original password | qazwsxed | 71 61 7a 77 73 78 65 64 00 00 00 00 00 00 00 00 (Supplement 0 to 16 bytes) |
| Random number | 123456 | 31 32 33 34 35 36 00 00 00 00 00 00 (Supplement 0 to 12 bytes) |
-
Use AES_GCM encryption tool to encrypt, fill in the corresponding information as follows.
-
Convert ciphertext and tag from hexadecimal to base64.
| Hexadecimal | Base64 | |
|---|---|---|
| Ciphertext | 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== |
-
Complete the digest authentication fields and send the
User.SetConfigrequest with the new password. The result returns true, indicating successful modification.POST
http://{IP_ADDRESS}:8080/rpc/User.SetConfig?config={"Password":"{PASSWORD}"}where
{IP_ADDRESS}:Device IP address.{PASSWORD}:Base64-encoded ciphertext encrypted with AES128-GCM.
| Parameter | Type | Description | Attribute |
|---|---|---|---|
| Username | String | Default opend | required |
| Password | String | Default device key. - Using the default password can only request the User.SetConfig interface to change the password. - Once the password is modified, using the modified password can request other interfaces. | required |
| Realm | String | - If calling the User.SetConfig interface to update the password, you need to pass the AES128-GCM tag value. - If calling other interfaces in Base64 format, you may use a random value. | required |
| Nonce | Default type of Digest | Random values can be used | required |
| Algorithm | Default type of Digest | MD5 | required |
| qop | Default type of Digest | auth | required |
| Nonce Count | Default type of Digest | Random values can be used | required |
| Client Nonce | Default type of Digest | Random values can be used | required |
5️⃣ API
| Component | Description |
|---|---|
Indevolt | Retrieve device data and control device. |
Sys | Obtain CMS (Communication Management System) information. |
6️⃣ Indevolt
Indevolt provides data interaction APIs for micro energy storage devices. It allows you to retrieve device operating data and configuration parameters, as well as send control commands to the device.
Indevolt.GetData: Retrieves device operating data or configuration parameters.Indevolt.SetData: Modifies device configuration parameters or executes control operations.
Supported Devices
- BK1600 / BK1600 Ultra
- SolidFlex 2000 / PowerFlex 2000
6.1 Indevolt.GetData
Retrieves device operating data or configuration parameters.
/rpc/Indevolt.GetDatacurl -g -X POST -H "Content-Type: application/json" "http://192.168.31.213:8080/rpc/Indevolt.GetData?config={\"t\":[1664,1665]}"
{
"1664": 100,
"1665": 251
}
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
config | Object | Yes | Data retrieval configuration. |
config Object
| Parameter | Type | Required | Description |
|---|---|---|---|
t | Array | Yes | List of cJSON Points to be read. |
Response
Returns device data in JSON format, where:
- Key: cJSON Point
- Value: Current value of the corresponding data point
cJSON Points
The following cJSON Points are used to retrieve device operating data or configuration parameters. The supported cJSON Points vary by device model. Refer to the corresponding device's data point list for details.
- SolidFlex 2000 / PowerFlex 2000
- BK1600 / BK1600 Ultra
| cJSON Point | cJSON Value Type | Unit | Point Description | Enum Definition | API | Annotation |
|---|---|---|---|---|---|---|
| SN | ||||||
| 0 | String | Device SN | Indevolt.GetData | |||
| Firmware Version Information | ||||||
| 1118 | String | PG2000Series EMS | Indevolt.GetData | |||
| 1109 | String | PG2000Series BMS-MB | Indevolt.GetData | |||
| 1119 | String | PG2000Series PCS | Indevolt.GetData | |||
| 1120 | String | PG2000Series DCDC | Indevolt.GetData | |||
| 1136 | String | SFA/PFA DCDC1 | Indevolt.GetData | |||
| 1137 | String | SFA/PFA BMS1 | Indevolt.GetData | |||
| 1138 | String | SFA/PFA DCDC2 | Indevolt.GetData | |||
| 1139 | String | SFA/PFA BMS2 | Indevolt.GetData | |||
| 1140 | String | SFA/PFA DCDC3 | Indevolt.GetData | |||
| 1141 | String | SFA/PFA BMS3 | Indevolt.GetData | |||
| 1142 | String | SFA/PFA DCDC4 | Indevolt.GetData | |||
| 1143 | String | SFA/PFA BMS4 | Indevolt.GetData | |||
| 1098 | String | SFA/PFA DCDC5 | Indevolt.GetData | |||
| 1099 | String | SFA/PFA BMS5 | Indevolt.GetData | |||
| System Operating Information | ||||||
| 7101 | Enum | Working Mode | 1: Self-consumed Prioritized 4: Real-time Control 5: Charge/Discharge Schedule | Indevolt.GetData | ||
| 142 | Num | kWh | Rated Capacity | Indevolt.GetData | ||
| 2618 | Num | Grid Charging | 1000: Disable 1001: Enable | Indevolt.GetData | ||
| 11009 | Num | W | Inverter Input Limit | Indevolt.GetData | ||
| 2101 | Num | W | Total AC Input Power | Indevolt.GetData | ||
| 2108 | Num | W | Total AC Output Power | Indevolt.GetData | ||
| 11010 | Num | W | Feed-in Power Limit | Indevolt.GetData | ||
| 11011 | Num | W | Max AC Output Power | Indevolt.GetData | ||
| 680 | Num | Bypass | 0: Disable 1: Enable | Indevolt.GetData | ||
| 11039 | Num | Bypass mode | 0: Eps 1: M-Inv | Indevolt.GetData | Automatically switch according to forward and reverse current | |
| 6105 | Num | % | Backup SOC | Indevolt.GetData | ||
| 7171 | Num | Light | 0: Disable 1: Enable | Indevolt.GetData | ||
| 8646 | Num | Day | Battery Calibration: Cycle | 0-60 0: OFF | Indevolt.GetData | Operating time without full charge |
| 8647 | Num | Time | Battery Calibration: Start Time | DEC-->HEX H: hour L: minute | Indevolt.GetData | e.g.: 256-->0100 01(HEX-H)-->01h 00(HEX-L)-->00min |
| 2802 | Num | W | Battery Calibration: Charging power (AC) | Indevolt.GetData | ||
| Cluster Information | ||||||
| 606 | Enum | Master-slave identification | 1000: Master 1001: Slave 1002: None | Indevolt.GetData | ||
| Bypass Power | ||||||
| 667 | Float | W | Bypass power | Indevolt.GetData | Real-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 loads | |
| Electrical Energy Information | ||||||
| 2107 | Num | kWh | Total AC Input Energy | Indevolt.GetData | Total 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.GetData | Comprehensive electrical energy, including (DC+AC+Bypass) | |
| 11035 | Num | Wh | Daily bypass M-inv input energy | Indevolt.GetData | Daily 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.GetData | Total 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.GetData | Daily electrical energy of off - grid bypass discharge | |
| 2105 | Num | KWh | Total off-grid bypass output energy | Indevolt.GetData | Total electrical energy of off-grid bypass discharge | |
| 9285 | Num | Wh | Daily bypass output energy | Indevolt.GetData | Daily electrical energy of bypass discharge (grid-connected + off-grid) | |
| 9284 | Num | Wh | Total bypass output energy | Indevolt.GetData | Total electrical energy of bypass discharge (grid-connected + off-grid) | |
| 1502 | Num | kWh | Daily PV Generation | Indevolt.GetData | ||
| 1505 | Num | Wh | Cumulative Production | Indevolt.GetData | ||
| 6004 | Num | kWh | Battery Daily Charging Energy | Indevolt.GetData | ||
| 6005 | Num | kWh | Battery Daily Discharging Energy | Indevolt.GetData | ||
| 6006 | Num | kWh | Battery Total Charging Energy | Indevolt.GetData | ||
| 6007 | Num | kWh | Battery Total Discharging Energy | Indevolt.GetData | ||
| Electricity Meter Status | ||||||
| 7120 | Enum | Meter Connection Status | 1000: Enable 1001: Disable | Indevolt.GetData | ||
| 11016 | Float | W | Meter Power | Indevolt.GetData | ||
| Grid Information | ||||||
| 2600 | Num | V | Grid Voltage | Indevolt.GetData | ||
| 2612 | Num | Hz | Grid Frequency | Indevolt.GetData | ||
| Battery Pack Operating Parameters | ||||||
| 6001 | Enum | Battery Charge/Discharge State | 1000: Static 1001: Charging 1002: Discharging | Indevolt.GetData | ||
| 6000 | Num | W | Battery Power | Indevolt.GetData | ||
| 6002 | Num | % | Battery SOC Total | Indevolt.GetData | ||
| 9008 | String | Batt SN-MB | Indevolt.GetData | |||
| 9000 | Num | % | Batt SOC-MB | Indevolt.GetData | ||
| 9004 | Num | V | Batt V-MB | Indevolt.GetData | ||
| 9013 | Num | A | Batt I-MB | Indevolt.GetData | ||
| 9012 | Num | ℃ | Batt Temp-MB | Indevolt.GetData | ||
| 9009 | Num | V | Batt Cell1 V-MB | Indevolt.GetData | ||
| 9011 | Num | V | Batt Cell2 V-MB | Indevolt.GetData | ||
| 9032 | String | Batt SN-Pack1 | Indevolt.GetData | |||
| 9016 | Num | % | Batt SOC-Pack1 | Indevolt.GetData | ||
| 9020 | Num | V | Batt V-Pack1 | Indevolt.GetData | ||
| 19173 | Num | A | Batt I-Pack1 | Indevolt.GetData | ||
| 9030 | Num | ℃ | Batt Temp-Pack1 | Indevolt.GetData | ||
| 9021 | Num | V | Batt Cell1 V-Pack1 | Indevolt.GetData | ||
| 9023 | Num | V | Batt Cell2 V-Pack1 | Indevolt.GetData | ||
| 9051 | String | Batt SN-Pack2 | Indevolt.GetData | |||
| 9035 | Num | % | Batt SOC-Pack2 | Indevolt.GetData | ||
| 9039 | Num | V | Batt V-Pack2 | Indevolt.GetData | ||
| 19174 | Num | A | Batt I-Pack2 | Indevolt.GetData | ||
| 9049 | Num | ℃ | Batt Temp-Pack2 | Indevolt.GetData | ||
| 9040 | Num | V | Batt Cell1 V-Pack2 | Indevolt.GetData | ||
| 9042 | Num | V | Batt Cell2 V-Pack2 | Indevolt.GetData | ||
| 9070 | String | Batt SN-Pack3 | Indevolt.GetData | |||
| 9054 | Num | % | Batt SOC-Pack3 | Indevolt.GetData | ||
| 9058 | Num | V | Batt V-Pack3 | Indevolt.GetData | ||
| 19175 | Num | A | Batt I-Pack3 | Indevolt.GetData | ||
| 9068 | Num | ℃ | Batt Temp-Pack3 | Indevolt.GetData | ||
| 9059 | Num | V | Batt Cell1 V-Pack3 | Indevolt.GetData | ||
| 9061 | Num | V | Batt Cell2 V-Pack3 | Indevolt.GetData | ||
| 9165 | Num | Batt SN-Pack4 | Indevolt.GetData | |||
| 9149 | Num | % | Batt SOC-Pack4 | Indevolt.GetData | ||
| 9153 | Num | V | Batt V-Pack4 | Indevolt.GetData | ||
| 19176 | Num | A | Batt I-Pack4 | Indevolt.GetData | ||
| 9163 | Num | ℃ | Batt Temp-Pack4 | Indevolt.GetData | ||
| 9154 | Num | V | Batt Cell1 V-Pack4 | Indevolt.GetData | ||
| 9156 | Num | V | Batt Cell2 V-Pack4 | Indevolt.GetData | ||
| 9218 | String | Batt SN-Pack5 | Indevolt.GetData | |||
| 9202 | Num | % | Batt SOC-Pack5 | Indevolt.GetData | ||
| 9206 | Num | V | Batt V-Pack5 | Indevolt.GetData | ||
| 19177 | Num | A | Batt I-Pack5 | Indevolt.GetData | ||
| 9216 | Num | ℃ | Batt Temp-Pack5 | Indevolt.GetData | ||
| 9219 | Num | V | Batt Cell1 V-Pack5 | Indevolt.GetData | ||
| 9222 | Num | V | Batt Cell2 V-Pack5 | Indevolt.GetData | ||
| PV Operating Parameters | ||||||
| 1501 | Num | W | Total DC Output Power | Indevolt.GetData | ||
| 1632 | Num | A | DC Input Current 1 | Indevolt.GetData | ||
| 1600 | Num | V | DC Input Voltage 1 | Indevolt.GetData | ||
| 1664 | Num | W | DC Input Power 1 | Indevolt.GetData | ||
| 1633 | Num | A | DC Input Current 2 | Indevolt.GetData | ||
| 1601 | Num | V | DC Input Voltage 2 | Indevolt.GetData | ||
| 1665 | Num | W | DC Input Power 2 | Indevolt.GetData | ||
| 1634 | Num | A | DC Input Current 3 | Indevolt.GetData | ||
| 1602 | Num | V | DC Input Voltage 3 | Indevolt.GetData | ||
| 1666 | Num | W | DC Input Power 3 | Indevolt.GetData | ||
| 1635 | Num | A | DC Input Current 4 | Indevolt.GetData | ||
| 1603 | Num | V | DC Input Voltage 4 | Indevolt.GetData | ||
| 1667 | Num | W | DC Input Power 4 | Indevolt.GetData | ||
| cJSON Point | cJSON Value Type | Unit | Point Description | Enum Definition | API | Annotation |
|---|---|---|---|---|---|---|
| SN | ||||||
| 0 | String | Device SN | Indevolt.GetData | |||
| Firmware Version Information | ||||||
| 1118 | String | BK1600Series EMS | Indevolt.GetData | |||
| 1107 | String | BK1600Series BMS | Indevolt.GetData | |||
| 1119 | String | BK1600Series PCS | H_HEX-->DEC + L_HEX-->DEC | Indevolt.GetData | ||
| 311 | String | BK1600Series MPPT | Indevolt.GetData | |||
| System Operating Information | ||||||
| 142 | Num | KWh | Rated capacity | Indevolt.GetData | ||
| 2618 | Num | Grid Charging | 1000: Disable 1001: Enable | Indevolt.GetData | ||
| 2617 | Num | W | Feed-in Power Limit | Indevolt.GetData | ||
| 4 | Num | W | Max AC Output Power | Indevolt.GetData | ||
| 2619 | Num | W | Max AC Input Power | Indevolt.GetData | ||
| 2101 | Num | W | Total AC Input Power | Indevolt.GetData | ||
| 2107 | Num | KWh | Total AC Input Energy | Indevolt.GetData | ||
| 2108 | Num | W | Total AC Output Power | Indevolt.GetData | ||
| 680 | Enum | Bypass | 0: Disable 1: Enable | Indevolt.GetData | ||
| 7170 | Enum | Bypass mode | 0: Eps 1: M-Inv | Indevolt.GetData | Automatically switch according to forward and reverse current. | |
| 7101 | Enum | Working mode | 0: Outdoor Portable 1: Self-consumed Prioritized 4: Real-Time Control 5: Charge/Discharge Schedule | Indevolt.GetData | ||
| 1502 | Num | KWh | Daily Production | Indevolt.GetData | ||
| 1505 | Num | 0.001kwh | Cumulative Production | Indevolt.GetData | ||
| 6105 | Num | % | Backup SOC | Indevolt.GetData | ||
| 6004 | Num | KWh | Battery Daily Charging Energy | Indevolt.GetData | ||
| 6005 | Num | KWh | Battery Daily Discharging Energy | Indevolt.GetData | ||
| 6006 | Num | KWh | Battery Total Charging Energy | Indevolt.GetData | ||
| 6007 | Num | KWh | Battery Total Discharging Energy | Indevolt.GetData | ||
| 7120 | Enum | Meter Connection Status | 1000:ON 1001:OFF | Indevolt.GetData | ||
| 21028 | Num | W | Meter Power | Indevolt.GetData | ||
| Bypass power (Not applicable to BK1600) | ||||||
| 667 | Num | W | Bypass power | Indevolt.GetData | ||
| Battery Pack Operating Parameters | ||||||
| 6001 | Enum | Battery Charge/Discharge State | 1000: Static 1001: Charging 1002: Discharging | Indevolt.GetData | ||
| 6000 | Num | W | Battery Power | Indevolt.GetData | ||
| 6002 | Num | % | Battery SOC Total | Indevolt.GetData | ||
| 7620 | Num | ℃ | Batt Temp | Indevolt.GetData | ||
| 10112 | Num | V | CELL1 Voltage | Indevolt.GetData | ||
| 10113 | Num | V | CELL2 Voltage | Indevolt.GetData | ||
| 10114 | Num | V | CELL3 Voltage | Indevolt.GetData | ||
| 10115 | Num | V | CELL4 Voltage | Indevolt.GetData | ||
| 10116 | Num | V | CELL5 Voltage | Indevolt.GetData | ||
| 10117 | Num | V | CELL6 Voltage | Indevolt.GetData | ||
| 10118 | Num | V | CELL7 Voltage | Indevolt.GetData | ||
| 10119 | Num | V | CELL8 Voltage | Indevolt.GetData | ||
| 10120 | Num | V | CELL9 Voltage | Indevolt.GetData | ||
| 10121 | Num | V | CELL10 Voltage | Indevolt.GetData | ||
| 10122 | Num | V | CELL11 Voltage | Indevolt.GetData | ||
| PV Operating Parameters | ||||||
| 1501 | Num | W | Total DC Output Power | Indevolt.GetData | ||
| 1632 | Num | A | DC Input Current 1 | Indevolt.GetData | ||
| 1600 | Num | V | DC Input Voltage 1 | Indevolt.GetData | ||
| 1664 | Num | W | DC Input Power 1 | Indevolt.GetData | ||
| 1633 | Num | A | DC Input Current 2 | Indevolt.GetData | ||
| 1601 | Num | V | DC Input Voltage 2 | Indevolt.GetData | ||
| 1665 | Num | W | DC Input Power 2 | Indevolt.GetData | ||
6.2 Indevolt.SetData
Modifies device configuration parameters or sends control commands to the device.
/rpc/Indevolt.SetDatacurl -g -X POST -H "Content-Type: application/json" "http://192.168.31.213:8080/rpc/Indevolt.SetData?config={\"f\":16,\"t\":47005,\"v\":[4]}"
{
"result": true
}
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
config | Object | Yes | Data write configuration. |
config Object
| Parameter | Type | Required | Description |
|---|---|---|---|
f | Number | Yes | Function code. The value is fixed at 16. |
t | Number | Yes | The cJSON Point to be written. |
v | Array | Yes | Values to be written. Refer to the Value definition for the corresponding point. |
Response
| Parameter | Type | Description |
|---|---|---|
result | Boolean | true: success; false: failure. |
Examples
-
Set Real-time Control mode
curl -g -X POST -H "Content-Type: application/json" "http://192.168.31.213:8080/rpc/Indevolt.SetData?config={\"f\":16,\"t\":47005,\"v\":[4]}" -
Set the discharge status, power, and SOC in Real-time Control mode
curl -g -X POST -H "Content-Type: application/json" "http://192.168.31.213:8080/rpc/Indevolt.SetData?config={\"f\":16,\"t\":47015,\"v\":[2,700,5]}"
cJSON Points
The supported cJSON Points (t) vary by device model. The meaning and format of the corresponding v values also differ between points. Refer to the data point list for the corresponding device model for details.
- SolidFlex 2000 / PowerFlex 2000
- BK1600 / BK1600 Ultra
| cJSON Point | cJSON Value Type | Unit | Point Description | Value | API |
|---|---|---|---|---|---|
| 47005 | Enum | Mode Setting | 1: Self-consumed Prioritized 4: Real-time control 5: Charge/Discharge Schedule | Indevolt.SetData | |
| 47015 | UINT | State Setting (Only available in real-time control) | 0: Standby 1: Charging 2: Discharging | Indevolt.SetData | |
| 47016 | INT | W | Power Setting (Only available in real-time control) | MAX Charging: 50–2400 MAX Discharging: 50–2400 | Indevolt.SetData |
| 47017 | UINT | % | SOC Setting (Only available in real-time control) | 5-100 | Indevolt.SetData |
| 1147 | INT | W | Max AC Output Power Setting | 50-2400 | Indevolt.SetData |
| 1146 | INT | W | Feed-in Power Limit Setting | 50-2400 | Indevolt.SetData |
| 1143 | UINT | Grid Charging Setting | 0: Disable 1: Enable | Indevolt.SetData | |
| 1138 | INT | W | Inverter Input Limit Setting | 100-2400 | Indevolt.SetData |
| 1 | Enum | Load Setting | 1: Smart Plug 2: Meter 3: Key Load 4: Custom | Indevolt.SetData | |
| 7266 | Enum | Bypass Setting | 0: Disable 1: Enable | Indevolt.SetData | |
| 1142 | INT | % | Backup SOC Setting | Indevolt.SetData | |
| 7265 | Enum | Light Setting | 0: Disable 1: Enable | Indevolt.SetData |
| cJSON Point | cJSON Value Type | Unit | Point Description | Value | API |
|---|---|---|---|---|---|
| 47005 | Enum | Mode Setting | 0: Outdoor Portable 1: Self-consumed Prioritized 4: Real-Time Control 5: Charge/Discharge Schedule | Indevolt.SetData | |
| 47015 | Enum | State Setting (Only available in real-time control) | 0: Standby 1: Charging 2: Discharging | Indevolt.SetData | |
| 47016 | Num | W | Power Setting (Only available in real-time control) | 50-1200 | Indevolt.SetData |
| 47017 | Num | % | SOC Setting (Only available in real-time control) | 5-100 | Indevolt.SetData |
In real-time control mode, device charging/discharging can be controlled by simultaneously writing state, power, and SOC values.
7️⃣ Sys
Sys is used to retrieve basic device information and system status.
Supported Devices
- BK1600 / BK1600 Ultra
- SolidFlex 2000 / PowerFlex 2000
Sys.GetConfig
Retrieves the current device configuration, including device model, serial number, firmware version, etc.
/rpc/Sys.GetConfigcurl "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
}
}
Response
| Parameter | Type | Description |
|---|---|---|
device | Object | Device information |
device Object
| Parameter | Type | Description |
|---|---|---|
hostname | String | Device name |
timezone | Number | Timezone |
type | String | Device model |
sn | String | Device serial number |
mac | String | Device MAC address |
fw | String | Device firmware version |
f_ver | String | CMS version |
p_ver | String | P-file version |
time | String | Current system time |
time_stamp | Number | Current timestamp (seconds) |
run_time | Number | Device runtime (seconds) |
8️⃣ WiFi
WiFi is used to retrieve the current Wi-Fi connection status of the device.
Supported Devices
- BK1600 / BK1600 Ultra
WiFi.GetStatus
Retrieves the device’s current Wi-Fi connection information, including IP address, SSID, and signal strength.
/rpc/WiFi.GetStatuscurl "http://192.168.0.7:8080/rpc/WiFi.GetStatus"
{
"src": "",
"params": {
"sta_ip": "192.168.0.7",
"ssid": "IGEN_GUEST_2.4G",
"rssi": 100
}
}
Response
| Parameter | Type | Description |
|---|---|---|
src | String | Device serial number (SN) |
params | Object | Wi-Fi status information |
params Object
| Parameter | Type | Description |
|---|---|---|
sta_ip | String | Device IP address |
ssid | String | Connected Wi-Fi SSID |
rssi | Number | Wi-Fi signal strength (0–100). Higher value indicates better signal |
9️⃣ FAQ
Q: HTTP request returns 401 Unauthorized.
- Verify the username and password for Digest Authentication.
- New/factory-reset devices only support access to the designated interface:
User.SetConfig. Refer to Digest Authentication section - other APIs become accessible after successful password modification and authentication with the new password.
Q: Device fails to return IP address after broadcast command.
The OpenData API is not enabled, making this function inactive. Refer to Enable API section.













