Supported Devices
-
✓
All 硕欣达 products (CT meters, infrared meter readers, P1 meters, smart plugs, Linky meter readers, etc.)
-
✓
All products using 硕欣达 WIFI modules (energy storage systems, inverters, batteries, etc.)
Security Authentication & Encryption
All API calls require strict signature verification to ensure communication security and data integrity.
Step 1: Get Access Credentials
Contact AECC official to obtain exclusive access credentials:
-
•
companyCode:
Enterprise unique identifier (used for request header identity)
-
•
key:
API signature key (only used for local signature generation, never transmit in plaintext)
Step 2: Construct String to Sign
Follow these fixed rules to concatenate the signature string (incorrect order will cause verification failure):
-
Sort business parameters: Sort all business request parameters (excluding
time and sign) by Unicode code point ascending order, concatenate as key=value&key=value format.
-
Append timestamp and key: At the end of the sorted string, append
time={UTC+0 timestamp in seconds}&key={assigned key}.
datalogSn=SXDID888888&deviceSn=SXDID888888XXXXXX&time=1723720871&key=2a1891544dbcf8e8b45b36d03187485a
Step 3: Generate Signature
Use standard MD5 algorithm to hash the concatenated string. The output must be converted to lowercase string as the sign parameter value.
Step 4: Make API Request
-
•
Header:
Must include
companyCode: {Enterprise Code} and Accept-Language: en-US.
-
•
Body:
In addition to business parameters, must include
time (exact UTC+0 timestamp used in signature) and sign (MD5 signature value).
⚠️ Security Notice:
Signature validity is strongly tied to the timestamp. Server validates timestamp effectiveness. Do not cache signatures for reuse. If key is leaked, contact official immediately for reset.
Core API Examples
The following provides complete calling examples for two high-frequency core APIs, covering signature generation, request construction and response parsing.
POST
/openApi/price/setEnergyMode
Set energy control mode for storage devices (Smart/Custom/Off), and get encrypted control message to send to the collector.
Request Body
Request Example
{
"energyMode": "2",
"aiMode": "0",
"customTimes": "00:00,12:00,1000&13:00,15:00,-2000",
"batRatedCapacity": "1",
"batRatedChargingPower": "1000",
"dataTime": "2025-06-26",
"priceCompany": "Germany",
"time": "1732756652",
"sign": "c3757db87150d5efbb45009d9253d375"
}
Response Fields
-
•
packet:
Hexadecimal control message. Requires secondary encryption and CRC16 checksum calculation per device protocol before sending to collector.
-
•
powerTimes:
Time period strategy array, containing charging/discharging power commands for each time period.
POST
/openApi/price/getPriceChart
Get time-of-use electricity price data for specified region and date. Provides data support for intelligent control strategies.
Request Body
Request Example
{
"dataTime": "2024-09-07",
"priceCompany": "Germany",
"mode": "0",
"time": "1725677116",
"sign": "e07b26034722d166e7f059cb728ab3fd"
}
Response Fields
-
•
priceArr:
24-hour electricity price array, unit is EUR/MWh.
-
•
pricesDayList:
Time period detail list, containing start/end time, price value and peak/valley/flat identifier for each period.
GET
/api/v1/devices
Get a list of all devices. Returns device information including ID, name, status, and type.
Request Parameters
Response Example
{
"code": 200,
"message": "success",
"data": {
"devices": [
{
"id": 1,
"name": "Device 1",
"status": "online",
"type": "sensor"
}
],
"total": 10,
"page": 1
}
}
POST
/api/v1/devices
Create a new device. Requires device name, type, and configuration information.
Request Body
Request Example
{
"name": "New Device",
"type": "sensor",
"config": {
"interval": 60,
"unit": "celsius"
}
}
Response Example
{
"code": 201,
"message": "Device created successfully",
"data": {
"id": 123,
"name": "New Device",
"status": "offline"
}
}
PUT
/api/v1/devices/{id}
Update device information. Replaces all device data with the provided information.
Path Parameters
Request Example
{
"name": "Updated Device",
"type": "actuator",
"config": {
"mode": "auto"
}
}
Response Example
{
"code": 200,
"message": "Device updated successfully",
"data": {
"id": 123,
"name": "Updated Device",
"type": "actuator"
}
}
DELETE
/api/v1/devices/{id}
Delete a device by ID. This action cannot be undone.
Path Parameters
Response Example
{
"code": 200,
"message": "Device deleted successfully"
}
PATCH
/api/v1/devices/{id}/status
Partially update device status. Only updates the specified fields without affecting other data.
Request Body
Request Example
{
"status": "online"
}
Response Example
{
"code": 200,
"message": "Device status updated",
"data": {
"id": 123,
"status": "online",
"updatedAt": "2024-01-15T10:30:00Z"
}
}
👉
Contact us to get complete documentation or support.
👈