GB 17761—2024 新国标已实施 · 欧盟数字电池护照(EU 2023/1542)合规方案已上线 查看合规方案 →

开发者中心

把对接这件事,做成工程师能自己干完的活

文档、示例、错误码、限流规则都在这里。多数集成工作不需要联系我们也能完成, 遇到卡点再找人,效率更高。

REST / MQTT / Webhook 沙箱环境 版本向后兼容

快速开始

完成一次成功调用只需要三步。建议先在沙箱环境跑通,再切换到生产环境。

步骤 1 · 获取令牌
curl -X POST https://api.zhidiancloud.com/v1/oauth/token \
  -H "Content-Type: application/json" \
  -d '{"client_id":"YOUR_ID","client_secret":"YOUR_SECRET","grant_type":"client_credentials"}'
步骤 2 · 查询设备列表
curl "https://api.zhidiancloud.com/v1/devices?page=1&page_size=20" \
  -H "Authorization: Bearer $TOKEN"
步骤 3 · 订阅实时数据(Python)
import paho.mqtt.client as mqtt

client = mqtt.Client(client_id="your-service-01")
client.username_pw_set("YOUR_ID", "YOUR_SECRET")
client.tls_set()                      # 强制 TLS
client.connect("mqtt.zhidiancloud.com", 8883, 60)

client.subscribe("device/+/telemetry", qos=1)
client.subscribe("device/+/alarm",     qos=1)

def on_message(c, u, msg):
    print(msg.topic, msg.payload.decode())

client.on_message = on_message
client.loop_forever()
沙箱环境与生产环境的密钥不通用。沙箱数据为模拟设备,可随意读写,适合自动化回归测试。

鉴权与密钥

REST API 采用 OAuth2 客户端凭证模式,MQTT 采用用户名 + 密码 + TLS 双向认证。

令牌说明

  • 令牌有效期 7200 秒,请在服务端缓存并在过期前刷新
  • 不要在前端代码或 App 中硬编码 client_secret
  • 每个密钥可单独配置可访问的接口范围与限流额度

密钥轮换

支持同时存在两组密钥,便于无中断轮换。轮换时先启用新密钥,观察确认后再停用旧密钥。

请求头格式
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
Content-Type: application/json
X-ZD-Request-Id: 3f1c9a2e-...      // 可选,用于追踪

REST API

基础地址:https://api.zhidiancloud.com/v1。所有请求与响应均使用 UTF-8 编码的 JSON。

主要接口

方法路径说明
GET/devices分页查询设备列表
GET/devices/{sn}设备档案与绑定关系
GET/devices/{sn}/snapshot实时快照
GET/devices/{sn}/history历史序列(支持降采样)
POST/devices/{sn}/commands下发远程指令
POST/devices/batch/import批量建档
GET/alarms告警记录与处理状态
POST/ota/tasks创建 OTA 升级任务
GET/passport/{sn}电池护照数据集导出

指令下发示例

POST /v1/devices/{sn}/commands
{
  "cmd": "LOCK_DISCHARGE",       // 锁放电
  "params": { "duration_min": 0 },   // 0 = 持续至手动解锁
  "reason": "租金逾期",
  "operator": "system"
}

// 响应
{ "cmd_id": "c-9f2c1a", "status": "accepted", "timeout_sec": 30 }

MQTT 订阅

接入地址 mqtt.zhidiancloud.com:8883,强制 TLS。支持 QoS 0/1,建议实时类消息使用 QoS 1。

主题结构

主题方向说明
device/{sn}/telemetry下行周期上报的实时数据
device/{sn}/alarm下行告警产生与恢复事件
device/{sn}/status下行上下线、信号与固件状态
device/{sn}/command/ack下行指令执行回执

上报消息示例

device/{sn}/telemetry
{
  "msg_id": "9f2c1a",
  "sn": "BT24080001",
  "ts": 1758601924000,
  "cells": [3.262, 3.261, 3.264, 3.260],
  "voltage": 52.14,
  "current": -10.8,
  "soc": 86,
  "soh": 98.4,
  "temp": [30.4, 31.2, 29.8],
  "mos": { "chg": true, "dsg": true },
  "alarm": []
}
断线重连后请重新订阅主题。设备离线期间的数据会通过 REST 历史接口补齐,不会丢失。

Webhook 回调

在控制台配置回调地址后,平台会在事件发生时 POST 到您的接口。您无需开放额外的公网入站规则以外的资源。

签名校验

校验示例(Node.js)
const crypto = require('crypto');

function verify(rawBody, signature, secret) {
  const expect = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(rawBody)
    .digest('hex');
  return crypto.timingSafeEqual(Buffer.from(expect), Buffer.from(signature));
}

重试策略

  • 2xx 视为成功,其他状态码触发重试
  • 最多重试 5 次,间隔按 1 / 5 / 25 / 125 / 625 秒递增
  • 连续失败超限后暂停推送,可在控制台手动恢复
  • 请使用 msg_id 做幂等处理,网络抖动可能导致重复投递

错误码与限流

状态码错误码含义处理建议
400INVALID_PARAM参数缺失或格式错误检查字段类型与必填项
401UNAUTHORIZED令牌无效或已过期重新获取令牌
403FORBIDDEN密钥无该接口权限在控制台调整密钥范围
404NOT_FOUND设备或资源不存在确认 SN 是否已建档
409DEVICE_OFFLINE设备离线,指令无法下发指令会缓存,上线后自动执行
429RATE_LIMITED触发限流按 Retry-After 退避重试
500INTERNAL_ERROR服务端异常携带 X-ZD-Request-Id 联系我们

默认限流额度见开放能力页面。需要提额请提交业务说明,我们为指定密钥单独调整。

嵌入式 SDK

如果您希望板子或网关直接对接云端而不使用我们的模组,可以移植 SDK。SDK 负责连接管理、鉴权、数据打包与断网缓存重传。

  • C 语言实现,适合资源受限的 MCU
  • 提供主流芯片平台的移植示例
  • 报文格式公开,不依赖我们的固件
  • 对接期间有工程师陪跑,直到实板跑通
初始化示例
zd_config_t cfg = {
    .product_key = "YOUR_PRODUCT_KEY",
    .device_sn   = "BT24080001",
    .device_sec  = "DEVICE_SECRET",
    .cache_days  = 7          // 断网缓存天数
};

zd_client_t *c = zd_init(&cfg);
zd_set_telemetry_cb(c, on_telemetry_ready);
zd_start(c);

技术支持

文档没覆盖到的部分,直接找人问更快。以下是几种获取帮助的方式:

  • 测试密钥:在演示账号申请时备注"需要 API 沙箱",我们会一并开通
  • 对接陪跑:正式客户在对接期有专属对接工程师
  • 问题反馈:提供 X-ZD-Request-Id 可快速定位到具体请求

3 天接入,先试后买

先把您的板子接进来,再谈价格

留下 3 个必填字段,我们会在 30 分钟内为您开通 Web 后台 + App + 小程序三端演示账号。 不需要您提供硬件,也不需要先付费。

  • 30 分钟开通演示账号
  • 免费评估协议可接入性
  • 支持私有化部署与白标 OEM

我们会在 30 分钟内开通,含 Web 后台 + App + 小程序三端体验账号

电话咨询 免费申请演示账号