• Public Information
    • Change Log
    • Request domain
    • Request header requirements
    • OAuth Guide
    • Access frequency limit
    • Common error solutions
    • Code example
    • Variable table
    • Kafka Integration Documentation
  • Power Station
    • Create power station
    • Delete power station
    • Edit power station
    • Get power station detail
    • Get power station list
  • VPP
    • authorization code mode offboard by sn
    • client mode offboard
    • client mode onboard
  • Inverter-V1
    • Get device detail
    • Get device real-time data
  • Inverter
    • Get device list
    • Get device detail (Deprecated)
    • Get available variables
    • Get error code information
    • Get device real-time data (Deprecated)
    • Get device history data
    • Get device production report
    • Get device power generation
    • Get the minimum soc settings for the battery of device
    • Set the minmum soc for the battery of the device
    • Get the setting of battery charging time
    • Set the battery charging time
    • Get the device settings item
    • Set the device settings item
    • Get the device time
    • Set the device time
    • Get the device peakshaving settings
    • Set the device peakshaving settings
    • Get the Meter Reader
    • Set the Meter Reader
    • Get battery heating Parameter
    • Set battery heating Parameter
    • Get display sleep Paeameter
    • Set display sleep Paeameter
    • Get device boarding status
    • Set device boarding status
    • Get Device Fault History
  • Scheduler-V3
    • Batch set the time segment information_copy
    • Get the time segment information
    • Set the time segment information
  • Scheduler-V2
    • Get the time segment information
    • Set the time segment information
  • Scheduler-V1
    • Get the main switch status
    • Set the main switch status
    • Get the time segment information
    • Set the time segment information
  • Scheduler
    • Get the main switch status (Deprecated)
    • Get the time segment information (Deprecated)
    • Set the main switch status (Deprecated)
    • Set the time segment information (Deprecated)
  • Data Logger
    • Get Data Logger list
    • Get Data Logger Details
    • Get Data Logger Signal
    • Modbus Commands
    • Get Data Logger Wifi Info
    • Get Data Logger Lan Info
  • EMS
    • Get Ems list
    • Get Ems real-time data
    • Get Ems history data
    • Get Ems System Setting
    • Set Ems System Setting
    • Get Ems Rate Setting
    • Set Ems Rate Setting
    • Set Ems Ac Output Control Setting
    • Get Ems Ac Output Control Setting
    • Set Ems Power Limit Control Setting
    • Get Ems Power Limit Control Setting
    • Set Ems More Setting
    • Get Ems More Setting
    • Set Ems Gen Setting
    • Get Ems Gen Setting
  • Meter
    • Get meter list
    • Get the device settings item
    • Set the device settings item
  • Heat
    • Heat Pump Register
    • Heat Pump Register List
    • Heat Pump Register Status Change
    • dhwControlsGet
    • dhwControlsSet
    • genericControlsGet
    • genericControlsSet
    • heatingCircuitsControlsGet
    • heatingCircuitsControlsSet
    • heatingControlsGet
    • heatingControlsSet
  • GMAX
    • Get gmax list
    • Get history data
    • Get gmax real data
    • Get peak and valley arbitrage
    • Set peak and valley arbitrage
  • Platform interface
    • Get the number of public interface accesses
    • Installer device count

Open API

Public information

This article is the open api document of Fox ESS Cloud Platform. Before using this api, please go to the api management of the cloud platform personal center to generate your api-key.
Please make sure to keep your API key safe to avoid any unauthorized access. If it gets lost or leaked, you can go to the personal center to get a new one, and the old key will no longer be valid.
The open API is designed in RESTful style, and the returned data are all in json format, and the encoding format is utf-8.
If you use script calling, be sure to modify your User-Agent.

Change Log:

Updated date Version Update content
2023/11/30 V1.0.1 The real-time data and historical data interfaces add the sn parameter of the device that can be specified.
2023/12/18 V1.0.2 Added an interface for obtaining variable names. The real-time data and historical data interfaces cancel the limit on the number of variables, and can obtain all variable data by default without passing variables.
2024/01/12 V1.0.3 Added inverter power generation, inverter reports, inverter battery SOC settings, inverter battery strong charging time settings, inverter list, inverter details, collector list, power station list, power station details interface
2024/06/13 V1.0.4 Added battery throughput variables, which can be queried through the real-time data interface
2024/08/19 V1.0.5 Real-time data interface adds V1 version, supports batch query
2024/09/13 V1.0.6 The device parameter setting interface is added, which can now support ExoprtLimit setting
2024/10/18 V1.0.7 Device parameter settings now support H1 series
2024/11/27 V1.0.8 Added equipment time modification function and safety regulation modification function
2024/12/28 V1.0.9 Added the SOH variable, and add the PV power generation data in the report
2025/02/13 V1.0.10 Scheduler interface adds V1 version, supports the maximum soc value set and get
2025/02/18 V1.0.11 Add battery information to device details
2025/03/20 V1.1.0 Add Oauth 2.0 Support
2025/04/10 V1.1.1 Support for some new models
2025/05/12 V1.1.2 Add meter support, add PeakShaving settings
2025/06/03 V1.1.3 Add battery model and capacity to the device details interface, and add work mode parameters to the device settings interface
2025/07/24 V1.1.4 Add micro-reverse and micro-storage related function interfaces
2025/08/13 V1.1.5 Add interface for obtaining communication device signal strength
2025/10/21 V1.1.6 Added battery heating functionality, Modbus transparent transmission capability, and V2 scheduler functionality
2025/10/31 V1.1.7 Added MicroStorage LCD sleep mode functionality, MicroStorage ecomode functionality, and added EMS support
2025/11/28 V1.1.8 Enhance gmax-related functionality and supplement/refine certain interface documentation
2026/01/09 V1.1.9 Added additional device configuration options, including AI Link/EMS-related settings, and added collector version information
2026/02/06 V1.1.10 Add real-time query interface and historical query interface for EMS devices. Add Scheduler V3 version interface.
2026/03/09 V1.1.11 Add boarding status and Data Logger Details endpoint
2026/03/20 v1.1.12 Device param setting APIs echo input on success; gmax peak time params now constrained; third-party PV indicator added to the device detail endpoint.
2026/04/02 v1.1.13 Add device fault history endpoint; Add variable "PV energy total" to real-time data endpoint; Scheduler interface now supports H3Plus.
2026/04/03 v1.1.14 Add Kafka integration documentation
2026/04/29 v1.1.15 Add device boarding status retrieve endpoint and support new data variables.
2026/05/07 v1.1.16 Update OAuth guide
2026/05/22 v1.1.17 Add battery information to plant details endpoint (US only)
2026/05/29 v1.1.18 Add heat pump endpoints and update variable table.

Request domain:https://www.foxesscloud.com/

Request header requirements:

Params Required or not Example Parameter Description
token No The api-key generated by the API management function in the platform personal center
timestamp Yes Current timestamp milliseconds
signature Yes Encrypt the string url+"\r\n"+token+"\r\n"+timestamp with md5
lang Yes en langurage
Authorization No Bearer *********** Oauth2 authorized accesstoken,prefix: Bearer

We support two types of authentication, private tokens and Oauth tokens. If you choose private token, please use token in header, if you choose Oauth token, please use Authorization in header, you can't use both at the same time.

OAuth Guide

This part will walk you through the complete process, from creating your application client to managing device binding. We currently support two authorization grant types:

  • Authorization Code Grant: For apps accessing resources on behalf of a user (e.g., web/mobile apps).
  • Client Credentials Grant: For server-to-server communication (e.g., backend services).

Once you have a valid access_token, you can use our APIs to onboard, check, update, and offboard devices.

Authorization Grant Type Availability

We currently offer different grant types depending on your use case:

  • For individual users and non-VPP applications: We currently support only the Authorization Code Grant. This is the standard flow for third-party applications that need to access user-owned device data.

  • For Virtual Power Plant (VPP) operators: To use either the Authorization Code Grant or Client Credentials Grant, you must first create your client application in our v1 Platform and contact us with your clientId. VPP-specific features will be enabled for your client in our system. Once completed, you can proceed with the OAuth flows described below.

Step 0: Create Your Client Application (Prerequisite)

Before using any OAuth flow, you must first register your application in our platform.

How to Create a Client

  1. Log in to our v1 Platform.
  2. Click your avatar in the top-right corner.
  3. Select "User Profile".
  4. In the left navigation menu, go to "API Management" → "Authorization Token".
  5. Click "Create Client Side".
  6. Fill in the form as shown below:
    • Client Name: A descriptive name for your application (e.g., MyVPPApp).
    • Redirect Address: The exact callback URL where users will be redirected after authorization. (This becomes your redirect_uri)
    • Scopes: Select the permissions your app needs:
      • data_access: Grants read access to device data.
      • device_control: Grants control permissions for devices.
      • (These selections become your scope parameter)
    • Click "Save".

Critical Notes

  • After creation, the system will display your client_id and client_secret.
  • The client_secret is shown only once. Please copy and store it securely.
  • If you lose the client_secret, we recommend you delete the old client and create a new one.

Mapping to API Parameters:

  • client_id in the API = The Client ID generated on this page.
  • client_secret in the API = The Client Secret shown after creation.
  • redirect_uri in the API = The Redirect Address you entered.
  • scope in the API = The scopes you selected (e.g., data_access,device_control).

1. Authorization Code Grant (On Behalf of a User)

In this flow, the end-user is the device owner, and your application must first obtain their explicit consent.

Step 1: Redirect User for Authorization

Redirect the user to our authorization page. The user will log in and grant consent.

URL Example:

https://{domain}/h5/auth/foxessIndex?
    response_type=code&
    client_id={your_client_id}&
    redirect_uri={your_redirect_uri}&
    scope={your_scopes}

Step 2: Receive the Authorization Code

After the user grants consent, the browser is redirected back to your redirect_uri with a temporary code appended to the URL.

Callback Example:

{your_redirect_uri}?code={authorization_code}&deviceSn={device_serial_number}

Step 3: Exchange Code for Access Token

Your application server must immediately exchange this code for a long-lived access_token and a refresh_token.

Request Example:

POST https://{domain}/oauth2/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&
client_id={your_client_id}&
client_secret={your_client_secret}&
code=ABC123&
redirect_uri={your_redirect_uri}

Note: The access_token is valid for 24 hours. Use the refresh_token to obtain a new one before it expires.


Step 4: Device Onboarding (Automatic)

During the Step 1 authorization flow, our system will automatically onboard all devices under the user's account (or the user-selected devices) to your client_id upon their consent.


Step 5: Check Device Boarding Status (Optional)

Using the access_token from Step 3, you can query the current boarding status of a specific device at any time.

Request Example:

GET https://{api_domain}/op/v0/device/boarding/status?sn=YOUR_DEVICE_SN
Authorization: Bearer YOUR_ACCESS_TOKEN
Signature: Encrypt the string url+"\r\n"+ YOUR_ACCESS_TOKEN +"\r\n"+timestamp with md5

Step 6: Update Device Boarding Status (Optional)

You can update a device's boarding status based on your business logic (e.g., changing from 0 to 1).

Request Example:

POST https://{api_domain}/op/v0/device/boarding/status/set
Authorization: Bearer YOUR_ACCESS_TOKEN
Signature: Encrypt the string url+"\r\n"+ YOUR_ACCESS_TOKEN +"\r\n"+timestamp with md5
Content-Type: application/json
{
    "sn": "YOUR_DEVICE_SN",
    "status": 1
}

Step 7: Offboard Devices (Optional)

When a user wishes to revoke authorization, you can offboard devices using the following methods.

  • Revoke Single Token:
    GET https://{domain}/oauth2/revok?client_id={your_client_id}&client_secret={your_client_secret}&access_token={your_access_token}
    
  • Revoke All Tokens:
    GET https://{domain}/oauth2/revokeAllTokens?client_id={your_client_id}&client_secret={your_client_secret}&access_token={your_access_token}
    

Step 8: Refresh Access Token

When the access_token expires (after 24 hours) or is about to expire, use the refresh_token to get a new one.

Request Example:

POST https://{domain}/oauth2/refresh
Content-Type: application/x-www-form-urlencoded

grant_type=refresh_token&
client_id={your_client_id}&
client_secret={your_client_secret}&
refresh_token={your_refresh_token}


2. Client Credentials Grant (For Your Own Service)

In this flow, your application itself is the owner or manager of the devices, and no user interaction is required.

Step 1: Obtain an Access Token Directly

Your application server uses its client_id and client_secret to request an access_token directly.

Request Example:

POST https://{domain}/oauth2/client_token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&
client_id={your_client_id}&
client_secret={your_client_secret}

Note: This grant type does not provide a refresh_token. To get a new token after expiration, simply repeat this request.


Step 2: Onboard Devices Manually

Unlike the Authorization Code flow, devices are NOT onboarded automatically in this mode. You must explicitly call an API to bind a device.

Request Example:

POST https://{api_domain}/op/v0/vpp/oauth2/client/onboard
Authorization: Bearer YOUR_ACCESS_TOKEN
Signature: Encrypt the string url+"\r\n"+ YOUR_ACCESS_TOKEN +"\r\n"+timestamp with md5
Content-Type: application/json
{
    "deviceSN": "YOUR_DEVICE_SN"
}

Step 3: Check and Update Device Boarding Status (Optional)

The logic is identical to the Authorization Code flow.

Check Status:

GET https://{api_domain}/op/v0/device/boarding/status?sn=YOUR_DEVICE_SERIAL_NUMBER
Authorization: Bearer YOUR_ACCESS_TOKEN
Signature: Encrypt the string url+"\r\n"+ YOUR_ACCESS_TOKEN +"\r\n"+timestamp with md5

Update Status:

POST https://{api_domain}/op/v0/device/boarding/status/set
Authorization: Bearer YOUR_ACCESS_TOKEN
Signature: Encrypt the string url+"\r\n"+ YOUR_ACCESS_TOKEN +"\r\n"+timestamp with md5
Content-Type: application/json
{
    "sn": "YOUR_DEVICE_SN",
    "status": 1
}

Step 4: Offboard Devices (Optional)

Request Example:

POST https://{api_domain}/op/v0/vpp/oauth2/client/offboard
Authorization: Bearer YOUR_ACCESS_TOKEN
Signature: Encrypt the string url+"\r\n"+ YOUR_ACCESS_TOKEN +"\r\n"+timestamp with md5
Content-Type: application/json
{
    "deviceSN": "DEVICE_SN"
}

Step 5: Refresh Access Token

After the token expires, simply repeat Step 1 to obtain a new access_token.


Access frequency limit:

  • Each inverter under a single account has a total of 1440 interface calls per day.
  • The query interface is limited to once per second, and each interface is calculated separately.
  • Inserting update interfaces is limited to once every 2 seconds, and each interface is calculated separately.

This limit is calculated based on various factors such as server performance, and the Company reserves the right of final interpretation

Common error solutions:

40256 The request header parameters are missing. Please check whether the request headers are consistent with the document requirements.
40257 The request body parameters are invalid. Please check whether the request body is consistent with the document requirements.
40400 The number of requests is too frequent. Please reduce the frequency of access.

Code example:


import json
import time
import urllib3
import requests
import hashlib
import os
from json import JSONDecodeError

"""debug mode"""

debug = False

"""request interval (second)"""

sleep_time = 0

"""domain name, do not modify it unless necessary"""

domain = 'https://portal.foxesscloud.us'

"""your key"""

key = ''

class GetAuth:

def get_signature(self, token, path, lang='en'):
"""
This function is used to generate a signature consisting of URL, token, and timestamp, and return a dictionary containing the signature and other information.
:param token: your key
:param path: your request path
:param lang: language, default is English.
:return: with authentication header
"""
timestamp = round(time.time() * 1000)
signature = fr'{path}\r\n{token}\r\n{timestamp}'

result = {
    'token': token,
    'lang': lang,
    'timestamp': str(timestamp),
    'signature': self.md5c(text=signature),
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/117.0.0.0 Safari/537.36'
}
return result

@staticmethod
def md5c(text="", _type="lower"):
res = hashlib.md5(text.encode(encoding='UTF-8')).hexdigest()
if _type.eq("lower"):
return res
else:
return res.upper()

def save_response_data(response, filename):

"""Create the 'data' directory if it doesn't exist"""

os.makedirs('data', exist_ok=True)

"""Concatenate the directory path and filename to create the full file path"""
file_path = os.path.join('data', filename)

"""Get the current timestamp"""
timestamp = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

"""Check if the status code is 200"""
if response.status_code == 200:
"""Save the response data and timestamp to a dictionary"""
try:
response_json = response.json()
except JSONDecodeError:
response_json = response.text

data = {
    'response': response_json,
    'timestamp': timestamp
}
"""Write the dictionary as JSON to the file"""
with open(file_path, 'w', encoding='utf-8') as file:
    json.dump(data, file, ensure_ascii=False, indent=4)

else:
"""Save the status code, response text, and timestamp to a dictionary"""
data = {
'status_code': response.status_code,
'response_text': response.text,
'timestamp': timestamp
}
"""Write the dictionary as JSON to the file"""
with open(file_path, 'w', encoding='utf-8') as file:
json.dump(data, file, ensure_ascii=False, indent=4)

print(f'{timestamp}: [{filename}] successfully saved')

urllib3.disable_warnings()

def fr_requests(method, path, param=None):

url = domain + path

headers = GetAuth().get_signature(token=key, path=path)

time.sleep(sleep_time)

if method == 'get':
response = requests.get(url=url, params=param, headers=headers, verify=False)

elif method == 'post':
response = requests.post(url=url, json=param, headers=headers, verify=False)
else:
raise Exception('request method error')

if debug:
result = {'url': url, 'method': method, 'param': param, 'headers': headers, 'response': response.text}
print(json.dumps(result, indent=1))
print('-------------------------' * 5)
return response

class Plant:

@staticmethod
def plant_list():
path = '/op/v0/plant/list'
request_param = {'currentPage': 1, 'pageSize': 10}
response = fr_requests('post', path, request_param)
save_response_data(response, 'plant_list_response.json')
return response

@staticmethod
def plant_detail():
path = '/op/v0/plant/detail'
request_param = {'id': 'abc'}
response = fr_requests('get', path, request_param)
save_response_data(response, 'plant_detail_response.json')
return response

class Device:

@staticmethod

def device_list():

path = '/op/v0/device/list'

request_param = {'currentPage': 1, 'pageSize': 500}

response = fr_requests('post', path, request_param)

save_response_data(response, 'device_list_response.json')

return response

@staticmethod
def device_detail():
path = '/op/v0/device/detail'
request_param = {'sn': 'sn'}
response = fr_requests('get', path, request_param)
save_response_data(response, 'device_detail_response.json')
return response

@staticmethod
def variable_get():
path = '/op/v0/device/variable/get'
response = fr_requests('get', path)
save_response_data(response, 'device_variable_get_response.json')
return response

@staticmethod
def real_query():
path = '/op/v0/device/real/query'
request_param = {'sn': 'sn', 'variables': []}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_real_query_response.json')
return response

@staticmethod
def history_query():
path = '/op/v0/device/history/query'
"""get the current millisecond level timestamp"""
end_time = int(time.time() * 1000)
"""timestamp 24 hours ago"""
begin_time = end_time - 3600000
request_param = {'sn': 'sn', 'variables': [], 'begin': begin_time, 'end': end_time}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_history_query_response.json')
return response

@staticmethod
def report_query():
path = '/op/v0/device/report/query'
request_param = {"sn": "sn",
"year": 2024, "month": 1, 'day': 17, "dimension": "day",
"variables": ["generation", "feedin", "gridConsumption",
"chargeEnergyToTal", "dischargeEnergyToTal"]}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_report_query_response.json')
return response

@staticmethod
def device_generation():
path = '/op/v0/device/generation'
request_param = {'sn': 'sn'}
response = fr_requests('get', path, request_param)
save_response_data(response, 'device_generation_response.json')
return response

@staticmethod
def device_bat_soc_get():
path = '/op/v0/device/battery/soc/get'
request_param = {'sn': 'sn'}
response = fr_requests('get', path, request_param)
save_response_data(response, 'device_bat_soc_get_response.json')
return response

@staticmethod
def device_bat_soc_set():
path = '/op/v0/device/battery/soc/set'
request_param = {'sn': 'sn', 'minSoc': 10, 'minSocOnGrid': 10}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_bat_soc_set_response.json')
return response

@staticmethod
def device_bat_force_charge_time_get():
path = '/op/v0/device/battery/forceChargeTime/get'
request_param = {'sn': 'sn'}
response = fr_requests('get', path, request_param)
save_response_data(response, 'device_bat_force_charge_time_get_response.json')
return response

@staticmethod
def device_bat_force_charge_time_set():
path = '/op/v0/device/battery/forceChargeTime/set'
request_param = {"sn": "sn", "enable1": True, "enable2": False,
"startTime1": {"hour": 12, "minute": 0}, "endTime1": {"hour": 14, "minute": 56},
"startTime2": {"hour": 2, "minute": 0}, "endTime2": {"hour": 4, "minute": 0}}
"""
request_param = {"sn": "sn", "enable1": False, "enable2": False,
"startTime1": {"hour": 11, "minute": 1}, "endTime1": {"hour": 15, "minute": 57},
"startTime2": {"hour": 3, "minute": 1}, "endTime2": {"hour": 5, "minute": 1}}
"""
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_bat_force_charge_time_set_response.json')
return response

@staticmethod
def device_scheduler_get_flag():
path = '/op/v0/device/scheduler/get/flag'
request_param = {'deviceSN': 'sn'}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_scheduler_get_flag_response.json')
return response

@staticmethod
def device_scheduler_set_flag():
path = '/op/v0/device/scheduler/set'
request_param = {'deviceSN': 'sn', 'enable': 0}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_scheduler_set_flag_response.json')
return response

@staticmethod
def device_scheduler_get():
path = '/op/v0/device/scheduler/get'
request_param = {'deviceSN': 'sn'}
response = fr_requests('post', path, request_param)
save_response_data(response, 'device_scheduler_get_response.json')
return response

@staticmethod
def device_scheduler_enable():
path = '/op/v0/device/scheduler/enable'
request_param1 = {"deviceSN": "sn",
"groups": [{"enable": 1, "startHour": 0, "startMinute": 0, "endHour": 1, "endMinute": 59,
"workMode": "SelfUse", "minSocOnGrid": 11, "fdSoc": 12, "fdPwr": 5001},
{"enable": 1, "startHour": 2, "startMinute": 1, "endHour": 3, "endMinute": 0,
"workMode": "SelfUse", "minSocOnGrid": 21, "fdSoc": 22, "fdPwr": 5002},
{"enable": 1, "startHour": 3, "startMinute": 1, "endHour": 3, "endMinute": 58,
"workMode": "Feedin", "minSocOnGrid": 31, "fdSoc": 32, "fdPwr": 5003},
{"enable": 1, "startHour": 4, "startMinute": 1, "endHour": 4, "endMinute": 58,
"workMode": "Backup", "minSocOnGrid": 41, "fdSoc": 42, "fdPwr": 5004},
{"enable": 1, "startHour": 5, "startMinute": 1, "endHour": 5, "endMinute": 58,
"workMode": "ForceCharge", "minSocOnGrid": 51, "fdSoc": 52, "fdPwr": 5005},
{"enable": 1, "startHour": 6, "startMinute": 1, "endHour": 6, "endMinute": 58,
"workMode": "ForceDischarge", "minSocOnGrid": 61, "fdSoc": 62, "fdPwr": 5006},
{"enable": 1, "startHour": 7, "startMinute": 0, "endHour": 7, "endMinute": 59,
"workMode": "ForceDischarge", "minSocOnGrid": 71, "fdSoc": 72, "fdPwr": 0},
{"enable": 1, "startHour": 8, "startMinute": 0, "endHour": 23, "endMinute": 59,
"workMode": "ForceDischarge", "minSocOnGrid": 81, "fdSoc": 82, "fdPwr": 6000}]}
request_param2 = {"deviceSN": "sn",
"groups": [{"enable": 0, "startHour": 0, "startMinute": 0, "endHour": 0, "endMinute": 1,
"workMode": "ForceCharge", "minSocOnGrid": 10, "fdSoc": 0, "fdPwr": 0},
{"enable": 0, "startHour": 3, "startMinute": 2, "endHour": 4, "endMinute": 1,
"workMode": "ForceCharge", "minSocOnGrid": 22, "fdSoc": 23, "fdPwr": 5003},
{"enable": 0, "startHour": 4, "startMinute": 2, "endHour": 4, "endMinute": 59,
"workMode": "Backup", "minSocOnGrid": 32, "fdSoc": 32, "fdPwr": 5004},
{"enable": 0, "startHour": 5, "startMinute": 2, "endHour": 5, "endMinute": 59,
"workMode": "Feedin", "minSocOnGrid": 42, "fdSoc": 42, "fdPwr": 5005},
{"enable": 0, "startHour": 6, "startMinute": 2, "endHour": 6, "endMinute": 59,
"workMode": "SelfUse", "minSocOnGrid": 52, "fdSoc": 52, "fdPwr": 5006},
{"enable": 0, "startHour": 7, "startMinute": 1, "endHour": 7, "endMinute": 59,
"workMode": "SelfUse", "minSocOnGrid": 62, "fdSoc": 62, "fdPwr": 5007},
{"enable": 0, "startHour": 8, "startMinute": 1, "endHour": 8, "endMinute": 3,
"workMode": "SelfUse", "minSocOnGrid": 72, "fdSoc": 72, "fdPwr": 0},
{"enable": 0, "startHour": 22, "startMinute": 59, "endHour": 23, "endMinute": 59,
"workMode": "SelfUse", "minSocOnGrid": 100, "fdSoc": 100, "fdPwr": 6000}]}
response = fr_requests('post', path, request_param2)
save_response_data(response, 'device_scheduler_set_response.json')
return response

class Module:

@staticmethod

def module_list():

path = '/op/v0/module/list'

request_param = {'currentPage': 1, 'pageSize': 10}

response = fr_requests('post', path, request_param)

save_response_data(response, 'module_list_response.json')

return response

class User:

@staticmethod

def user_get_access_count():

path = '/op/v0/user/getAccessCount'

response = fr_requests('get', path)

save_response_data(response, 'user_get_access_count_response.json')

return response

if name == 'main':

plant = Plant()

"""

plant.plant_list()

plant.plant_detail()

"""

device = Device()
"""
device.device_list()
device.device_detail()
device.variable_get()
device.real_query()
device.history_query()
device.report_query()
device.device_generation()

device.device_bat_soc_set()
time.sleep(3)
device.device_bat_soc_get()

device.device_bat_force_charge_time_set()
time.sleep(3)
device.device_bat_force_charge_time_get()

device.device_scheduler_set_flag()
time.sleep(3)
device.device_scheduler_get_flag()
device.device_scheduler_enable()
time.sleep(3)
device.device_scheduler_get()
"""

module = Module()
"""
module.module_list()
"""

user = User()
"""
user.user_get_access_count()
"""

Variable table:

The table presented below offers a comprehensive overview of the variables that can be accessed through the API. It is important to note that the availability of these variables may differ depending on the specific device being utilized. Therefore, the variables listed in the table are subject to change based on the device in use.

PV (Photovoltaic)

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
todayYield kW Energy generated today TRUE TRUE
PVEnergyTotal kWh Total photovoltaic power generation (PV panel side) TRUE TRUE
pvPower kW Total PV input power TRUE TRUE
pv1Volt V PV1 voltage TRUE TRUE
pv1Current A PV1 current TRUE TRUE
pv1Power kW PV1 power TRUE TRUE
pv2Volt V PV2 voltage TRUE TRUE
pv2Current A PV2 current TRUE TRUE
pv2Power kW PV2 power TRUE TRUE
pv3Volt V PV3 voltage TRUE TRUE
pv3Current A PV3 current TRUE TRUE
pv3Power kW PV3 power TRUE TRUE
pv4Volt V PV4 voltage TRUE TRUE
pv4Current A PV4 current TRUE TRUE
pv4Power kW PV4 power TRUE TRUE
pv5Volt V PV5 voltage TRUE TRUE
pv5Current A PV5 current TRUE TRUE
pv5Power kW PV5 power TRUE TRUE
pv6Volt V PV6 voltage TRUE TRUE
pv6Current A PV6 current TRUE TRUE
pv6Power kW PV6 power TRUE TRUE
pv7Volt V PV7 voltage TRUE TRUE
pv7Current A PV7 current TRUE TRUE
pv7Power kW PV7 power TRUE TRUE
pv8Volt V PV8 voltage TRUE TRUE
pv8Current A PV8 current TRUE TRUE
pv8Power kW PV8 power TRUE TRUE
pv9Volt V PV9 voltage TRUE TRUE
pv9Current A PV9 current TRUE TRUE
pv9Power kW PV9 power TRUE TRUE
pv10Volt V PV10 voltage TRUE TRUE
pv10Current A PV10 current TRUE TRUE
pv10Power kW PV10 power TRUE TRUE
pv11Volt V PV11 voltage TRUE TRUE
pv11Current A PV11 current TRUE TRUE
pv11Power kW PV11 power TRUE TRUE
pv12Volt V PV12 voltage TRUE TRUE
pv12Current A PV12 current TRUE TRUE
pv12Power kW PV12 power TRUE TRUE
pv13Volt V PV13 voltage TRUE TRUE
pv13Current A PV13 current TRUE TRUE
pv13Power kW PV13 power TRUE TRUE
pv14Volt V PV14 voltage TRUE TRUE
pv14Current A PV14 current TRUE TRUE
pv14Power kW PV14 power TRUE TRUE
pv15Volt V PV15 voltage TRUE TRUE
pv15Current A PV15 current TRUE TRUE
pv15Power kW PV15 power TRUE TRUE
pv16Volt V PV16 voltage TRUE TRUE
pv16Current A PV16 current TRUE TRUE
pv16Power kW PV16 power TRUE TRUE
pv17Volt V PV17 voltage TRUE TRUE
pv17Current A PV17 current TRUE TRUE
pv17Power kW PV17 power TRUE TRUE
pv18Volt V PV18 voltage TRUE TRUE
pv18Current A PV18 current TRUE TRUE
pv18Power kW PV18 power TRUE TRUE
pv19Volt V PV19 voltage TRUE TRUE
pv19Current A PV19 current TRUE TRUE
pv19Power kW PV19 power TRUE TRUE
pv20Volt V PV20 voltage TRUE TRUE
pv20Current A PV20 current TRUE TRUE
pv20Power kW PV20 power TRUE TRUE
pv21Volt V PV21 voltage TRUE TRUE
pv21Current A PV21 current TRUE TRUE
pv21Power kW PV21 power TRUE TRUE
pv22Volt V PV22 voltage TRUE TRUE
pv22Current A PV22 current TRUE TRUE
pv22Power kW PV22 power TRUE TRUE
pv23Volt V PV23 voltage TRUE TRUE
pv23Current A PV23 current TRUE TRUE
pv23Power kW PV23 power TRUE TRUE
pv24Volt V PV24 voltage TRUE TRUE
pv24Current A PV24 current TRUE TRUE
pv24Power kW PV24 power TRUE TRUE

Grid

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
RCurrent A Grid R-phase current TRUE TRUE
RVolt V Grid R-phase voltage TRUE TRUE
RFreq Hz Grid R-phase frequency TRUE TRUE
RPower kW Grid R-phase active power TRUE TRUE
SCurrent A Grid S-phase current TRUE TRUE
SVolt V Grid S-phase voltage TRUE TRUE
SFreq Hz Grid S-phase frequency TRUE TRUE
SPower kW Grid S-phase active power TRUE TRUE
TCurrent A Grid T-phase current TRUE TRUE
TVolt V Grid T-phase voltage TRUE TRUE
TFreq Hz Grid T-phase frequency TRUE TRUE
TPower kW Grid T-phase active power TRUE TRUE
feedinPower kW Power exported to grid TRUE TRUE
gridConsumptionPower kW Power drawn from grid TRUE TRUE
ReactivePower kVar Reactive power TRUE TRUE
PowerFactor Power factor TRUE TRUE
generation kWh Cumulative power generation (AC output from inverter side, affected by battery charging/discharging) TRUE TRUE
gridConsumption kWh Total grid electricity consumption TRUE TRUE
gridConsumption2 kWh Total electricity consumption of Meter 2 TRUE TRUE
gridConsumption3 kWh Total electricity consumption of Meter 3 TRUE TRUE
feedin kWh Total feed-in energy TRUE TRUE
feedin2 kWh Total feed-in energy of Meter 2 TRUE TRUE

Loads

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
loads kWh Load power consumption TRUE TRUE
loadsPower kW Total load power TRUE TRUE
loadsPowerR kW Load R-phase power TRUE TRUE
loadsPowerS kW Load S-phase power TRUE TRUE
loadsPowerT kW Load T-phase power TRUE TRUE

Inverter

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
ambientTemperation ℃ Ambient temperature TRUE TRUE
boostTemperation ℃ Boost circuit temperature TRUE TRUE
invTemperation ℃ Inverter temperature TRUE TRUE
chargeTemperature ℃ Charging module temperature TRUE TRUE
dspTemperature ℃ DSP chip temperature TRUE TRUE
generationPower kW Total AC output power? TRUE TRUE
runningState Running state TRUE TRUE
currentFault Current fault code TRUE TRUE
currentFaultCount Current fault count TRUE TRUE

Battery

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
SoC % State of Charge TRUE FALSE
SOH % State of Health TRUE FALSE
batStatus Battery status code TRUE FALSE
batStatusV2 Battery status name TRUE FALSE
batTemperature ℃ Battery temperature TRUE FALSE
batVolt V Battery voltage TRUE FALSE
batCurrent A Battery current TRUE FALSE
batChargePower kW Battery charge powerNote: check note for "invBatPower" TRUE FALSE
batDischargePower kW Battery discharge powerNote: check note for "invBatPower" TRUE FALSE
invBatVolt V Inverter-side battery voltage TRUE TRUE
invBatCurrent A Inverter-side battery currentNote: Positive Discharge, Negative Charge TRUE FALSE
invBatPower kW Inverter-side battery powerNote: Positive Discharge, Negative Charge;is split into two separate positive values:"batDischargePower" (when positive)and"batChargePower" (absolute value when negative). TRUE FALSE
maxChargeCurrent A Maximum charge current TRUE FALSE
maxDischargeCurrent A Maximum discharge current TRUE FALSE
remainCapacity Ah Remaining capacity TRUE FALSE
RemainingPowerCapability Ah Remaining power capability TRUE FALSE
ResidualEnergy kWh Remaining energy in battery TRUE FALSE
batCycleCount Number of charge/discharge cycles TRUE FALSE
totalDischargeKW kWh Battery total discharge energy TRUE FALSE
totalDischargeAh Ah Battery total discharge capacity TRUE FALSE
chargeEnergyToTal kWh Total charge energy TRUE FALSE
dischargeEnergyToTal kWh Total discharge energy TRUE FALSE
energyThroughput kWh Total energy cycled (lifetime) TRUE FALSE
EventNumber Adverse event count TRUE FALSE

Meter

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
meterPower kW Meter 1 total active power TRUE TRUE
meterPower2 kW Meter 2 total active power TRUE TRUE
meterPowerR kW Meter 1 R-phase active power TRUE TRUE
meterPowerS kW Meter 1 S-phase active power TRUE TRUE
meterPowerT kW Meter 1 T-phase active power TRUE TRUE
meter3Status Operational status of Meter 3 TRUE TRUE

EPS (Emergency Power Supply)

Variable Key Unit Business Meaning For Energy-storage For Grid-tied
epsPower kW EPS total output power TRUE FALSE
epsCurrentR A EPS R-phase current TRUE FALSE
epsVoltR V EPS R-phase voltage TRUE FALSE
epsPowerR kW EPS R-phase power TRUE FALSE
epsCurrentS A EPS S-phase current TRUE FALSE
epsVoltS V EPS S-phase voltage TRUE FALSE
epsPowerS kW EPS S-phase power TRUE FALSE
epsCurrentT A EPS T-phase current TRUE FALSE
epsVoltT V EPS T-phase voltage TRUE FALSE
epsPowerT kW EPS T-phase power TRUE FALSE

Heat Pump(For Kafka)

Variable Key Business Meaning Category
indoorDeviceType Model Name Heat PumpHardware Identification (Static Data)
capacity Power Class Heat PumpHardware Identification (Static Data)
sn Outdoor Unit S/N Heat PumpHardware Identification (Static Data)
indoorSN Indoor Unit S/N & Gateway S/N Heat PumpHardware Identification (Static Data)
systemFunction Domestic Hot Water installed Device Details(Semi Static Data)
Z1ZoneSwitch Heating Circuits Device Details(Semi Static Data)
Z2ZoneSwitch Heating Circuits Device Details(Semi Static Data)
Z3ZoneSwitch Heating Circuits Device Details(Semi Static Data)
Z1ZoneEmitterType Heating Circuit Type Device Details(Semi Static Data)
Z1ZoneMaxWaterTemp Heating Circuit Type Device Details(Semi Static Data)
Z2ZoneEmitterType Heating Circuit Type Device Details(Semi Static Data)
Z2ZoneMaxWaterTemp Heating Circuit Type Device Details(Semi Static Data)
Z3ZoneEmitterType Heating Circuit Type Device Details(Semi Static Data)
Z3ZoneMaxWaterTemp Heating Circuit Type Device Details(Semi Static Data)
currentRunMode System Status Status (Dynamicon Change)
heatPumpConnectivityStatus Connectivity Status Status (Dynamicon Change)
sgReadyEnable Smart Grid Status Status (Dynamicon Change)
sgReadyMode §14a status Status (Dynamicon Change)
sgTclmin §14a dimming target Status (Dynamicon Change)
sgThtmax §14a dimming target Status (Dynamicon Change)
sgTwmax §14a dimming target Status (Dynamicon Change)
outdoorAirTemp Outdoor temperatureused for weather curve? Metrics(Dynamic Time series)
dcWaterPumpOFFFlowRate Hydraulics station flow speed Metrics(Dynamic Time series)
outletWaterTemp Hydraulic station flow temperature Metrics(Dynamic Time series)
returnWaterTemp Hydraulic station return temperature Metrics(Dynamic Time series)
Z1ZoneTemp Flow temperature of each heating circuit Metrics(Dynamic Time series)
Z2ZoneTemp Flow temperature of each heating circuit Metrics(Dynamic Time series)
Z3ZoneTemp Flow temperature of each heating circuit Metrics(Dynamic Time series)
dcFanOFFSpeed Ventilator RPM Metrics(Dynamic Time series)
dcFanMaxSpeed Ventilator max RPM Metrics(Dynamic Time series)
bufferTankTemp Buffer tank temperature Metrics(Dynamic Time series)
SolenoidThree-wayValveStatus 3-way-valve position Metrics(Dynamic Time series)
flowPressure Technical Water Pressure Metrics(Dynamic Time series)
waterTankTemp Domestic hot water actual temperature Metrics(Dynamic Time series)
heatingSetTemp Domestic hot water target temperature Metrics(Dynamic Time series)
heatingRealTimeConsumption Power consumption heating Metrics(Dynamic Time series)
dhwRealTimeConsumption Power consumption heating domestic hot water Metrics(Dynamic Time series)
totalIndoorConsumption Power consumption heating rod heating Metrics(Dynamic Time series)
heatingRealTimeProduction Generated heat heating Metrics(Dynamic Time series)
dhwRealTimeProduction Generated heat domestic hot water Metrics(Dynamic Time series)
currentFault Error Code Errors & Warnings

Appendix For Enum Variable

Variable Type Variable Key Value Meaning
Inverter runningState 160 self-test
Inverter runningState 161 waiting
Inverter runningState 162 checking
Inverter runningState 163 on-grid
Inverter runningState 164 off-grid
Inverter runningState 165 fault
Inverter runningState 166 permanent-fault
Inverter runningState 167 standby
Inverter runningState 168 upgrading
Inverter runningState 169 fct
Inverter runningState 170 illegal

Kafka Integration Documentation

1. Overview

This document provides guidance for customers to integrate with our Kafka messaging service.

After completing the integration, customers can use the Kafka protocol to:

  • Subscribe to data

2. Integration Process

2.1 Integration Steps

The customer integration workflow is as follows:

  1. Submit an integration request (provide company/system information)
  2. We create a Kafka non-production environment:
    • Account (Username / Password)
    • Topic and Group ID
    • Permissions (Read)
  3. We provide the integration details
  4. Customer completes SDK/client integration
  5. Joint debugging and testing
  6. Create Kafka production environment
  7. Release to production

3. Integration Information Description

We will provide the following information:

Parameter Example Description
Bootstrap Servers xxx.kafka.aliyuncs.com:9094 Kafka endpoint
Username user_xxx SASL username
Password ****** SASL password
Topic device-data-prod Topic name
Consumer Group group_xxx Consumer group (optional)
Security Protocol SASL_SSL Connection protocol

4. Client Integration Examples

4.1 Java Example

# kafka.properties
## ============================== Common Config ==============================
bootstrap.servers=xxxxxxxxxxxxxxxxxxxxx
topic=xxx
group.id=xxx

======================= Configure Based on Your Setup =====================

SSL endpoint config

ssl.truststore.location=/xxxx/only.4096.client.truststore.jks

Must be KafkaOnsClient, do not modify

ssl.truststore.password=KafkaOnsClient

Hostname verification (leave empty)

ssl.endpoint.identification.algorithm=

java.security.auth.login.config=/xxxx/kafka_client_jaas.conf

SASL PLAIN

java.security.auth.login.config.plain=/xxxx/kafka_client_jaas_plain.conf

SASL SCRAM

java.security.auth.login.config.scram=/xxxx/kafka_client_jaas_scram.conf

### Java Kafka Consumer Example (with Detailed Comments)

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;

import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.producer.ProducerConfig;

/*
 * For SSL endpoint instances, uncomment the following three lines.
 * For SASL endpoint instances, uncomment the first two lines below.
 */
// import org.apache.kafka.clients.CommonClientConfigs;
// import org.apache.kafka.common.config.SaslConfigs;
// import org.apache.kafka.common.config.SslConfigs;

public class KafkaConsumerDemo {

    public static void main(String args[]) {

        // Set the JAAS configuration file path
        /*
         * For SSL endpoint instances, uncomment the following line:
         * JavaKafkaConfigurer.configureSasl();
         */

        /*
         * For SASL PLAIN mechanism instances, uncomment the following line:
         * JavaKafkaConfigurer.configureSaslPlain();
         */

        /*
         * For SASL SCRAM mechanism instances, uncomment the following line:
         * JavaKafkaConfigurer.configureSaslScram();
         */

        // Load kafka.properties
        Properties kafkaProperties = JavaKafkaConfigurer.getKafkaProperties();

        Properties props = new Properties();

        // Set bootstrap servers (Kafka endpoint)
        props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,
                kafkaProperties.getProperty("bootstrap.servers"));

        // Default session timeout (30 seconds)
        props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 30000);

        /*
         * For SSL endpoint instances, uncomment the following configurations:
         *
         * Set SSL truststore path (replace XXX with your actual path)
         * props.put(SslConfigs.SSL_TRUSTSTORE_LOCATION_CONFIG,
         *         kafkaProperties.getProperty("ssl.truststore.location"));
         *
         * Truststore password (must remain unchanged)
         * props.put(SslConfigs.SSL_TRUSTSTORE_PASSWORD_CONFIG, "KafkaOnsClient");
         *
         * Security protocol
         * props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_SSL");
         *
         * SASL mechanism
         * props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
         *
         * Max interval between polls
         * props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 30000);
         *
         * Fetch size configuration (important for public network access)
         * props.put(ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG, 32000);
         * props.put(ConsumerConfig.FETCH_MAX_BYTES_CONFIG, 32000);
         */

        /*
         * For SASL PLAIN mechanism instances, uncomment:
         *
         * props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
         * props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
         * props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 30000);
         */

        /*
         * For SASL SCRAM mechanism instances, uncomment:
         *
         * props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
         * props.put(SaslConfigs.SASL_MECHANISM, "SCRAM-SHA-256");
         * props.put(ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG, 30000);
         */

        // Maximum number of records per poll
        // Avoid setting too large to prevent rebalance delays
        props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 30);

        // Deserialization
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG,
                "org.apache.kafka.common.serialization.StringDeserializer");
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG,
                "org.apache.kafka.common.serialization.StringDeserializer");

        // Consumer group ID
        props.put(ConsumerConfig.GROUP_ID_CONFIG,
                kafkaProperties.getProperty("group.id"));

        // Create Kafka consumer instance
        KafkaConsumer<String, String> consumer =
                new KafkaConsumer<>(props);

        // Subscribe to topics (supports multiple topics)
        List<String> subscribedTopics = new ArrayList<>();

        String topicStr = kafkaProperties.getProperty("topic");
        String[] topics = topicStr.split(",");

        for (String topic : topics) {
            subscribedTopics.add(topic.trim());
        }

        consumer.subscribe(subscribedTopics);

        // Start consuming messages
        while (true) {
            try {
                ConsumerRecords<String, String> records = consumer.poll(1000);

                // Process records within session timeout
                for (ConsumerRecord<String, String> record : records) {
                    System.out.println(String.format(
                            "Consume partition:%d offset:%d",
                            record.partition(),
                            record.offset()));
                }

            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (Throwable ignore) {
                }
                e.printStackTrace();
            }
        }
    }
}

4.2 Golang Example

// kafka.json
{
  "topic": "XXX",
  "group.id": "XXX",
  "bootstrap.servers": "XXX:XX,XXX:XX,XXX:XX",
  "security.protocol": "sasl_ssl",
  "sasl.mechanism": "XXX",
  "sasl.username": "XXX",
  "sasl.password": "XXX"
}
// main.go
package main

import (
"encoding/json"
"fmt"
"github.com/confluentinc/confluent-kafka-go/kafka"
"os"
"path/filepath"
)
type KafkaConfig struct {
Topic string json:"topic"
GroupId string json:"group.id"
BootstrapServers string json:"bootstrap.servers"
SecurityProtocol string json:"security.protocol"
SaslMechanism string json:"sasl.mechanism"
SaslUsername string json:"sasl.username"
SaslPassword string json:"sasl.password"
}

// config should be a pointer to structure, if not, panic
func loadJsonConfig() *KafkaConfig {
workPath, err := os.Getwd()
if err != nil {
panic(err)
}
configPath := filepath.Join(workPath, "conf")
fullPath := filepath.Join(configPath, "kafka.json")
file, err := os.Open(fullPath);
if (err != nil) {
msg := fmt.Sprintf("Can not load config at %s. Error: %v", fullPath, err)
panic(msg)
}

defer file.Close()

decoder := json.NewDecoder(file)
var config = &amp;KafkaConfig{}
err = decoder.Decode(config);
if (err != nil) {
    msg := fmt.Sprintf("Decode json fail for config file at %s. Error: %v", fullPath, err)
    panic(msg)
}
json.Marshal(config)
return  config

}

func doInitConsumer(cfg *KafkaConfig) *kafka.Consumer {
fmt.Print("init kafka consumer, it may take a few seconds to init the connection\n")
//common arguments
var kafkaconf = &kafka.ConfigMap{
"api.version.request": "true",
"auto.offset.reset": "latest",
"heartbeat.interval.ms": 3000,
"session.timeout.ms": 30000,
"max.poll.interval.ms": 120000,
"fetch.max.bytes": 1024000,
"max.partition.fetch.bytes": 256000}
kafkaconf.SetKey("bootstrap.servers", cfg.BootstrapServers);
kafkaconf.SetKey("group.id", cfg.GroupId)

switch cfg.SecurityProtocol {
case "plaintext" :
    kafkaconf.SetKey("security.protocol", "plaintext");
case "sasl_ssl":
    kafkaconf.SetKey("security.protocol", "sasl_ssl");
    kafkaconf.SetKey("ssl.ca.location", "./conf/ca-cert.pem");
    kafkaconf.SetKey("sasl.username", cfg.SaslUsername);
    kafkaconf.SetKey("sasl.password", cfg.SaslPassword);
    kafkaconf.SetKey("sasl.mechanism", cfg.SaslMechanism);
    kafkaconf.SetKey("ssl.endpoint.identification.algorithm", "None");
    kafkaconf.SetKey("enable.ssl.certificate.verification", "false")
case "sasl_plaintext":
    kafkaconf.SetKey("security.protocol", "sasl_plaintext");
    kafkaconf.SetKey("sasl.username", cfg.SaslUsername);
    kafkaconf.SetKey("sasl.password", cfg.SaslPassword);
    kafkaconf.SetKey("sasl.mechanism", cfg.SaslMechanism)

default:
    panic(kafka.NewError(kafka.ErrUnknownProtocol, "unknown protocol", true))
}

consumer, err := kafka.NewConsumer(kafkaconf)
if err != nil {
    panic(err)
}
fmt.Print("init kafka consumer success\n")
return consumer;

}

func main() {

// Choose the correct protocol
// 9092 for PLAINTEXT
// 9093 for SASL_SSL, need to provide sasl.username and sasl.password
// 9094 for SASL_PLAINTEXT, need to provide sasl.username and sasl.password
cfg := loadJsonConfig();
consumer := doInitConsumer(cfg)

consumer.SubscribeTopics([]string{cfg.Topic}, nil)

for {
    msg, err := consumer.ReadMessage(-1)
    if err == nil {
        fmt.Printf("Message on %s: %s\n", msg.TopicPartition, string(msg.Value))
    } else {
        // The client will automatically try to recover from all errors.
        fmt.Printf("Consumer error: %v (%v)\n", err, msg)
    }
}

consumer.Close()

}

4.3 Python Example

kafka_setting = {
    'sasl_plain_username': 'XXX',
    'sasl_plain_password': 'XXX',
    'bootstrap_servers': ["XXX", "XXX", "XXX"],
    'topic_name': 'XXX',
    'consumer_id': 'XXX'
}
from confluent_kafka import Consumer, KafkaError

import setting

conf = setting.kafka_setting

c = Consumer({
'bootstrap.servers': conf['bootstrap_servers'],
'group.id': conf['group_name'],
'auto.offset.reset': 'latest'
})

c.subscribe([conf['topic_name']])

while True:
msg = c.poll(1.0)

if msg is None:
    continue
if msg.error():
    if msg.error().code() == KafkaError._PARTITION_EOF:
        continue
    else:
        print("Consumer error: {}".format(msg.error()))
        continue

print('Received message: {}'.format(msg.value().decode('utf-8')))

c.close()

5. FAQ

5.1 Connection Failure

Check:

  • Whether the port is open
  • Whether the SASL configuration is correct

5.2 No Data Consumed

Check:

  • Whether the Topic is correct
  • Whether the Consumer Group conflicts
  • Whether the offset is at the end (latest)

5.3 Permission Issues

Symptom:

Topic authorization failed

Solution:

Contact us to enable ACL permissions

Power Station

Create power station

Basic information

Path: /op/v0/plant/create

Method: POST

Interface description:

request body example:

{
  "devices": [
    {
      "sn": "*******"
    }
  ],
  "pileSN": "*************",
  "details": {
    "name": "name_51b2289bf18f",
    "type": 1,
    "countryCode": "CN",
    "city": "city_54049a6aad08",
    "address": "address_efdf02e2819d",
    "postcode": "213414",
    "price": 0.52,
    "currency": "CNY(¥)",
    "systemCapacity": 72.00
  },
  "timezone": "Asia/Shanghai",
  "position": {
    "x": "x_9e0c3cf37a91",
    "y": "y_6fa583b5fe21",
    "format": "format_b9434db57b54",
    "pid": "pid_169c8579050c"
  },
  "electricmeterSN": "*********************",
  "layoutByMini": {
    "direction": 1,
    "arrange": [
      {
        "sn": "***********",
        "horizontal": 2,
        "vertical": 3,
        "azimuth": 30,
        "dipAngle": 45,
        "direction": 1,
        "capacity": 30,
        "model": "model_71300e86ba58"
      }
    ]
  }
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
devices object [] Not Required Information of modules(needed for creating pv/energy-storage power station)

item Type: object

├─ sn string Not Required Serial number of module
├─ key string Not Required
pileSN string Not Required Charge pile's serial number(needed for charge pile power station)
details object Required Details of power station
├─ name string Required Name of power station
├─ type number Required Type of power station(1-pv power station,2-energy-storage power station,3-charge-pile power station,4-mini-device power station)
├─ countryCode string Required Country's code of power station(Two-bit code, such as China is "CN",Reference address:https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
├─ city string Required City
├─ address string Required Address
├─ postcode string Required Postcode
├─ price number Not Required Electric price of power station(needed for creating pv/energy-storage/mini-device power station)
├─ currency string Not Required The currency of electricity price measurement(needed for editing pv/energy-storage/mini-device power station,reference:U.S. dollar-USD($);Euro-EUR(€);Vietnamese Dong-VND(D.);RMB-CNY(¥);Pound sterling-GBP(£);Australian dollar-AUD($);Poland-PLN(Zł);India-INR(₹);Brazil-BRL(R$);S.Africa-ZAR(R);THB (THB)-THB(฿);Pakistani rupee-PKR(Rs))
├─ systemCapacity number Not Required System's capacity of power station(needed for creating pv/energy-storage/mini-device power station)
timezone string Required Detailed time zone in English("district"+"/"+"country",such as:Asia/Shanghai,Reference address:https://nodatime.org/TimeZones)
position object Not Required Coordinate information
├─ format string Not Required Coordinate address
├─ x string Not Required Longitude
├─ y string Not Required Latitude
├─ pid string Not Required Ip of address
electricmeterSN string Not Required Serial number of electricmeter(needn't if empty)
layoutByMini object Not Required Information of mini-device (needed for creating mini-device power station)
├─ direction number Not Required Component layout(1-portrait,2-crosswise)
├─ arrange object [] Not Required

item Type: object

├─ sn string Not Required Serial number of module (needed for creating mini-device power station)
├─ horizontal number Not Required Horizontal number (needed for creating mini-device power station)
├─ vertical number Not Required Vertical number (needed for creating mini-device power station)
├─ azimuth number Not Required Azimuth angle (needed for creating mini-device power station,between 0 and 360°)
├─ dipAngle number Not Required Angle of inclination (needed for creating mini-device power station,between 0 and 90°)
├─ direction number Not Required Direction( needed for creating mini-device power station,1-vertical,2-horizontal)
├─ capacity number Not Required Component capacity (needed for creating mini-device power station)
├─ model string Not Required Component type (needed for creating mini-device power station)

Response Data

Name Type Is it required Default value Note Other information
errno number Not Required Error number(When the result is not equal to zero, the request fails)
result object Not Required
├─ stationID string Not Required Id of power station
├─ devices object [] Not Required Information of module

item Type: object

├─ device object Not Required
├─ sn string Not Required Snserial number of module
├─ key string Not Required
├─ errno number Not Required Error number of module(when the result is not equal to zero, the serial number cannt meet the requirements)

Delete power station

Basic information

Path: /op/v0/plant/delete

Method: POST

Interface description:

request body example:

{
  "stationID": "***********"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
stationID string Required Id of power station

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)

Edit power station

Basic information

Path: /op/v0/plant/update

Method: POST

Interface description:

request body example:

{
  "devices": [
    {
      "sn": "*******"
    }
  ],
  "pileSN": "*************",
  "details": {
    "stationID": "********************",
    "name": "name_51b2289bf18f",
    "type": 1,
    "countryCode": "CN",
    "city": "city_54049a6aad08",
    "address": "address_efdf02e2819d",
    "postcode": "213414",
    "price": 0.52,
    "currency": "CNY(¥)",
    "systemCapacity": 72.00
  },
  "timezone": "Asia/Shanghai",
  "position": {
    "x": "x_9e0c3cf37a91",
    "y": "y_6fa583b5fe21",
    "format": "format_b9434db57b54",
    "pid": "pid_169c8579050c"
  },
  "electricmeterSN": "*********************",
  "layoutByMini": {
    "direction": 1,
    "arrange": [
      {
        "sn": "***********",
        "horizontal": 2,
        "vertical": 3,
        "azimuth": 30,
        "dipAngle": 45,
        "direction": 1,
        "capacity": 30,
        "model": "model_71300e86ba58"
      }
    ]
  }
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
devices object [] Not Required Information of modules(needed for editing pv/energy-storage power station)

item Type: object

├─ sn string Not Required Serial number of module
├─ key string Not Required
pileSN string Not Required Charge pile's serial number(needed for charge pile power station)
details object Required Details of power station
├─ name string Required Name of power station
├─ type number Required Type of power station(1-pv power station,2-energy-storage power station,3-charge-pile power station,4-mini-device power station)
├─ countryCode string Required Country's code of power station(Two-bit code, such as China is "CN",Reference address:https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
├─ city string Required City
├─ address string Required Address
├─ postcode string Required Postcode
├─ price number Not Required Electric price of power station(needed for editing pv/energy-storage/mini-device power station)
├─ currency string Not Required The currency of electricity price measurement(needed for editing pv/energy-storage/mini-device power station,reference:U.S. dollar-USD($);Euro-EUR(€);Vietnamese Dong-VND(D.);RMB-CNY(¥);Pound sterling-GBP(£);Australian dollar-AUD($);Poland-PLN(Zł);India-INR(₹);Brazil-BRL(R$);S.Africa-ZAR(R);THB (THB)-THB(฿);Pakistani rupee-PKR(Rs))
├─ stationID string Required Id of power station
├─ systemCapacity number Not Required System's capacity of power station(needed for editing pv/energy-storage/mini-device power station)
timezone string Required Detailed time zone in English("district"+"/"+"country",such as:Asia/Shanghai,Reference address:https://nodatime.org/TimeZones)
position object Not Required Coordinate information
├─ format string Not Required Coordinate address
├─ x string Not Required Longitude
├─ y string Not Required Latitude
├─ pid string Not Required Ip of address
electricmeterSN string Not Required Serial number of electricmeter(needn't if empty)
layoutByMini object Not Required Information of mini-device (needed for editing mini-device power station)
├─ direction number Not Required Component layout(1-portrait,2-crosswise)
├─ arrange object [] Not Required

item Type: object

├─ sn string Not Required Serial number of module
├─ horizontal number Not Required Horizontal number
├─ vertical number Not Required Vertical number
├─ azimuth number Not Required Azimuth angle(between 0 and 360°)
├─ dipAngle number Not Required Angle of inclination(between 0 and 90°)
├─ direction number Not Required Direction(1-vertical,2-horizontal)
├─ capacity number Not Required Component capacity
├─ model string Not Required Component type

Response Data

Name Type Is it required Default value Note Other information
errno number Not Required Error number(When the result is not equal to zero, the request fails)
result object Not Required
├─ stationID string Not Required Id of power station
├─ devices object [] Not Required Information of module

item Type: object

├─ device object Not Required
├─ sn string Not Required Serial number of module
├─ key string Not Required
├─ errno number Not Required Error number of module(when the result is not equal to zero, the serial number cannt meet the requirements)

Get power station detail

Basic information

Path: /op/v0/plant/detail

Method: GET

Interface description:

Obtain details about a power station based on the power station ID

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
id Required Id of power station

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ stationName string Required Name of power station
├─ country string Required Country of power station
├─ city string Required City of power station
├─ address string Required Address of power station
├─ createDate string Required Create time,millisecond timestamp
├─ postcode string Required Postcode of power station
├─ capacity number Required Installed capacity (Unit kw)
├─ timezone string Required Time zone of power station
├─ user object Required User information
├─ name string Required Name of user
├─ email string Required Email of user
├─ phone string Required Phone of user
├─ installer object Required Installer information
├─ name string Required Name of Installer
├─ email string Required Email of Installer
├─ phone string Required Phone of Installer
├─ modules object [] Required Device list

item Type: object

├─ moduleSN string Required Serial number of Data Logger
├─ deviceSN string Required Serial number of Inverter
├─ batteries object [] Required Battery list (US Only)

item Type: object

├─ batterySN string Required Serial number of the battery
├─ type string Required Master Slave Type of the battery
├─ version string Required Version of the battery
├─ model string Required model of the battery
├─ capacity integer Required capicty of the battery
├─ productDate integer Required Manufacture date of the battery The date of manufacture (time portion ignored), expressed as a Unix timestamp in milliseconds

Get power station list

Basic information

Path: /op/v0/plant/list

Method: POST

Interface description:

Obtain the list of power stations to which this account belongs
request body example:

{
  "currentPage": 1,
  "pageSize": 10
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno number Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ data object [] Required

item Type: object

├─ stationID string Required Id of power station
├─ name string Required Name of power station
├─ ianaTimezone string Required Timezone of power station
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total

VPP

authorization code mode offboard by sn

Basic information

Path: /op/v0/vpp/oauth2/code/offboard/device

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required Error message

client mode offboard

Basic information

Path: /op/v0/vpp/oauth2/client/offboard

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required Error message

client mode onboard

Basic information

Path: /op/v0/vpp/oauth2/client/onboard

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required Error message

Inverter-V1

Get device detail

Basic information

Path: /op/v1/device/detail

Method: GET

Interface description:
Obtain inverter details

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Query

Parameter name Is it required Example Note
sn Required Serial number of Inverter

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ deviceSN string Required Serial number of the inverter
├─ moduleSN string Required Serial number of the collector
├─ stationID string Required Id of power station
├─ stationName string Required Name of power station
├─ afciVersion string Required Version of afci
├─ managerVersion string Required Version of manager
├─ masterVersion string Required Version of master
├─ slaveVersion string Required Version of slave
├─ hardwareVersion string Required Version of hardware
├─ hubVersion string Required Version of hub (US)
├─ status integer Required Status of device Enumeration说明: 1:online 2:breakdown 3:offline

Enumeration: 1,2,3

Enumeration note: 1:online 2:breakdown 3:offline

├─ capacity number Required Capacity of device(in kW)
├─ thirdPartyGen boolean Required Does the equipment connect to the third-party power generation equipment
├─ function object Required Functional support
├─ scheduler boolean Required Whether the periodic mode switchover function is supported
├─ batteryList object [] Required

item Type: object

├─ batterySN string Required Serial number of the battery
├─ type string Required Master Slave Type of the battery
├─ version string Required Version of the battery
├─ model string Required model of the battery
├─ capicty integer Required capicty of the battery
├─ productDate integer Required Manufacture date of the battery The date of manufacture (time portion ignored), expressed as a Unix timestamp in milliseconds

Get device real-time data

Basic information

Path: /op/v1/device/real/query

Method: POST

Interface description:

Get the latest real-time data of the inverter. The sn array is mandatory and returns only the result set belonging to the current user. If no variable is specified, all variables are queried
request body example:

{
  "sns": ["***************","***************","***************"],
  "variables": ["pvPower","pv1Current"]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
variables string [] Not Required If this parameter is not passed, all variable data is obtained by default item type: string

item Type: string

├─ Not Required Variable name Available variables can be queried through the Get Variables interface Remark:Variable name,available variables can be queried through the Get Variables interface
sns string [] Required Serial Number of Inverter Remark:Can transmit up to 50 Serial Number

item Type: string

├─ Not Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object [] Required

item Type: object

├─ deviceSN string Required Serial Number of Inverter
├─ datas object [] Required

item Type: object

├─ variable string Required Variable name If the data is not found, it will not be returned
├─ unit string Required Unit
├─ name string Required Name in English
├─ value number Required Value
├─ time string Required Inverter local time, yyyy-MM-dd HH:mm:ss zZ format

Inverter

Get device list

Basic information

Path: /op/v0/device/list

Method: POST

Interface description:

Obtain the list of inverters owned by this account
request body example:

{
  "currentPage": 1,
  "pageSize": 10
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total
├─ data object [] Required

item Type: object

├─ deviceSN string Required Serial number of the inverter
├─ moduleSN string Required Serial number of the Data Logger
├─ stationID string Required Id of power station
├─ stationName string Required Name of power station
├─ status integer Required Status of module

Enumeration: 1,2,3

Enumeration note: 1:online 2:fault 3:offline

├─ hasPV boolean Required Is there a photovoltaic system available
├─ hasBattery boolean Required Is there a battery available
├─ deviceType string Required Model of device
├─ productType string Required Series of product

Get device detail (Deprecated)

Basic information

Path: /op/v0/device/detail

Method: GET

Interface description:

Obtain inverter details

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required Serial number of Inverter

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ deviceSN string Required Serial number of the inverter
├─ moduleSN string Required Serial number of the collector
├─ stationID string Required Id of power station
├─ stationName string Required Name of power station
├─ afciVersion string Required Version of afci
├─ managerVersion string Required Version of manager
├─ masterVersion string Required Version of master
├─ slaveVersion string Required Version of slave
├─ hardwareVersion string Required Version of hardware
├─ status integer Required Status of device

Enumeration: 1,2,3

Enumeration note: 1:online 2:breakdown 3:offline

├─ capacity integer Required Capacity of device(in kW)
├─ function object Required Functional support
├─ scheduler boolean Required Whether the periodic mode switchover function is supported
├─ batteryList object [] Required

item Type: object

├─ batterySN string Required Serial number of the battery
├─ type string Required Master Slave Type of the battery
├─ version string Required Version of the battery
├─ model string Required model of the battery
├─ capicty string Required capicty of the battery

Get available variables

Basic information

Path: /op/v0/device/variable/get

Method: GET

Interface description:

Obtain variable tables for use by real-time data and historical data interfaces

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
string Not Required

format: binary

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object [] Required

item Type: object

├─ {variable} object Required
├─ unit string Required unit
├─ name object Required variable name
├─ zh_CN string Required
├─ en string Required
├─ de string Required
├─ pt string Required
├─ fr string Required
├─ pl string Required

Get error code information

Basic information

Path: /op/v0/device/fault/get

Method: GET

Interface description:

Obtain error code information

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
string Not Required

format: binary

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object [] Required

item Type: object

├─ {errNo} object Required Error code
├─ en string Required The error code corresponds in English
├─ zh_CN string Required The error code corresponds in Chinese
├─ pl string Required The error code corresponds in Polish

Get device real-time data (Deprecated)

Basic information

Path: /op/v0/device/real/query

Method: POST

Interface description:

Get the latest real-time data of the inverter, and get the real-time data of all devices under the name without specifying the SN
request body example:

{
  "sn": "***************",
  "variables": ["pvPower","pv1Current"]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
variables string [] Not Required If this parameter is not passed, all variable data is obtained by default item type: string

item Type: string

├─ Not Required Variable name Available variables can be queried through the Get Variables interface Remark:Variable name,available variables can be queried through the Get Variables interface
sn string Not Required Serial Number of Inverter If no parameter is specified, all devices are obtained

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object [] Required

item Type: object

├─ deviceSN string Required Serial Number of Inverter
├─ datas object [] Required

item Type: object

├─ variable string Required Variable name If the data is not found, it will not be returned
├─ unit string Required Unit
├─ name string Required Name in English
├─ value number Required Value
├─ time string Required Time of Data Update, utc time

Get device history data

Basic information

Path: /op/v0/device/history/query

Method: POST

Interface description:

The historical data within the specified 24 hours can be obtained(The begin time and end time are required). If no time period is specified, you can obtain the historical data of the last three days.
request body example:

{
  "sn": "***************",
  "variables": ["pvPower","pv1Current"],
  "begin": 1703548800000,
  "end": 1703635200000
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
variables string [] Not Required If this parameter is not passed, all variable data is obtained by default

item Type: string

├─ Not Required Variable name Available variables can be queried through the Get Variables interface Remark:Variable name,available variables can be queried through the Get Variables interface
sn string Required Serial Number of Inverter
begin number Not Required Start timestamp(milliseconds)
end number Not Required End timestamp(milliseconds)

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object [] Required

item Type: object

├─ deviceSN string Required Serial Number of Inverter
├─ datas object [] Required

item Type: object

├─ variable string Required Variable name
├─ unit string Required Unit of variable
├─ name string Required Name in English
├─ data object [] Required

item Type: object

├─ value number Required Value
├─ time string Required Time of Data Update, utc time

Get device production report

Basic information

Path: /op/v0/device/report/query

Method: POST

Interface description:

Obtain the inverter electricity consumption report. Calculated according to the time zone of the power station to which the inverter belongs.The monthly electricity consumption of the year is obtained, the daily electricity consumption of the month is obtained, and the hourly electricity consumption of the day is obtained
request body example:

{
  "sn": "***************",
  "year": 2023,
  "month": 10,
  "day": 3,
  "dimension": "day",
  "variables": ["generation","feedin","gridConsumption","chargeEnergyToTal","dischargeEnergyToTal","PVEnergyTotal"]
}
{
  "sn": "***************",
  "year": 2023,
  "month": 10,
  "dimension": "month",
  "variables": ["generation","feedin","gridConsumption","chargeEnergyToTal","dischargeEnergyToTal","PVEnergyTotal"]
}
{
  "sn": "***************",
  "year": 2023,
  "dimension": "year",
  "variables": ["generation","feedin","gridConsumption","chargeEnergyToTal","dischargeEnergyToTal"]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of the inverter
year integer Required year

Minimum value: 2020

month integer Not Required month

Maximum value: 12

Minimum value: 1

day integer Not Required day

Maximum value: 31

Minimum value: 1

dimension string Required Statistical dimension

Enumeration: year,month,day

variables string [] Required Query variable

item Type: string

├─ Not Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object [] Required

item Type: object

├─ variable string Required Variable name
├─ unit string Required Variable unit
├─ values number [] Required Variable value

item Type: number

├─ Not Required

Get device power generation

Basic information

Path: /op/v0/device/generation

Method: GET

Interface description:

Obtain the energy yield information of the inverter based on the time zone of the power station to which the inverter belongs

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required Serial number of inverter

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ today number Required Electricity generation of this today unit:kWh
├─ month number Required Electricity generation of this month unit:kWh
├─ cumulative number Required Cumulative power generation unit:kWh

Get the minimum soc settings for the battery of device

Basic information

Path: /op/v0/device/battery/soc/get

Method: GET

Interface description:

Obtain the inverter battery soc Settings

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required Serial number of Inverter

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required error number(When the result is not equal to zero, the request fails)
result object Required
├─ minSoc integer Required Minimum soc of system
├─ minSocOnGrid integer Required Battery discharge cutoff SOC in grid-connected state

Set the minmum soc for the battery of the device

Basic information

Path: /op/v0/device/battery/soc/set

Method: POST

Interface description:

Set the minmum soc for the battery of the device
request body example:

{
  "sn": "***************",
  "minSoc": 10,
  "minSocOnGrid": 10
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of inverter
minSoc integer Required Minimum soc of system

Maximum value: 100

Minimum value: 10

minSocOnGrid integer Required Battery discharge cutoff SOC in grid-connected state

Maximum value: 100

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required error number(When the result is not equal to zero, the request fails)
result object Required

Get the setting of battery charging time

Basic information

Path: /op/v0/device/battery/forceChargeTime/get

Method: GET

Interface description:

Obtain the setting of battery charging time

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required Serial number of inverter

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ enable1 string Required Whether the first segment is enabled
├─ startTime1 object Required The first period starts time
├─ hour integer Required
├─ minute integer Required
├─ endTime1 object Required The end time of the first period
├─ hour integer Required
├─ minute integer Required
├─ enable2 string Required Whether the second segment is enabled or not
├─ startTime2 object Required The second period starts time
├─ hour integer Required
├─ minute integer Required
├─ endTime2 object Required The end time of the second period
├─ hour integer Required
├─ minute integer Required

Set the battery charging time

Basic information

Path: /op/v0/device/battery/forceChargeTime/set

Method: POST

Interface description:

Set the battery charging time. The period must be two periods. Both periods must be delivered
request body :

{
  "sn": "sn_4e50c9b8a5c3",
  "enable1": false,
  "enable2": false,
  "startTime1": {
    "hour": 0,
    "minute": 0
  },
  "endTime1": {
    "hour": 0,
    "minute": 0
  },
  "startTime2": {
    "hour": 0,
    "minute": 0
  },
  "endTime2": {
    "hour": 0,
    "minute": 0
  }
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter
enable1 boolean Required Whether the first segment is enabled
enable2 boolean Required Whether the second segment is enabled or not
startTime1 object Required The first period starts time
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

endTime1 object Required The end time of the first period
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

startTime2 object Required The second period starts time
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

endTime2 object Required The end time of the second period
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Serial number of Inverter
├─ enable1 boolean Not Required Whether the first segment is enabled
├─ enable2 boolean Not Required Whether the second segment is enabled or not
├─ startTime1 object Not Required The first period starts time
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

├─ endTime1 object Not Required The end time of the first period
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

├─ startTime2 object Not Required The second period starts time
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

├─ endTime2 object Not Required The end time of the second period
├─ hour integer Required

Maximum value: 23

Minimum value: 0

├─ minute integer Required

Maximum value: 59

Minimum value: 0

Get the device settings item

Basic information

Path: /op/v0/device/setting/get

Method: POST

Interface description:

Obtain the device settings
request body :

{
  "sn": "sn_4e50c9b8a5c3",
  "key": "ExportLimit"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter
key string Required settings item

Enumeration: ExportLimit,MinSoc,MinSocOnGrid,MaxSoc,GridCode,WorkMode,ActivePowerLimit,ExportLimitPower,EpsOutPut,MaxSetChargeCurrent,MaxSetDischargeCurrent,ECOMode,Meter1Enable,Meter2Enable,SysSwitch,GroundProtection,LowPowerMode

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ value string Required setting value
├─ unit string Required unit
├─ precision number Required precision

Enumeration: 1,0.1,0.01

├─ range object Required
├─ min number Required minimum
├─ max number Required maximum

Set the device settings item

Basic information

Path: /op/v0/device/setting/set

Method: POST

Interface description:

Deliver device settings
request body :

{
  "sn": "sn_4e50c9b8a5c3",
  "key": "ExportLimit",
  "value": "13000"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter
key string Required settings item

Enumeration: ExportLimit,MinSoc,MinSocOnGrid,MaxSoc,GridCode,WorkMode,ActivePowerLimit,ExportLimitPower,EpsOutPut,MaxSetChargeCurrent,MaxSetDischargeCurrent,ECOMode,Meter1Enable,Meter2Enable,SysSwitch,GroundProtection,LowPowerMode

value string Required settings value

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Serial number of Inverter
├─ key string Not Required settings item

Enumeration: ExportLimit,MinSoc,MinSocOnGrid,MaxSoc,GridCode,WorkMode,ActivePowerLimit,ExportLimitPower,EpsOutPut,MaxSetChargeCurrent,MaxSetDischargeCurrent,ECOMode,Meter1Enable,Meter2Enable,SysSwitch,GroundProtection

├─ value string Not Required settings value

Get the device time

Basic information

Path: /op/v0/device/time/get

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object Required
├─ year string Required
├─ month string Required
├─ day string Required
├─ hour string Required
├─ second string Required
├─ minute string Required

Set the device time

Basic information

Path: /op/v0/device/time/set

Method: POST

Interface description:

Modify the device time
Note that the device's automatic time synchronization function will be disabled after modification

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter
year string Required
second string Required 0-59
minute string Required 0-59
hour string Required 0-23
day string Required 1-31
month string Required 1-12

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Serial number of Inverter
├─ year string Not Required
├─ second string Not Required 0-59
├─ minute string Not Required 0-59
├─ hour string Not Required 0-23
├─ day string Not Required 1-31
├─ month string Not Required 1-12

Get the device peakshaving settings

Basic information

Path: /op/v0/device/peakShaving/get

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ importLimit object Required
├─ value string Required setting value
├─ unit string Required unit
├─ precision number Required precision

Enumeration: 1,0.1,0.01

├─ range object Required
├─ min number Required minimum
├─ max number Required maximum
├─ soc object Required
├─ value string Required setting value
├─ unit string Required unit
├─ precision number Required precision

Enumeration: 1,0.1,0.01

├─ range object Required
├─ min number Required minimum
├─ max number Required maximum

Set the device peakshaving settings

Basic information

Path: /op/v0/device/peakShaving/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter
importLimit number Required
soc integer Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Serial number of Inverter
├─ importLimit number Not Required
├─ soc integer Not Required

Get the Meter Reader

Basic information

Path: /op/v0/device/getMeterReader

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ readerType number Required Electric meter reader type

Enumeration: 0,1,2,3,4,5,6,8,9,10,11,12

Enumeration note: Close meter reader connection, SolarmanPV, EARN-E, SHELLY, WIZARD, Chint, AECC, iometer, Shelly Pro EM-50, Powerfox, Shelly 3EM, Solakon

├─ readerStatus number Required Electric meter reader status

Enumeration: 0,1

Enumeration note: Electric meter data not obtained, Electric meter data has been obtained

├─ readerInfo object Required Electric meter reader info
├─ ip string Not Required ip address
├─ key string Not Required password for meter

Set the Meter Reader

Basic information

Path: /op/v0/device/setMeterReader

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number
readerType number Required Electric meter reader type

Enumeration: 0,1,2,3,4,5,6,8,9,10,11,12

Enumeration note: Close meter reader connection, SolarmanPV, EARN-E, SHELLY, WIZARD, Chint, AECC, iometer, Shelly Pro EM-50, Powerfox, Shelly 3EM, Solakon

readerInfo object Required Electric meter reader info
├─ ip string Not Required ip address
├─ key string Not Required password for meter

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Serial number
├─ readerType number Not Required Electric meter reader type

Enumeration: 0,1,2,3,4,5,6,8,9,10,11,12

Enumeration note: Close meter reader connection, SolarmanPV, EARN-E, SHELLY, WIZARD, Chint, AECC, iometer, Shelly Pro EM-50, Powerfox, Shelly 3EM, Solakon

├─ readerInfo object Not Required Electric meter reader info
├─ ip string Not Required ip address
├─ key string Not Required password for meter

Get battery heating Parameter

Basic information

Path: /op/v0/device/batteryHeating/get

Method: POST

Interface description:

response body example:

{
    "errno": 0,
    "msg": "Operation successful",
    "result": {
        "dataList": [
            {
                "unit": "",
                "precision": 1.0,
                "name": "time1EndHour",
                "range": {
                    "min": 0.0,
                    "max": 23.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "minEndTemperatureRange",
                "value": "10"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "maxStartTemperatureRange",
                "value": "9"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time2StartHour",
                "range": {
                    "min": 0.0,
                    "max": 23.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time1EndMinute",
                "range": {
                    "min": 0.0,
                    "max": 59.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time3StartHour",
                "range": {
                    "min": 0.0,
                    "max": 23.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "minStartTemperatureRange",
                "value": "1"
            },
            {
                "enumList": [
                    "disable",
                    "enable"
                ],
                "unit": "℃",
                "precision": 1.0,
                "name": "time2Enable",
                "value": "disable"
            },
            {
                "enumList": [
                    "disable",
                    "enable"
                ],
                "unit": "",
                "precision": 1.0,
                "name": "batteryWarmUpFunctionEnableFlag",
                "value": "disable"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time3EndMinute",
                "range": {
                    "min": 0.0,
                    "max": 59.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time2EndHour",
                "range": {
                    "min": 0.0,
                    "max": 23.0
                },
                "value": "0"
            },
            {
                "enumList": [
                    "disable",
                    "enable"
                ],
                "unit": "℃",
                "precision": 1.0,
                "name": "time3Enable",
                "value": "disable"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time1StartHour",
                "range": {
                    "min": 0.0,
                    "max": 23.0
                },
                "value": "0"
            },
            {
                "unit": "℃",
                "precision": 1.0,
                "name": "startTemperature",
                "value": "1"
            },
            {
                "enumList": [
                    "disable",
                    "enable"
                ],
                "unit": "",
                "precision": 1.0,
                "name": "time1Enable",
                "value": "disable"
            },
            {
                "enumList": [
                    "disable",
                    "enable"
                ],
                "unit": "",
                "precision": 1.0,
                "name": "batteryWarmUpEnable",
                "value": "disable"
            },
            {
                "unit": "℃",
                "precision": 1.0,
                "name": "endTemperature",
                "value": "10"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time3EndHour",
                "range": {
                    "min": 0.0,
                    "max": 23.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "maxEndTemperatureRange",
                "value": "15"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time2StartMinute",
                "range": {
                    "min": 0.0,
                    "max": 59.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time2EndMinute",
                "range": {
                    "min": 0.0,
                    "max": 59.0
                },
                "value": "0"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time1StartMinute",
                "range": {
                    "min": 0.0,
                    "max": 59.0
                },
                "value": "0"
            },
            {
                "enumList": [
                    "The battery is in a stopped warm up state",
                    "The battery is in a ready warm up state",
                    "The battery is in the warm up state",
                    "Battery is in self warm up state",
                    "The battery is in a ready stopped warm up state"
                ],
                "unit": "",
                "precision": 1.0,
                "name": "batteryWarmUpState",
                "value": "The battery is in a stopped warm up state"
            },
            {
                "unit": "",
                "precision": 1.0,
                "name": "time3StartMinute",
                "range": {
                    "min": 0.0,
                    "max": 59.0
                },
                "value": "0"
            }
        ]
    }
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required

Response Data

Name Type Is it required Default value Note Other information
errno number Not Required
msg string Not Required
result object Not Required
├─ dataList object [] Not Required

item Type: object

├─ unit string Not Required
├─ precision number Not Required
├─ name string Required
├─ range object Not Required
├─ min number Not Required
├─ max number Not Required
├─ value string Not Required
├─ enumList string [] Not Required

item Type: string

├─ Not Required

Set battery heating Parameter

Basic information

Path: /op/v0/device/batteryHeating/set

Method: POST

Interface description:

response body example:
{
    "errno": 0,
    "msg": "Operation successful",
    "result": null
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required device sn
batteryWarmUpEnable string Required Battery warm up enable
startTemperature string Required Start temperature
endTemperature string Required End temperature
time1Enable string Required Time1 enable
time1StartHour string Required Start time1 - hour
time1StartMinute string Required Start time1 - minute
time1EndHour string Required Ending time1 - hour
time1EndMinute string Required Ending time1 - minute
time2Enable string Required Time2 Enable
time2StartHour string Required Start time2 - hour
time2StartMinute string Required Start time2 - minute
time2EndHour string Required Ending time2 - hour
time2EndMinute string Required Ending time2 - minute
time3Enable string Required Time3 enable
time3StartHour string Required Start time3 - hour
time3StartMinute string Required Start time3 - minute
time3EndHour string Required Ending time3 - hour
time3EndMinute string Required Ending time3 - minute

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ sn string Not Required device sn
├─ batteryWarmUpEnable string Not Required Battery warm up enable
├─ startTemperature string Not Required Start temperature
├─ endTemperature string Not Required End temperature
├─ time1Enable string Not Required Time1 enable
├─ time1StartHour string Not Required Start time1 - hour
├─ time1StartMinute string Not Required Start time1 - minute
├─ time1EndHour string Not Required Ending time1 - hour
├─ time1EndMinute string Not Required Ending time1 - minute
├─ time2Enable string Not Required Time2 Enable
├─ time2StartHour string Not Required Start time2 - hour
├─ time2StartMinute string Not Required Start time2 - minute
├─ time2EndHour string Not Required Ending time2 - hour
├─ time2EndMinute string Not Required Ending time2 - minute
├─ time3Enable string Not Required Time3 enable
├─ time3StartHour string Not Required Start time3 - hour
├─ time3StartMinute string Not Required Start time3 - minute
├─ time3EndHour string Not Required Ending time3 - hour
├─ time3EndMinute string Not Required Ending time3 - minute

Get display sleep Paeameter

Basic information

Path: /op/v0/device/displaySleep/get

Method: POST

Interface description:

response body example:

{
    "errno": 0,
    "msg": "Operation successful",
    "result": {
        "displaySleepMode": {
            "unit": "",
            "precision": 1.0,
            "range": {
                "min": 0.0,
                "max": 1.0
            },
            "value": "true"
        },
        "displaySleepModeStartTimeHour": {
            "unit": "",
            "precision": 1.0,
            "range": {
                "min": 0.0,
                "max": 23.0
            },
            "value": "1"
        },
        "displaySleepModeEndTimeHour": {
            "unit": "",
            "precision": 1.0,
            "range": {
                "min": 0.0,
                "max": 23.0
            },
            "value": "5"
        },
        "displaySleepModeEndTimeMin": {
            "unit": "",
            "precision": 1.0,
            "range": {
                "min": 0.0,
                "max": 59.0
            },
            "value": "30"
        },
        "displaySleepModeStartTimeMin": {
            "unit": "",
            "precision": 1.0,
            "range": {
                "min": 0.0,
                "max": 59.0
            },
            "value": "10"
        }
    }
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required device sn

Response Data

Name Type Is it required Default value Note Other information
errno number Not Required
msg string Not Required
result object Not Required
├─ displaySleepMode object Not Required
├─ unit string Not Required
├─ precision number Not Required
├─ range object Not Required
├─ min number Not Required
├─ max number Not Required
├─ value string Not Required
├─ displaySleepModeStartTimeHour object Not Required
├─ unit string Not Required
├─ precision number Not Required
├─ range object Not Required
├─ min number Not Required
├─ max number Not Required
├─ value string Not Required
├─ displaySleepModeEndTimeHour object Not Required
├─ unit string Not Required
├─ precision number Not Required
├─ range object Not Required
├─ min number Not Required
├─ max number Not Required
├─ value string Not Required
├─ displaySleepModeEndTimeMin object Not Required
├─ unit string Not Required
├─ precision number Not Required
├─ range object Not Required
├─ min number Not Required
├─ max number Not Required
├─ value string Not Required
├─ displaySleepModeStartTimeMin object Not Required
├─ unit string Not Required
├─ precision number Not Required
├─ range object Not Required
├─ min number Not Required
├─ max number Not Required
├─ value string Not Required

Set display sleep Paeameter

Basic information

Path: /op/v0/device/displaySleep/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Device sn
displaySleepMode string Required Sleep mode
displaySleepModeStartTimeHour string Required The start time of SleepMode is hours
displaySleepModeStartTimeMin string Required The start time of SleepMode is minutes
displaySleepModeEndTimeHour string Required The end time of SleepMode is hours
displaySleepModeEndTimeMin string Required The end time of SleepMode is minutes

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Device sn
├─ displaySleepMode string Not Required Sleep mode
├─ displaySleepModeStartTimeHour string Not Required The start time of SleepMode is hours
├─ displaySleepModeStartTimeMin string Not Required The start time of SleepMode is minutes
├─ displaySleepModeEndTimeHour string Not Required The end time of SleepMode is hours
├─ displaySleepModeEndTimeMin string Not Required The end time of SleepMode is minutes

Get device boarding status

Basic information

Path: /op/v0/device/boarding/status

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Query

Parameter name Is it required Example Note
sn Required Device sn

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
msg string Required
result object Required
├─ status integer Required Represents the binding state. 0 for Pending Confirmation, 1 for Confirmed.

Enumeration: 0,1

Set device boarding status

Basic information

Path: /op/v0/device/boarding/status/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Device sn
status number Required Represents the binding state. 0 for Pending Confirmation, 1 for Confirmed.

Enumeration: 0,1

Response Data

Name Type Is it required Default value Note Other information
errno number Required
msg string Required
result object Required

Get Device Fault History

Basic information

Path: /op/v0/device/fault/history

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter
date string Required Target date for the query (Format: YYYY-MM-DD)

Response Data

Name Type Is it required Default value Note Other information
errno integer Required
result object Required
├─ sn string Required Serial number of Inverter
├─ faults object [] Required

item Type: object

├─ faultCode string Required fault code
├─ faultMessage string Required fault message
├─ timestamp number Required Unix timestamp (milliseconds) when the fault occurred.

Scheduler-V3

Batch set the time segment information_copy

Basic information

Path: /op/v3/device/scheduler/enable/batch

Method: POST

Interface description:

This API is used to batch configure Scheduler V3 time segment settings for multiple devices asynchronously.
The system first validates all request parameters, device serial numbers, and access permissions. The validation is all-or-nothing: if any device is invalid, unauthorized, or any scheduler time segment is invalid, the entire request is rejected and no task is submitted.
After validation succeeds, the system accepts the batch request, splits it into individual device tasks, and submits them for asynchronous execution. The API returns immediately with ACCEPTED; it does not wait for all devices to finish.
If notifyChannel is none, no completion notification is sent.
If notifyChannel is webhook, a webhook notification is sent after all device tasks are completed.
Webhook Signature Verification Steps

  1. Read X-Foxess-Timestamp, X-Foxess-Nonce, and X-Foxess-Signature.
  2. Reject the request if any of these headers are missing.
  3. Optionally reject the request if the timestamp is too old, for example older than 1 Hour.
  4. Build the string to sign: timestamp + "\n" + nonce + "\n" + rawBody
  5. Calculate HMAC-SHA256 using the webhook secret.
  6. Hex-encode the result in lowercase.
  7. Compare it with the value after sha256= in X-Foxess-Signature.
  8. Use constant-time comparison to avoid timing attacks.
  9. Use X-Foxess-Event-Id for idempotency. If the same event ID is received again, it should not be processed twice.

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
requestId string Not Required Client-generated idempotency ID for this batch request. Maximum length: 64 characters. If omitted, the system generates one. Reusing the same requestId for the same client/user is treated as a duplicate request.
notifyChannel string Required Completion notification channel. Supported values: none, webhook
deviceSNList string [] Required Device serial number list. The list must not be empty. All devices must exist and belong to the current user/client. If any device is invalid or unauthorized, the whole request is rejected. Current maximum: 50 devices.

item Type: string

├─ Not Required
groups object [] Required

item Type: object

├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode
├─ extraParam object Not Required
├─ minSocOnGrid number Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Not Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Not Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Not Required Max soc value
├─ importLimit number Not Required Import Limit
├─ exportLimit number Not Required Export Limit
├─ pvLimit number Not Required PV Limit
├─ reactivePower number Not Required Reactive Power Limit
isDefault boolean Not Required Whether to reset unspecified extra parameters to system defaults. false: unspecified extraParam fields remain unchanged. true: unspecified extraParam fields are restored to system defaults.
webhook object Not Required Temporary webhook configuration is used for request-level webhook overrides, primarily intended for development and debugging purposes. For enhanced security and reliability in production, we recommend registering your webhook configurations directly within our platform.
├─ url string Not Required Temporary webhook callback URL. Must be HTTPS. Required if notifyChannel=webhook
├─ secret string Not Required Temporary webhook signing secret. Required when webhook.url is used. This secret is used to generate the webhook signature.

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ requestId string Not Required The idempotency ID of this batch request. If the client did not provide one, the system returns the generated ID.
├─ status boolean Not Required false Batch request acceptance status. Current value: ACCEPTED, meaning the request has passed validation and has been submitted for asynchronous execution.
├─ total string Required Total number of devices accepted in this batch request.
├─ accepted string Required Number of device tasks successfully submitted for asynchronous processing.

Get the time segment information

Basic information

Path: /op/v3/device/scheduler/get

Method: POST

Interface description:
Get timing mode segment information
request body example:

{
    "deviceSN": "**************"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required error number(When the result is not equal to zero, the request fails)
msg string Required Error message
result object Required
├─ enable string Required State of master switch (0:off 1:on)
├─ groups object [] Required

item Type: object

├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode

Enumeration: SelfUse,Feedin,Backup,ForceCharge,ForceDischarge

├─ extraParam object Not Required
├─ minSocOnGrid number Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Not Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Not Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Not Required Max soc value
├─ importLimit number Not Required Import Limit
├─ exportLimit number Not Required Export Limit
├─ pvLimit number Not Required PV Limit
├─ reactivePower number Not Required Reactive Power Limit
├─ properties object Required Range for each field in the group time period
├─ {field_name} object Required
├─ unit string Required unit
├─ precision number Required precision

Enumeration: 1,0.1,0.01

├─ range object Required
├─ min number Required minimum
├─ max number Required maximum
├─ maxGroupCount number Required Maximum number of groups supported by the current device

Set the time segment information

Basic information

Path: /op/v3/device/scheduler/enable

Method: POST

Interface description:
Set the time segment information of the timing mode

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device
isDefault boolean Not Required false - false: Parameters not provided in `extraParam` remain unchanged. - true: Parameters not provided in `extraParam` are restored to system defaults.
groups object [] Required

item Type: object

├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode

Enumeration: SelfUse,Feedin,Backup,ForceCharge,ForceDischarge

├─ extraParam object Not Required
├─ minSocOnGrid number Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Not Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Not Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Not Required Max soc value
├─ importLimit number Not Required Import Limit
├─ exportLimit number Not Required Export Limit
├─ pvLimit number Not Required PV Limit
├─ reactivePower number Not Required Reactive Power Limit

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ deviceSN string Not Required Serial number of device
├─ isDefault boolean Not Required false - false: Parameters not provided in `extraParam` remain unchanged. - true: Parameters not provided in `extraParam` are restored to system defaults.
├─ groups object [] Not Required

item Type: object

├─ startHour integer Not Required Start time - hour
├─ startMinute integer Not Required Start time - minute
├─ endHour integer Not Required Ending time - hour
├─ endMinute integer Not Required Ending time - minute
├─ workMode string Not Required Working mode
├─ extraParam object Not Required
├─ minSocOnGrid number Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Not Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Not Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Not Required Max soc value
├─ importLimit number Not Required Import Limit
├─ exportLimit number Not Required Export Limit
├─ pvLimit number Not Required PV Limit
├─ reactivePower number Not Required Reactive Power Limit

Scheduler-V2

Get the time segment information

Basic information

Path: /op/v2/device/scheduler/get

Method: POST

Interface description:
Get timing mode segment information
request body example:

{
    "deviceSN": "**************"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required error number(When the result is not equal to zero, the request fails)
msg string Required Error message
result object Required
├─ enable string Required State of master switch (0:off 1:on)
├─ groups object [] Required

item Type: object

├─ enable integer Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode

Enumeration: SelfUse,Feedin,Backup,ForceCharge,ForceDischarge

├─ extraParam object Required
├─ minSocOnGrid number Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Required Max soc value
├─ importLimit number Required Import Limit
├─ exportLimit number Required Export Limit
├─ pvLimit number Required PV Limit
├─ reactivePower number Required Reactive Power Limit
├─ properties object Required Range for each field in the group time period
├─ {field_name} object Required
├─ unit string Required unit
├─ precision number Required precision

Enumeration: 1,0.1,0.01

├─ range object Required
├─ min number Required minimum
├─ max number Required maximum

Set the time segment information

Basic information

Path: /op/v2/device/scheduler/enable

Method: POST

Interface description:
Set the time segment information of the timing mode
2025-12-25: Add the parameter extraParamDefaultValueSwitch, and make the parameters in extraParam optional (non-mandatory).

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device
isDefault boolean Not Required false - false: Parameters not provided in `extraParam` remain unchanged. - true: Parameters not provided in `extraParam` are restored to system defaults.
groups object [] Required

item Type: object

├─ enable integer Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode

Enumeration: SelfUse,Feedin,Backup,ForceCharge,ForceDischarge

├─ extraParam object Not Required
├─ minSocOnGrid number Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Not Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Not Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Not Required Max soc value
├─ importLimit number Not Required Import Limit
├─ exportLimit number Not Required Export Limit
├─ pvLimit number Not Required PV Limit
├─ reactivePower number Not Required Reactive Power Limit

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ deviceSN string Not Required Serial number of device
├─ isDefault boolean Not Required false - false: Parameters not provided in `extraParam` remain unchanged. - true: Parameters not provided in `extraParam` are restored to system defaults.
├─ groups object [] Not Required

item Type: object

├─ enable integer Not Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Not Required Start time - hour
├─ startMinute integer Not Required Start time - minute
├─ endHour integer Not Required Ending time - hour
├─ endMinute integer Not Required Ending time - minute
├─ workMode string Not Required Working mode
├─ extraParam object Not Required
├─ minSocOnGrid number Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc number Not Required The FC/FDSoC is the SoC level set for the system when operating in Force Charge/Force Discharge Mode. Once the battery reaches this SoC, the system will automatically stop charging or discharging.
├─ fdPwr number Not Required The FC/FDPwr defines the maximum charging or discharging power allowed when the system is in Force Charge/Force Discharge Mode. The maximum AC input power the system can draw from the grid to charge the battery in Force Charge. The maximum AC output power the system is allowed to deliver during Forced Discharge.
├─ maxSoc number Not Required Max soc value
├─ importLimit number Not Required Import Limit
├─ exportLimit number Not Required Export Limit
├─ pvLimit number Not Required PV Limit
├─ reactivePower number Not Required Reactive Power Limit

Scheduler-V1

Get the main switch status

Basic information

Path: /op/v1/device/scheduler/get/flag

Method: POST

Interface description:

Obtain the timing mode switch status
request body example:

{
    "deviceSN": "**************"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required Error message
result object Required
├─ support boolean Required Whether the timing function is supported
├─ enable boolean Required Whether to enable the timing function

Set the main switch status

Basic information

Path: /op/v1/device/scheduler/set/flag

Method: POST

Interface description:

Set the timing mode switch
request body example:

{
    "deviceSN": "**************",
    "enable": 1
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device
enable integer Required Whether the switch is on 0:disable 1:enable

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ deviceSN string Not Required Serial number of device
├─ enable integer Not Required Whether the switch is on 0:disable 1:enable

Get the time segment information

Basic information

Path: /op/v1/device/scheduler/get

Method: POST

Interface description:
Get timing mode segment information
request body example:

{
    "deviceSN": "**************"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required error number(When the result is not equal to zero, the request fails)
msg string Required Error message
result object Required
├─ enable string Required State of master switch (0:off 1:on)
├─ groups object [] Required

item Type: object

├─ enable integer Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode

Enumeration: SelfUse,Feedin,Backup,ForceCharge,ForceDischarge

├─ minSocOnGrid integer Required The minimum soc value of the offline battery
├─ fdSoc integer Required Discharge soc value
├─ fdPwr integer Required The maximum discharge power value
├─ maxSoc string Required Max soc value
├─ properties object Required Range for each field in the group time period
├─ {field_name} object Required
├─ unit string Required unit
├─ precision number Required precision

Enumeration: 1,0.1,0.01

├─ range object Required
├─ min number Required minimum
├─ max number Required maximum

Set the time segment information

Basic information

Path: /op/v1/device/scheduler/enable

Method: POST

Interface description:
Set the time segment information of the timing mode
request body example:

{
  "deviceSN": "*************",
  "groups": [
    {
      "enable": 1,
      "startHour": 0,
      "startMinute": 0,
      "endHour": 5,
      "endMinute": 0,
      "workMode": "SelfUse",
      "minSocOnGrid": 10,
      "fdSoc": 90,
      "fdPwr": 3000,
      "maxSoc": 100
    },
    {
      "enable": 1,
      "startHour": 6,
      "startMinute": 0,
      "endHour": 17,
      "endMinute": 0,
      "workMode": "Feedin",
      "minSocOnGrid": 10,
      "fdSoc": 90,
      "fdPwr": 3000,
      "maxSoc": 100
    }
  ]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device
groups object [] Required

item Type: object

├─ enable integer Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Required Start time - hour
├─ startMinute integer Required Start time - minute
├─ endHour integer Required Ending time - hour
├─ endMinute integer Required Ending time - minute
├─ workMode string Required Working mode

Enumeration: SelfUse,Feedin,Backup,ForceCharge,ForceDischarge

├─ minSocOnGrid integer Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc integer Required Discharge soc range value of fdsoc must be equal or greater than minSocOnGrid
├─ fdPwr number Required The maximum discharge power
├─ maxSoc integer Not Required The maximum soc

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ deviceSN string Not Required Serial number of device
├─ groups object [] Not Required

item Type: object

├─ enable integer Not Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Not Required Start time - hour
├─ startMinute integer Not Required Start time - minute
├─ endHour integer Not Required Ending time - hour
├─ endMinute integer Not Required Ending time - minute
├─ workMode string Not Required Working mode
├─ minSocOnGrid integer Not Required Battery discharge cutoff SOC in grid-connected state
├─ fdSoc integer Not Required Discharge soc range value of fdsoc must be equal or greater than minSocOnGrid
├─ fdPwr number Not Required The maximum discharge power
├─ maxSoc integer Not Required The maximum soc

Scheduler

Get the main switch status (Deprecated)

Basic information

Path: /op/v0/device/scheduler/get/flag

Method: POST

Interface description:

Obtain the timing mode switch status
request body example:

{
    "deviceSN": "**************"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required Error message
result object Required
├─ support integer Required Whether the timing function is supported(0:nonsupport 1:support) 0:nonsupport 1:support
├─ enable integer Required Whether to enable the timing function(0:disable 1:enable) 0:disable 1:enable

Get the time segment information (Deprecated)

Basic information

Path: /op/v0/device/scheduler/get

Method: POST

Interface description:

Get timing mode segment information
request body example:

{
    "deviceSN": "**************"
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device

Response Data

Name Type Is it required Default value Note Other information
errno integer Required error number(When the result is not equal to zero, the request fails)
msg string Required Error message
result object Required
├─ enable string Required State of master switch (0:off 1:on)
├─ groups object [] Required

item Type: object

├─ enable integer Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Required Start time - hour(The value is between 0 and 23)
├─ startMinute integer Required Start time - minute(The value is between 0 and 59)
├─ endHour integer Required Ending time - hour(The value is between 0 and 23)
├─ endMinute integer Required Ending time - minute(The value is between 0 and 59)
├─ workMode string Required Working mode(SelfUse,Feedin,Backup,ForceCharge,ForceDischarge)
├─ minSocOnGrid integer Required socThe minimum soc value of the offline battery
├─ fdSoc integer Required Discharge soc value
├─ fdPwr integer Required The maximum discharge power value

Set the main switch status (Deprecated)

Basic information

Path: /op/v0/device/scheduler/set/flag

Method: POST

Interface description:

Set the timing mode switch
request body example:

{
    "deviceSN": "**************",
    "enable": 1
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device
enable integer Required Whether the switch is on 0:disable 1:enable

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ deviceSN string Not Required Serial number of device
├─ enable integer Not Required Whether the switch is on 0:disable 1:enable

Set the time segment information (Deprecated)

Basic information

Path: /op/v0/device/scheduler/enable

Method: POST

Interface description:

Set the time segment information of the timing mode
request body example:

{
  "deviceSN": "*************",
  "groups": [
    {
      "enable": 1,
      "startHour": 0,
      "startMinute": 0,
      "endHour": 5,
      "endMinute": 0,
      "workMode": "SelfUse",
      "minSocOnGrid": 10,
      "fdSoc": 90,
      "fdPwr": 3000
    },
    {
      "enable": 1,
      "startHour": 6,
      "startMinute": 0,
      "endHour": 17,
      "endMinute": 0,
      "workMode": "Feedin",
      "minSocOnGrid": 10,
      "fdSoc": 90,
      "fdPwr": 3000
    }
  ]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
deviceSN string Required Serial number of device
groups object [] Required

item Type: object

├─ enable integer Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Required Start time - hour(The value is between 0 and 23)
├─ startMinute integer Required Start time - minute(The value is between 0 and 59)
├─ endHour integer Required Ending time - hour(The value is between 0 and 23)
├─ endMinute integer Required Ending time - minute(The value is between 0 and 59)
├─ workMode string Required Working mode(SelfUse,Feedin,Backup,ForceCharge,ForceDischarge)
├─ minSocOnGrid integer Required The minimum soc range of the offline battery is between 10 and 100
├─ fdSoc integer Required Discharge soc range between 0 and 100,value of fdsoc must be equal or greater than minSocOnGrid value of fdsoc must be equal or greater than minSocOnGrid
├─ fdPwr number Required The maximum discharge power ranges between 0 and 6000

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ deviceSN string Not Required Serial number of device
├─ groups object [] Not Required

item Type: object

├─ enable integer Not Required Whether to enable this group setting(0:disable 1:enable)
├─ startHour integer Not Required Start time - hour(The value is between 0 and 23)
├─ startMinute integer Not Required Start time - minute(The value is between 0 and 59)
├─ endHour integer Not Required Ending time - hour(The value is between 0 and 23)
├─ endMinute integer Not Required Ending time - minute(The value is between 0 and 59)
├─ workMode string Not Required Working mode(SelfUse,Feedin,Backup,ForceCharge,ForceDischarge)
├─ minSocOnGrid integer Not Required The minimum soc range of the offline battery is between 10 and 100
├─ fdSoc integer Not Required Discharge soc range between 0 and 100,value of fdsoc must be equal or greater than minSocOnGrid value of fdsoc must be equal or greater than minSocOnGrid
├─ fdPwr number Not Required The maximum discharge power ranges between 0 and 6000

Data Logger

Get Data Logger list

Basic information

Path: /op/v0/module/list

Method: POST

Interface description:

Obtain the collector list of this account
request body example:

{
  "currentPage": 1,
  "pageSize": 10
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Maximum value: 1000

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total
├─ data object [] Required

item Type: object

├─ moduleSN string Required Serial number of Data Logger
├─ stationID string Required Id of power station
├─ status integer Required Status of collector

Enumeration: 1,2

Enumeration note: 1:online 2:offline

├─ signal integer Required Signal strength

Maximum value: 100

Minimum value: 0

├─ webVersion string Required -- Web Version
├─ softVersion string Required -- Soft Version

Get Data Logger Details

Basic information

Path: /op/v0/module/detail

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ moduleSN string Required Serial number of Data Logger
├─ stationID string Required Id of power station
├─ status integer Required Status of collector

Enumeration: 1,2

Enumeration note: 1:online 2:offline

├─ signal integer Required Signal strength

Maximum value: 100

Minimum value: 0

├─ webVersion string Required -- Web Version
├─ softVersion string Required -- Soft Version

Get Data Logger Signal

Basic information

Path: /op/v0/module/getSignal

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ timestamp integer Required Data recording timestamp
├─ signal integer Required Signal strength in dBm

Modbus Commands

Basic information

Path: /op/v0/module/modbus/commands

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required
timeout number Not Required Timeout duration, in seconds. Default: 10s
data string Required The data content to be distributed, base64-encoded (including headers and trailers)

Response Data

Name Type Is it required Default value Note Other information
errno number Required
msg string Required
result object Required
├─ data string Required

Get Data Logger Wifi Info

Basic information

Path: /op/v0/module/getWifiInfo

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ ssid string Required The name of the Wi-Fi network
├─ ip string Required The IP address
├─ gateway string Required The IP address of the network gateway
├─ mask string Required The subnet mask used to identify the network segment

Get Data Logger Lan Info

Basic information

Path: /op/v0/module/getLanInfo

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ ip string Required The IP address
├─ gateway string Required The IP address of the network gateway
├─ mask string Required The subnet mask used to identify the network segment

EMS

Get Ems list

Basic information

Path: /op/v0/ems/list

Method: POST

Interface description:

Obtain the ems list of this account
request body example:

{
  "currentPage": 1,
  "pageSize": 10
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Maximum value: 1000

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total
├─ data object [] Required

item Type: object

├─ emsID string Required Id of Ems
├─ emsSN string Required Serial number of Ems
├─ plantID string Required Id of power station
├─ productType string Required product type
├─ status string Required Status of Ems

Enumeration: 0,1

Enumeration note: online offline

Get Ems real-time data

Basic information

Path: /op/v0/ems/real/query

Method: POST

Interface description:

Get the latest real-time data of the inverter. The sn array is mandatory and returns only the result set belonging to the current user. If no variable is specified, all variables are queried
request body example:

{
  "sns": ["***************","***************","***************"],
  "variables": ["totalFeedinPower","totalLoadsPower"]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
variables string [] Required Search variables item type: string

item Type: string

├─ Not Required Variable name Available variables can be queried through the Get Variables interface
sns string [] Required Serial Number of Ems Remark:Can transmit up to 50 Serial Number

item Type: string

├─ Not Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object [] Required

item Type: object

├─ emsSN string Required Serial Number of Ems
├─ time string Required Time of Data Update, utc time
├─ datas object [] Required

item Type: object

├─ variable string Required Variable name If the data is not found, it will not be returned
├─ unit string Required Unit
├─ name string Required Name in English
├─ value string Required Value

Get Ems history data

Basic information

Path: /op/v0/ems/history/query

Method: POST

Interface description:

Get the latest real-time data of the inverter. The sn array is mandatory and returns only the result set belonging to the current user. If no variable is specified, all variables are queried
request body example:

{
  "sn": "***************",
  "variables": ["totalFeedinPower","totalLoadsPower"],
  "begin": xxxxxx,
  "end": xxxxxx
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
variables string [] Required Search variables item type: string

item Type: string

├─ Not Required Variable name Available variables can be queried through the Get Variables interface
sn string Required Serial Number of Ems
begin number Not Required The start timestamp for the query(milliseconds) The time range between begin and end must not exceed 24 hours.
end number Not Required The end timestamp for the query(milliseconds) The time range between begin and end must not exceed 24 hours.

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object [] Required

item Type: object

├─ emsSN string Required Serial Number of Ems
├─ datas object [] Required

item Type: object

├─ variable string Required Variable name If the data is not found, it will not be returned
├─ unit string Required Unit
├─ name string Required Name in English
├─ data object [] Required

item Type: object

├─ time string Required Time of Data Update
├─ value number Required Value

Get Ems System Setting

Basic information

Path: /op/v0/ems/setting/system/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
emsID Required

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required title
├─ general object Required
├─ drm boolean Required
├─ rippleControl boolean Required
├─ dataReportingCycle integer Required 200-60000 ms
├─ parallelControl object Required
├─ enable boolean Required
├─ controlMode string Required
├─ controlPercentage integer Required
├─ dataReportingCycle number Required 0.1-10 s
├─ powerLimit object Required
├─ enable boolean Required
├─ exportPowerLimit integer Required
├─ importPowerLimit integer Required
├─ feedinPowerLimit integer Required

Set Ems System Setting

Basic information

Path: /op/v0/ems/setting/system/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
emsID string Required
general object Required
├─ drm boolean Required
├─ rippleControl boolean Required
├─ dataReportingCycle integer Required 200-60000 ms
parallelControl object Required
├─ enable boolean Required
├─ controlMode string Required

Enumeration: totalPowerControl,maximumSinglePowerControl

Enumeration note:

├─ controlPercentage integer Required 0-100%
├─ dataReportingCycle number Required 0.1-10 s
powerLimit object Required
├─ enable boolean Required
├─ exportPowerLimit integer Required
├─ importPowerLimit integer Required
├─ feedinPowerLimit integer Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ emsID string Not Required
├─ general object Not Required
├─ drm boolean Required
├─ rippleControl boolean Required
├─ dataReportingCycle integer Required 200-60000 ms
├─ parallelControl object Not Required
├─ enable boolean Required
├─ controlMode string Required

Enumeration: totalPowerControl,maximumSinglePowerControl

Enumeration note:

├─ controlPercentage integer Required 0-100%
├─ dataReportingCycle number Required 0.1-10 s
├─ powerLimit object Not Required
├─ enable boolean Required
├─ exportPowerLimit integer Required
├─ importPowerLimit integer Required
├─ feedinPowerLimit integer Required

Get Ems Rate Setting

Basic information

Path: /op/v0/ems/setting/rate/get

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
emsID string Required
port integer Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ dataBit integer Required 数据位 5-8
├─ stopBit number Required 停止位 1或1.5或2
├─ parityBit integer Required 校验位 0:无校验位 2:偶校验 1:奇校验
├─ rate integer Required 波特率 9600-115200 RequiredRequired1200的倍数

Set Ems Rate Setting

Basic information

Path: /op/v0/ems/setting/rate/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
emsID string Required
port integer Required 端口号
rate integer Required 波特率 9600-115200 RequiredRequired1200的倍数
dataBit integer Required 数据位 5-8
stopBit number Required 停止位 1或1.5或2
parityBit integer Required 校验位 0:无校验位 2:偶校验 1:奇校验

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ emsID string Not Required
├─ port integer Not Required 端口号
├─ rate integer Not Required 波特率 9600-115200 RequiredRequired1200的倍数
├─ dataBit integer Not Required 数据位 5-8
├─ stopBit number Not Required 停止位 1或1.5或2
├─ parityBit integer Not Required 校验位 0:无校验位 2:偶校验 1:奇校验

Set Ems Ac Output Control Setting

Basic information

Path: /op/v0/ems/setting/acOutput/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required ems SN
drmEnable string Required

Enumeration: disable,enable

rippleControl string Required

Enumeration: disable,enable

rippleControlPiecewise1 string Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false
rippleControlPiecewise2 string Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false
rippleControlPiecewise3 string Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false
rippleControlPiecewise4 string Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ sn string Not Required ems SN
├─ drmEnable string Not Required

Enumeration: disable,enable

├─ rippleControl string Not Required

Enumeration: disable,enable

├─ rippleControlPiecewise1 string Not Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false
├─ rippleControlPiecewise2 string Not Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false
├─ rippleControlPiecewise3 string Not Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false
├─ rippleControlPiecewise4 string Not Required The value must be a decimal between 0 and 100. It has no effect when rippleControl is set to false

Get Ems Ac Output Control Setting

Basic information

Path: /op/v0/ems/setting/acOutput/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ drmEnable object Required
├─ value string Required
├─ enumList string [] Required Possible values for value

item Type: string

├─ Not Required
├─ rippleControl object Required
├─ value string Required
├─ enumList string [] Required Possible values for value

item Type: string

├─ Not Required
├─ rippleControlPiecewise1 object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ rippleControlPiecewise2 object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ rippleControlPiecewise3 object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ rippleControlPiecewise4 object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required

Set Ems Power Limit Control Setting

Basic information

Path: /op/v0/ems/setting/powerLimit/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required ems SN
powerLimitEnable string Required

Enumeration: enable,disable

gridExportLimit string Required Unit:W
gridImportLimit string Required Unit:W
gridExportLimitForPeakShaving string Required Unit:W
batterySocLimitForPeakShaving string Required Unit:%
acOutputExportLimit string Required Unit:W

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ sn string Not Required ems SN
├─ powerLimitEnable string Not Required

Enumeration: enable,disable

├─ gridExportLimit string Not Required Unit:W
├─ gridImportLimit string Not Required Unit:W
├─ gridExportLimitForPeakShaving string Not Required Unit:W
├─ batterySocLimitForPeakShaving string Not Required Unit:%
├─ acOutputExportLimit string Not Required Unit:W

Get Ems Power Limit Control Setting

Basic information

Path: /op/v0/ems/setting/powerLimit/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ powerLimitEnable object Required
├─ value string Required
├─ enumList string [] Required Possible values for value

item Type: string

├─ Not Required
├─ gridExportLimit object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ gridImportLimit object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ gridExportLimitForPeakShaving object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ batterySocLimitForPeakShaving object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ acOutputExportLimit object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required

Set Ems More Setting

Basic information

Path: /op/v0/ems/setting/more/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required ems SN
controlMode string Required

Enumeration: singlePhase,threePhase

controlCycle string Required
gridExportControlDelta string Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ sn string Not Required ems SN
├─ controlMode string Not Required

Enumeration: singlePhase,threePhase

├─ controlCycle string Not Required
├─ gridExportControlDelta string Not Required

Get Ems More Setting

Basic information

Path: /op/v0/ems/setting/more/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ controlMode object Required
├─ value string Required
├─ enumList string [] Required Possible values for value

item Type: string

├─ Not Required
├─ controlCycle object Required Possible values for value
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ gridExportControlDelta object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required

Set Ems Gen Setting

Basic information

Path: /op/v0/ems/setting/gen/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required ems sn
genEnable string Required

Enumeration: disable,enable

startSoc string Required
stopSoc string Required
genCharge string Required
judgeTime string Required
minimumResetTime string Required
meterCompensation string Not Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ sn string Not Required ems sn
├─ genEnable string Not Required

Enumeration: disable,enable

├─ startSoc string Not Required
├─ stopSoc string Not Required
├─ genCharge string Not Required
├─ judgeTime string Not Required
├─ minimumResetTime string Not Required
├─ meterCompensation string Not Required

Get Ems Gen Setting

Basic information

Path: /op/v0/ems/setting/gen/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Query

Parameter name Is it required Example Note
sn Required

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ genEnable object Required
├─ value string Required
├─ enumList string [] Required Possible values for value

item Type: string

├─ Not Required
├─ startSoc object Required Possible values for value
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ stopSoc object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ genCharge object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ judgeTime object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ minimumResetTime object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required Valid range
├─ min number Required
├─ max number Required
├─ meterCompensation object Not Required
├─ value string Required
├─ unit string Required
├─ precision string Required
├─ range object Required
├─ min number Required
├─ max number Required

Meter

Get meter list

Basic information

Path: /op/v0/gw/list

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total
├─ data object [] Required

item Type: object

├─ sn string Required Serial number of the meter
├─ stationID string Required Id of power station
├─ stationName string Required Name of power station
├─ status integer Required Status of meter

Enumeration: 1,2,3

Enumeration note: 1:online 2:fault 3:offline

Get the device settings item

Basic information

Path: /op/v0/gw/setting/get

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial number of Inverter

Response Data

Name Type Is it required Default value Note Other information
errno number Required
result object Required
├─ mode object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ feedinPower object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ outputMaxCurrent object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ inputMaxCurrent object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ overVoltageMaxValue object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ underVoltageMinValue object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ sysOnOffPowerValue object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required
├─ deviceQuantity object Required
├─ value string Required
├─ unit string Required
├─ precision number Required
├─ range object Required
├─ min number Required
├─ max number Required
├─ enumList string [] Required

item Type: string

├─ Not Required

Set the device settings item

Basic information

Path: /op/v0/gw/setting/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required
mode string Required
feedinPower string Not Required Only available in non-normal mode
outputMaxCurrent string Not Required Only available in G100mode
inputMaxCurrent string Not Required Only available in G100mode
overVoltageMaxValue string Not Required Only available in G100mode
underVoltageMinValue string Not Required Only available in G100mode
sysOnOffPowerValue string Not Required Only available in G100mode

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required
├─ mode string Not Required
├─ feedinPower string Not Required Only available in non-normal mode
├─ outputMaxCurrent string Not Required Only available in G100mode
├─ inputMaxCurrent string Not Required Only available in G100mode
├─ overVoltageMaxValue string Not Required Only available in G100mode
├─ underVoltageMinValue string Not Required Only available in G100mode
├─ sysOnOffPowerValue string Not Required Only available in G100mode

Heat

Heat Pump Register

Basic information

Path: /op/v0/heat/register

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
sn string Required Outdoor Unit of Heat Pump SN

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
msg string Required
result object Required title
├─ sn string Not Required Outdoor Unit of Heat Pump SN

Heat Pump Register List

Basic information

Path: /op/v0/register/heat/list

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Minimum value: 10

sn string Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total
├─ data object [] Required

item Type: object

├─ heatSN string Required Serial number of the Heat
├─ moduleSN string Required Module Serial number
├─ registerStatus string Required Register Status
├─ runningStatus integer Required Status of Heat(1、online;2、error;3 offline))

Enumeration: 1,2,3

Enumeration note: 1:online 2:fault 3:offline

├─ masterVersion string Required version
├─ deviceType string Required deviceType of The Heat

Heat Pump Register Status Change

Basic information

Path: /op/v0/heat/register/status/change

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required

Body

Name Type Is it required Default value Note Other information
sn string Required Outdoor Unit of Heat Pump SN
status string Required pending、approved、revoked

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ sn string Not Required Outdoor Unit of Heat Pump SN
├─ status string Not Required pending、approved、revoked

dhwControlsGet

Basic information

Path: /op/v0/heat/dhwControls/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Query

Parameter name Is it required Example Note
moduleSn Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result object Not Required
├─ enable boolean Not Required Master switch to enable or disable the entire DHW function.
├─ timer object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of timer entries. A maximum of 6 time periods are supported. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ dhwTemp number Not Required Target temperature for domestic hot water (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ bivalencePoint object Not Required
├─ electricHeatingWaterEnvironmentalTemp number Not Required Ambient temperature threshold (°C) for the main heat source (e.g., heat pump). If the ambient temperature falls below this value, the auxiliary heater may be triggered. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ hotWaterElectricHeatingAmbientTemp number Not Required Ambient temperature threshold (°C) specifically for DHW auxiliary electric heating. Determines if the dedicated DHW electric heater should be enabled. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ auxiliaryHeaterSettings object Not Required
├─ electricHeatingControl boolean Not Required Master control switch for the DHW auxiliary electric heater.
├─ hotWaterElectricHeatingEnable boolean Not Required Function enable switch for the DHW auxiliary electric heater.

dhwControlsSet

Basic information

Path: /op/v0/heat/dhwControls/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
moduleSn string Required
data object Required
├─ enable boolean Not Required Master switch to enable or disable the entire DHW function.
├─ timer object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of timer entries. A maximum of 6 time periods are supported. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ dhwTemp number Not Required Target temperature for domestic hot water (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ bivalencePoint object Not Required
├─ electricHeatingWaterEnvironmentalTemp number Not Required Ambient temperature threshold (°C) for the main heat source (e.g., heat pump). If the ambient temperature falls below this value, the auxiliary heater may be triggered. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ hotWaterElectricHeatingAmbientTemp number Not Required Ambient temperature threshold (°C) specifically for DHW auxiliary electric heating. Determines if the dedicated DHW electric heater should be enabled. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ auxiliaryHeaterSettings object Not Required
├─ electricHeatingControl boolean Not Required Master control switch for the DHW auxiliary electric heater.
├─ hotWaterElectricHeatingEnable boolean Not Required Function enable switch for the DHW auxiliary electric heater.

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result Not Required

genericControlsGet

Basic information

Path: /op/v0/heat/genericControls/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Query

Parameter name Is it required Example Note
moduleSn Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result object Not Required
├─ holiday object Not Required
├─ away object Not Required
├─ enable boolean Not Required Enable or disable the 'Holiday Away' mode.
├─ startYear integer Not Required Start year for 'Holiday Away' mode.
├─ startMonth integer Not Required Start month for 'Holiday Away' mode.

Maximum value: 12

Minimum value: 1

├─ startDay integer Not Required Start day for 'Holiday Away' mode.

Maximum value: 31

Minimum value: 1

├─ endYear integer Not Required End year for 'Holiday Away' mode.
├─ endMonth integer Not Required End month for 'Holiday Away' mode.

Maximum value: 12

Minimum value: 1

├─ endDay integer Not Required End day for 'Holiday Away' mode.

Maximum value: 31

Minimum value: 1

├─ heatingModeEnable boolean Not Required Enable or disable heating function during 'Holiday Away' mode.
├─ heatingTemp number Not Required Target heating temperature (°C) during 'Holiday Away' mode. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ dhwModeEnable boolean Not Required Enable or disable Domestic Hot Water (DHW) function during 'Holiday Away' mode.
├─ dhwTemp number Not Required Target DHW temperature (°C) during 'Holiday Away' mode. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ disinfect boolean Not Required Enable or disable the disinfection function during 'Holiday Away' mode.
├─ home object Not Required
├─ enable boolean Not Required Enable or disable the 'Holiday Home' mode.
├─ startYear integer Not Required Start year for 'Holiday Home' mode.
├─ startMonth integer Not Required Start month for 'Holiday Home' mode.

Maximum value: 12

Minimum value: 1

├─ startDay integer Not Required Start day for 'Holiday Home' mode.

Maximum value: 31

Minimum value: 1

├─ endYear integer Not Required End year for 'Holiday Home' mode.
├─ endMonth integer Not Required End month for 'Holiday Home' mode.

Maximum value: 12

Minimum value: 1

├─ endDay integer Not Required End day for 'Holiday Home' mode.

Maximum value: 31

Minimum value: 1

├─ zone1 object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone2 object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone3 object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ dhw object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place

genericControlsSet

Basic information

Path: /op/v0/heat/genericControls/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
moduleSn string Required
data object Required
├─ holiday object Not Required
├─ away object Not Required
├─ enable boolean Not Required Enable or disable the 'Holiday Away' mode.
├─ startYear integer Not Required Start year for 'Holiday Away' mode.
├─ startMonth integer Not Required Start month for 'Holiday Away' mode.

Maximum value: 12

Minimum value: 1

├─ startDay integer Not Required Start day for 'Holiday Away' mode.

Maximum value: 31

Minimum value: 1

├─ endYear integer Not Required End year for 'Holiday Away' mode.
├─ endMonth integer Not Required End month for 'Holiday Away' mode.

Maximum value: 12

Minimum value: 1

├─ endDay integer Not Required End day for 'Holiday Away' mode.

Maximum value: 31

Minimum value: 1

├─ heatingModeEnable boolean Not Required Enable or disable heating function during 'Holiday Away' mode.
├─ heatingTemp number Not Required Target heating temperature (°C) during 'Holiday Away' mode. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ dhwModeEnable boolean Not Required Enable or disable Domestic Hot Water (DHW) function during 'Holiday Away' mode.
├─ dhwTemp number Not Required Target DHW temperature (°C) during 'Holiday Away' mode. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ disinfect boolean Not Required Enable or disable the disinfection function during 'Holiday Away' mode.
├─ home object Not Required
├─ enable boolean Not Required Enable or disable the 'Holiday Home' mode.
├─ startYear integer Not Required Start year for 'Holiday Home' mode.
├─ startMonth integer Not Required Start month for 'Holiday Home' mode.

Maximum value: 12

Minimum value: 1

├─ startDay integer Not Required Start day for 'Holiday Home' mode.

Maximum value: 31

Minimum value: 1

├─ endYear integer Not Required End year for 'Holiday Home' mode.
├─ endMonth integer Not Required End month for 'Holiday Home' mode.

Maximum value: 12

Minimum value: 1

├─ endDay integer Not Required End day for 'Holiday Home' mode.

Maximum value: 31

Minimum value: 1

├─ zone1 object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone2 object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone3 object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ dhw object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result Not Required

heatingCircuitsControlsGet

Basic information

Path: /op/v0/heat/heatingCircuitsControls/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Query

Parameter name Is it required Example Note
moduleSn Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result object Not Required
├─ circuitActivation object Not Required
├─ zone1Support boolean Not Required Indicates if Zone 1 supports independent circuit control. Must be set to true before zone1Enable can be applied.
├─ zone2Support boolean Not Required Indicates if Zone 2 supports independent circuit control. Must be set to true before zone2Enable can be applied.
├─ zone3Support boolean Not Required Indicates if Zone 3 supports independent circuit control. Must be set to true before zone3Enable can be applied.
├─ circuitType object Not Required
├─ zone1Enable boolean Not Required Indicates if Zone 1's circuit is enabled. zone1Support must be true for this field to take effect.
├─ zone2Enable boolean Not Required Indicates if Zone 2's circuit is enabled. zone2Support must be true for this field to take effect.
├─ zone3Enable boolean Not Required Indicates if Zone 3's circuit is enabled. zone3Support must be true for this field to take effect.
├─ zone1 object Not Required
├─ enable boolean Not Required Switch to enable or disable the heating curve function for this zone.
├─ temperatureLevel integer Not Required Water Temperature Level: 1 - High Water Temperature, 2 - Medium Water Temperature, 3 - Low Water Temperature.

Maximum value: 3

Minimum value: 1

├─ temperatureMode integer Not Required Temperature Mode: 1 - Warmth, 2 - Comfort, 3 - Economical.

Maximum value: 3

Minimum value: 1

├─ heatingCureOffsetValue number Not Required Global offset value for the heating curve (used to fine-tune the outlet water temperature). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ cooling object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ zone2 object Not Required
├─ enable boolean Not Required Switch to enable or disable the heating curve function for this zone.
├─ temperatureLevel integer Not Required Water Temperature Level: 1 - High Water Temperature, 2 - Medium Water Temperature, 3 - Low Water Temperature.

Maximum value: 3

Minimum value: 1

├─ temperatureMode integer Not Required Temperature Mode: 1 - Warmth, 2 - Comfort, 3 - Economical.

Maximum value: 3

Minimum value: 1

├─ heatingCureOffsetValue number Not Required Global offset value for the heating curve (used to fine-tune the outlet water temperature). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ cooling object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ zone3 object Not Required
├─ enable boolean Not Required Switch to enable or disable the heating curve function for this zone.
├─ temperatureLevel integer Not Required Water Temperature Level: 1 - High Water Temperature, 2 - Medium Water Temperature, 3 - Low Water Temperature.

Maximum value: 3

Minimum value: 1

├─ temperatureMode integer Not Required Temperature Mode: 1 - Warmth, 2 - Comfort, 3 - Economical.

Maximum value: 3

Minimum value: 1

├─ heatingCureOffsetValue number Not Required Global offset value for the heating curve (used to fine-tune the outlet water temperature). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ cooling object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).

heatingCircuitsControlsSet

Basic information

Path: /op/v0/heat/heatingCircuitsControls/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
moduleSn string Required
data object Required
├─ circuitActivation object Not Required
├─ zone1Support boolean Not Required Indicates if Zone 1 supports independent circuit control. Must be set to true before zone1Enable can be applied.
├─ zone2Support boolean Not Required Indicates if Zone 2 supports independent circuit control. Must be set to true before zone2Enable can be applied.
├─ zone3Support boolean Not Required Indicates if Zone 3 supports independent circuit control. Must be set to true before zone3Enable can be applied.
├─ circuitType object Not Required
├─ zone1Enable boolean Not Required Indicates if Zone 1's circuit is enabled. zone1Support must be true for this field to take effect.
├─ zone2Enable boolean Not Required Indicates if Zone 2's circuit is enabled. zone2Support must be true for this field to take effect.
├─ zone3Enable boolean Not Required Indicates if Zone 3's circuit is enabled. zone3Support must be true for this field to take effect.
├─ zone1 object Not Required
├─ enable boolean Not Required Switch to enable or disable the heating curve function for this zone.
├─ temperatureLevel integer Not Required Water Temperature Level: 1 - High Water Temperature, 2 - Medium Water Temperature, 3 - Low Water Temperature.

Maximum value: 3

Minimum value: 1

├─ temperatureMode integer Not Required Temperature Mode: 1 - Warmth, 2 - Comfort, 3 - Economical.

Maximum value: 3

Minimum value: 1

├─ heatingCureOffsetValue number Not Required Global offset value for the heating curve (used to fine-tune the outlet water temperature). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ cooling object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ zone2 object Not Required
├─ enable boolean Not Required Switch to enable or disable the heating curve function for this zone.
├─ temperatureLevel integer Not Required Water Temperature Level: 1 - High Water Temperature, 2 - Medium Water Temperature, 3 - Low Water Temperature.

Maximum value: 3

Minimum value: 1

├─ temperatureMode integer Not Required Temperature Mode: 1 - Warmth, 2 - Comfort, 3 - Economical.

Maximum value: 3

Minimum value: 1

├─ heatingCureOffsetValue number Not Required Global offset value for the heating curve (used to fine-tune the outlet water temperature). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ cooling object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ zone3 object Not Required
├─ enable boolean Not Required Switch to enable or disable the heating curve function for this zone.
├─ temperatureLevel integer Not Required Water Temperature Level: 1 - High Water Temperature, 2 - Medium Water Temperature, 3 - Low Water Temperature.

Maximum value: 3

Minimum value: 1

├─ temperatureMode integer Not Required Temperature Mode: 1 - Warmth, 2 - Comfort, 3 - Economical.

Maximum value: 3

Minimum value: 1

├─ heatingCureOffsetValue number Not Required Global offset value for the heating curve (used to fine-tune the outlet water temperature). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ highEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ mediumEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowComfort object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowWarm object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ lowEconomic object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ cooling object Not Required
├─ outdoorTemperatureLower number Not Required Lower limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ outdoorTemperatureUpper number Not Required Upper limit of outdoor temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureLower number Not Required Lower limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ waterTemperatureUpper number Not Required Upper limit of supply water temperature (°C). Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result Not Required

heatingControlsGet

Basic information

Path: /op/v0/heat/heatingControls/get

Method: GET

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Query

Parameter name Is it required Example Note
moduleSn Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result object Not Required
├─ workMode integer Not Required System operating mode setting. 1 - Cooling, 2 - Heating, 3 - Auto, 4 - OFF AC

Maximum value: 4

Minimum value: 1

├─ zone1Daily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone2Daily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone3Daily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ dhwDaily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ zone1Weekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone2Weekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone3Weekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ dhwWeekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ bivalencePoint object Not Required
├─ electricHeatingWaterEnvironmentalTemp number Not Required Ambient temperature threshold (°C) for electric heating of supply water. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ airConditioningElectricHeatingAmbientTemp number Not Required Ambient temperature threshold (°C) for air conditioning electric heating. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ auxiliaryHeaterSettings object Not Required
├─ electricHeatingControl boolean Not Required Master switch for electric heating control.
├─ airConditioningElectricHeatingEnable boolean Not Required Function enable switch for air conditioning electric heating.

heatingControlsSet

Basic information

Path: /op/v0/heat/heatingControls/set

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
moduleSn string Required
data object Required
├─ workMode integer Not Required System operating mode setting. 1 - Cooling, 2 - Heating, 3 - Auto, 4 - OFF AC

Maximum value: 4

Minimum value: 1

├─ zone1Daily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone2Daily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone3Daily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ dhwDaily object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the daily timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ zone1Weekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone2Weekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ zone3Weekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ workMode integer Not Required Operating mode: 1-Cooling; 2-Heating.

Maximum value: 2

Minimum value: 1

├─ dhwWeekly object Not Required
├─ timerEnable boolean Not Required Master switch to enable or disable the weekly timer.
├─ timers object [] Not Required List of specific timer entries. Max 6 entries allowed. Note: Date fields must be either all present or all absent - no partial dates.

最大数量: 6

item Type: object

├─ enable boolean Not Required Whether this timer item is enabled
├─ startHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ startMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ endHour integer Not Required

Maximum value: 23

Minimum value: 0

├─ endMinute integer Not Required

Maximum value: 59

Minimum value: 0

├─ targetTemp number Not Required Target temperature in degrees Celsius, with at most one decimal place
├─ mon boolean Not Required Apply this timer to Monday.
├─ tue boolean Not Required Apply this timer to Tuesday.
├─ wed boolean Not Required Apply this timer to Wednesday.
├─ thur boolean Not Required Apply this timer to Thursday.
├─ fri boolean Not Required Apply this timer to Friday.
├─ sat boolean Not Required Apply this timer to Saturday.
├─ sun boolean Not Required Apply this timer to Sunday.
├─ bivalencePoint object Not Required
├─ electricHeatingWaterEnvironmentalTemp number Not Required Ambient temperature threshold (°C) for electric heating of supply water. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ airConditioningElectricHeatingAmbientTemp number Not Required Ambient temperature threshold (°C) for air conditioning electric heating. Note: The device accepts a precision of 0.1°C. Values will be rounded (e.g., 0.06 becomes 0.1).
├─ auxiliaryHeaterSettings object Not Required
├─ electricHeatingControl boolean Not Required Master switch for electric heating control.
├─ airConditioningElectricHeatingEnable boolean Not Required Function enable switch for air conditioning electric heating.

Response Data

Name Type Is it required Default value Note Other information
errno integer Not Required Error number(When the result is not equal to zero, the request fails)
msg string Not Required Error message
result Not Required

GMAX

Get gmax list

Basic information

Path: /op/v0/gmax/list

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ currentPage integer Required Current page number
├─ pageSize integer Required The amount of data presented per page
├─ total integer Required Data volume total
├─ data object [] Required

item Type: object

├─ gmaxID string Required Device ID
├─ gmaxSN string Required Device SN
├─ sn string Required Complete machine SN
├─ pcsSN string Required PCS SN
├─ bmsSN string Required BMS SN
├─ packSN string Required PACK SN
├─ plantID string Required plant ID
├─ communication integer Required the status of device, 1online 2fault 3offline

Get history data

Basic information

Path: /op/v0/gmax/history/query

Method: POST

Interface description:

Obtain the historical data of the inverter, Only the result set belonging to the current user sn is returned. Obtain the historical data of the last one days without specifying the time,and the time span must be less than or equal to 24 hours
request body example:

{
  "sns": "*****",
  "begin": 1703548800000,
  "end": 1703635200000
}





response body example:

{
    "errno": 0,
    "msg": "Operation successful",
    "result": [
        {
            "datas": [
                {
                    "soc": 1.0,
                    "chargingPower": "0.0",
                    "dischargingPower": "0.0",
                    "time": "2025-11-25 17:58:16 CST+0800",
                    "soh": 100.0,
                    "status": "3.0"
                },
                {
                    "soc": 1.0,
                    "chargingPower": "0.0",
                    "dischargingPower": "0.0",
                    "time": "2025-11-25 17:59:16 CST+0800",
                    "soh": 100.0,
                    "status": "3.0"
                }
            ]
        }
    ]
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial Number
begin string Not Required Start timestamp(milliseconds)
end string Not Required End timestamp(milliseconds)

Response Data

Name Type Is it required Default value Note Other information
errno number Required
msg string Required
result object [] Required

item Type: object

├─ datas object [] Required

item Type: object

├─ time string Required
├─ soc number Required unit:%
├─ soh number Required unit:%
├─ status string Required 0Shutdown, 1Charging, 2Discharge, 3Standby, 4Fault
├─ chargingPower string Required unit:kw
├─ dischargingPower string Required unit:kw

Get gmax real data

Basic information

Path: /op/v0/gmax/real/query

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
sn string Required

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ chargingPower string Required unit:kw
├─ dischargingPower string Required unit:kw
├─ soc number Required unit:%
├─ soh number Required unit:%
├─ status string Required 0Shutdown, 1Charging, 2Discharge, 3Standby, 4Fault

Get peak and valley arbitrage

Basic information

Path: /op/v0/gmax/peakValleyPower/get

Method: POST

Interface description:

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial Number of GMAX

Response Data

Name Type Is it required Default value Note Other information
errno number Not Required
msg string Not Required
result object Not Required
├─ datas object [] Required The maximum length is 8

item Type: object

├─ peakPower number Required Peak power(KW),The charging power is negative and the discharging power is positive.
├─ enable boolean Required true:open , false:close
├─ peakEndTime number Required Peak end time(seconds)
├─ peakWeek number Required 1: valid on Monday, 2:valid on Tuesday, 3:valid on Wednesday, 4:valid on Thursday, 5:valid on Friday, 6:valid on Saturday, 7valid on Sunday 7, The number of peak-valley arbitrage periods is 8, and 8 fields need to be set
├─ peakStartTime number Required Peak start time(seconds)
├─ peakStopSoc number Required The range is 0 to 100
├─ peakWorkMode number Required 0: Effective by time period; 1: Valid by month; 2: Valid by year -1: Invalid value The number of periods for peak-valley arbitrage is 8, and 8 fields need to be set
├─ peakEnable boolean Required true:open , false:close
├─ sn string Required Serial Number
├─ timestamp number Required

Set peak and valley arbitrage

Basic information

Path: /op/v0/gmax/peakValleyPower/set

Method: POST

Interface description:

Please ensure the control source is set to remote
企业微信截图_17696814159998.png

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required Language

Body

Name Type Is it required Default value Note Other information
sn string Required Serial Number
peakEnable boolean Required true:open , false:close
datas object [] Required

最小数量: 1

最大数量: 8

item Type: object

├─ enable boolean Required true:open , false:close
├─ peakWorkMode number Required 0: Effective by time period; 1: Valid by month; 2: Valid by year -1: Invalid value The number of periods for peak-valley arbitrage is 8, and 8 fields need to be set
├─ peakWeek number Required 1: valid on Monday, 2:valid on Tuesday, 3:valid on Wednesday, 4:valid on Thursday, 5:valid on Friday, 6:valid on Saturday, 7valid on Sunday 7, The number of peak-valley arbitrage periods is 8, and 8 fields need to be set
├─ peakStopSoc number Required The range is 0 to 100
├─ peakPower number Required Peak power(KW),The charging power is negative and the discharging power is positive.
├─ peakStartTime number Required Peak start time as Unix timestamp (seconds). Must be < peakEndTime, and its local clock time (HH:mm:ss) in the device's timezone must not be later than that of peakEndTime (e.g., 12:00 → 08:00 is invalid).
├─ peakEndTime number Required Peak end time as Unix timestamp (seconds). Must be > peakStartTime

Response Data

Name Type Is it required Default value Note Other information
errno number Required
msg string Required
result string Required

Platform interface

Get the number of public interface accesses

Basic information

Path: /op/v0/user/getAccessCount

Method: GET

Interface description:

Obtain the number of accessible interfaces under the account based on the open api.

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information
currentPage integer Required 1 Current page number

Minimum value: 1

pageSize integer Required 10 The amount of data presented per page

Maximum value: 1000

Minimum value: 10

Response Data

Name Type Is it required Default value Note Other information
errno integer Required Error number(When the result is not equal to zero, the request fails)
result object Required
├─ total string Required Number of total times that the user can access the open interface
├─ remaining string Required Number of remaining times that the user can access the open interface

Installer device count

Basic information

Path: /op/v0/device/installer/count

Method: POST

Interface description:

response body example:
{
    "errno": 0,
    "msg": "Operation successful",
    "result": null
}

Request parameter

Headers

Parameter name Parameter value Is it required Example Note
Content-Type application/json Required
token Required Generate apikey from the API management function of the platform
signature Required Signature rule: Encrypt the string url + "\r\n" + token + "\r\n" + timestamp with md5
timestamp Required Current timestamp
lang Required en Language

Body

Name Type Is it required Default value Note Other information

Response Data

Name Type Is it required Default value Note Other information
errno number Required
msg string Required
result object [] Required

item Type: object

├─ year number Required
├─ deviceCountryCounts object [] Required

item Type: object

├─ country string Required
├─ deviceCount number Required