支持设备
  • 所有能控云产品(CT电表、红外读表器、P1电表、智能插座、Linky读表器等)
  • 所有使用能控云WIFI 模块产品(储能机、逆变器、电池等)
安全鉴权与加密流程
所有开放接口调用均需通过严格的签名验证,确保通信安全与数据完整性。
1. 获取接入凭证
联系 AECC 官方获取专属接入凭证:
  • companyCode: 企业唯一识别码(用于请求头身份标识)
  • key: 接口签名密钥(仅用于本地签名生成,严禁在网络中明文传输)
2. 构造待签名字符串
按以下固定规则拼接签名原文,顺序错误将导致验签失败:
  1. 业务参数排序:将所有业务请求参数(不包含 timesign)的参数名,按 Unicode 编码升序 排列,拼接为 key=value&key=value 格式。
  2. 追加时间与密钥:在排序后的字符串末尾,固定追加 time={UTC+0秒级时间戳}&key={分配的密钥}
datalogSn=SXDID888888&deviceSn=SXDID888888XXXXXX&time=1723720871&key=2a1891544dbcf8e8b45b36d03187485a
3. 生成签名值
使用标准 MD5 算法对拼接完成的待签名字符串进行哈希运算,输出结果必须转换为 全小写 字符串,作为 sign 参数值。
4. 发起 API 请求
  • Header: 必须携带 companyCode: {企业识别码}Accept-Language: en-US
  • Body: 除业务参数外,必须包含 time(与签名生成时完全一致的 UTC+0 秒级时间戳)和 sign(MD5 签名值)。
⚠️ 安全须知: 签名有效期与时间戳强绑定,服务端会校验时间戳有效性,请勿缓存签名复用;密钥泄露需立即联系官方重置。
核心接口调用示例
以下提供两个高频核心接口的完整调用示例,覆盖签名生成、请求构造与响应解析全流程。
POST
/openApi/price/setEnergyMode
该接口用于配置储能设备的运行模式(智能/自定义/关闭),并获取下发至采集器的加密控制报文。
请求体
参数 类型 必填 说明
energyMode string Yes 能源模式(0: 关闭, 1: 智能, 2: 自定义)
aiMode string No AI模式(0: 关闭, 1: 开启)
customTimes string No 自定义时间段格式:起始时间,结束时间,功率(如:00:00,12:00,1000&13:00,15:00,-2000)
batRatedCapacity string No 电池额定容量(kWh)
batRatedChargingPower string No 电池额定充电功率(W)
dataTime string Yes 数据日期(YYYY-MM-DD)
priceCompany string Yes 电价区域/公司(如:Germany, France)
time string Yes UTC+0 秒级时间戳
sign string Yes MD5 签名值(小写)
请求示例
{
  "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"
}
响应字段说明
  • packet: 十六进制控制报文,需按设备协议二次加密并计算 CRC16 校验后下发至采集器。
  • powerTimes: 时段策略数组,包含各时间段的充放电功率指令。
POST
/openApi/price/getPriceChart
该接口用于获取指定区域、指定日期的分时电价信息,为智能调控策略提供数据支撑。
请求体
参数 类型 必填 说明
dataTime string Yes 数据日期(YYYY-MM-DD)
priceCompany string Yes 电价区域/公司(如:Germany, France)
mode string No 查询模式(0: 当日预测, 1: 次日预测)
time string Yes UTC+0 秒级时间戳
sign string Yes MD5 签名值(小写)
请求示例
{
  "dataTime": "2024-09-07",
  "priceCompany": "Germany",
  "mode": "0",
  "time": "1725677116",
  "sign": "e07b26034722d166e7f059cb728ab3fd"
}
响应字段说明
  • priceArr: 24小时电价数组,单位为 EUR/MWh。
  • pricesDayList: 时段明细列表,包含每个时间段的起止时间、电价数值及峰谷平标识。
GET
/api/v1/devices
获取所有设备列表。返回设备信息,包括ID、名称、状态和类型。
请求参数
参数 类型 必填 说明
page integer No 页码(默认:1)
limit integer No 每页数量(默认:10)
响应示例
{
  "code": 200,
  "message": "success",
  "data": {
    "devices": [
      {
        "id": 1,
        "name": "Device 1",
        "status": "online",
        "type": "sensor"
      }
    ],
    "total": 10,
    "page": 1
  }
}
POST
/api/v1/devices
创建新设备。需要设备名称、类型和配置信息。
请求体
参数 类型 必填 说明
name string Yes 设备名称
type string Yes 设备类型(传感器、执行器等)
config object No 设备配置
请求示例
{
  "name": "New Device",
  "type": "sensor",
  "config": {
    "interval": 60,
    "unit": "celsius"
  }
}
响应示例
{
  "code": 201,
  "message": "Device created successfully",
  "data": {
    "id": 123,
    "name": "New Device",
    "status": "offline"
  }
}
PUT
/api/v1/devices/{id}
更新设备信息。用提供的信息替换所有设备数据。
路径参数
参数 类型 说明
id integer 设备ID
请求示例
{
  "name": "Updated Device",
  "type": "actuator",
  "config": {
    "mode": "auto"
  }
}
响应示例
{
  "code": 200,
  "message": "Device updated successfully",
  "data": {
    "id": 123,
    "name": "Updated Device",
    "type": "actuator"
  }
}
DELETE
/api/v1/devices/{id}
根据ID删除设备。此操作无法撤销。
路径参数
参数 类型 说明
id integer 要删除的设备ID
响应示例
{
  "code": 200,
  "message": "Device deleted successfully"
}
PATCH
/api/v1/devices/{id}/status
部分更新设备状态。仅更新指定字段,不影响其他数据。
请求体
参数 类型 必填 说明
status string Yes 设备状态(在线、离线、维护中)
请求示例
{
  "status": "online"
}
响应示例
{
  "code": 200,
  "message": "Device status updated",
  "data": {
    "id": 123,
    "status": "online",
    "updatedAt": "2024-01-15T10:30:00Z"
  }
}
👉 联系我们获得完整文档或支持 👈
联系我们