芯步的智能通断器开放了标准 HTTP 接口,只需要简单的 POST 请求就能实现远程控制。下面从架构、签名、接口调用和指令示例几个层面来讲清楚对接流程。
1. 解决概述
本方案基于 芯步 的智能通断器硬件(如AC4-30A、智能通断器模块等),利用其开放的 HTTP API 接口,实现云端平台对设备电源的远程通断控制。
核心优势:
接口通用:基于 HTTP 协议,支持任何编程语言(Java, Python, PHP, Node.js 等)和平台(Web, App, 小程序, SaaS)。
响应迅速:从云端下发指令到设备执行,实测约 80-120ms。
指令丰富:支持即时通断、定时通断、点动(先通后断/先断后通)、批量控制等。
双向通信:除了控制,平台还支持通过 HTTP 接收设备的状态变更推送(如设备主动上报开关状态、网络状态等)。
2. 系统架构
在典型的物联网云平台对接中,核心交互流程如下。用户通过业务平台(集成方)发起请求,经由芯步云端完成设备寻址与转发。
sequenceDiagram
participant User as 用户端/业务平台
participant Cloud as 芯步云平台
participant Device as 智能通断器(设备端)
Note over User,Device: 1. 设备上线注册
Device->>Cloud: 建立长连接/心跳
Note over Cloud: 设备状态更新为"在线"
Note over User,Device: 2. 远程控制指令
User->>Cloud: POST /device/control/ (携带AppId,Sign,DeviceId,Order)
Cloud->>Cloud: 校验签名、权限及设备在线状态
Cloud->>Device: 透传指令 (MQTT/CoAP)
Device->>Device: 执行动作 (闭合/断开继电器)
Device-->>Cloud: 返回执行结果
Cloud-->>User: 返回 HTTP 200 (指令已送达/执行成功)
Note over User,Device: 3. 状态同步 (异步)
Device-->>Cloud: 上报最新状态 (如 power:1)
Cloud-->>User: 推送到用户配置的URL3. 对接流程与技术实现
3.1 准备阶段:获取凭证与设备ID
在芯步控制台完成以下准备
注册账号并创建“工作台”。
获取 AppID 和 AppSecret:在开发设置中查看,这是调用 API 的身份凭证。
获取设备ID (Device ID):在“物联网控制台”的设备列表或设备外壳标签上获取(通常为数字串)。
3.2 API 鉴权机制(签名计算)
为防止接口被恶意调用,所有请求必须携带签名(sign)。芯步采用双重 MD5 加密方式
签名算法:
Sign = md5( md5(AppSecret) + ts )
参数说明:
AppSecret:开发者密码。
ts:Unix 时间戳(秒),用于防止请求重放攻击。
计算示例(以 Python 为例):
3.3 核心接口:下发控制指令
这是实现远程控制最核心的接口,通过向指定设备发送 JSON 指令来控制通断器 。
请求地址
POST http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}Header
Content-Type: application/jsonBody 参数
| 参数 | 类型 | 描述 | 示例 |
|---|---|---|---|
| device | String | 目标设备的唯一ID | "820720" |
| order | Object | 控制指令(JSON对象),具体结构见下方指令表 | {"power": 1} |
3.4 常用指令集(Order 参数详解)
根据你的通断器规格(1路、4路或多路),order 对象的结构有所不同 。
1. 单路通断器控制最简单的场景,控制单路继电器的开启或关闭。
| 功能 | Order JSON 示例 | 描述 |
|---|---|---|
| 开启 | {"power": 1} | 线路接通,输出端通电 |
| 关闭 | {"power": 0} | 线路断开,输出端断电 |
| 点动(先通后断) | {"point": 5000} | 接通线路,5000毫秒(5秒)后自动断开 |
| 点动(先断后通) | {"reset": 5000} | 断开线路,5000毫秒(5秒)后自动接通 |
2. 多路控制器控制(4路为例)如果你使用的是4路控制器,需要精确控制某一路的开关 。
| 功能 | Order JSON 示例 | 描述 |
|---|---|---|
| 控制单路 | {"power1": 1} | 打开第1路 |
| 控制单路 | {"power3": 0} | 关闭第3路 |
| 批量控制 | {"batch":{"relay":[1,3],"power":0}} | 同时关闭第1路和第3路 |
| 单路点动 | {"point1": 1000} | 第1路接通1秒后断开 |
3. 带额外参数的控制可以在指令中携带 extra 字段用于业务关联(如订单号),设备执行后,云端推送状态时会原样返回该字段,方便业务系统对账 。
| 功能 | Order JSON 示例 | 描述 |
|---|---|---|
| 开启并携带标记 | {"power": 1, "extra" : "ORDER_2024001"} | 开启设备并附带业务订单号 |
4. 核心代码示例
以下是使用 Python 的 requests 库实现远程控制通断器的完整逻辑。
注:该代码示例根据官方文档提供的接口规范编写 。
5. 高级特性集成
5.1 设备状态实时同步
由于 HTTP 请求的 200 响应仅代表指令被云端接收,并不代表设备已执行。为了获取“设备已真正动作”的结果,配置 消息推送 功能。
配置方式:在芯步控制台设置你的服务器 URL(Callback URL)。
推送内容:当设备状态变化(手动按下按键或云端控制成功)时,云端会向该 URL 发送 POST 请求,包含设备 ID、当前状态等 JSON 数据 。
5.2 设备配网
新设备首次使用需要连接 WiFi 。
方式一:使用 “芯步”微信小程序,开启手机蓝牙/热点,按照提示为设备配置 WiFi(仅支持 2.4G)。
方式二:在 PC 端的芯步控制台的“网络配置”模块中添加 WiFi 信息,下发至设备。
6. 注意事项
设备在线状态:控制指令只有在设备在线(WiFi连接正常)时才能成功。在业务逻辑中加入设备心跳检测或离线重试机制。
频率限制:虽然接口响应快,但应避免在短时间内(如毫秒级)对同一设备频繁下发指令,以免阻塞设备处理或触发平台限流 。
局域网/私有化支持:如果项目对公网依赖有要求,芯步设备支持局域网 IP 直连控制,也支持将 API 进行私有化部署,这在工厂内网等场景中非常实用 。
7. 总结
通过上述步骤,你可以得出结论:对接芯步的智能通断器本质上就是调用一个 带签名验证的 HTTP RESTful API。
获取
AppID、AppSecret、DeviceId。按照 MD5 规则生成签名。
POST 请求
https://api.thingboot.com/{AppId}/device/control/。Body 中传入
{"power": 1}即可实现开机。
这套方案有效简化了智能硬件的开发门槛,使得任何有网络编程能力的团队都能在 10 分钟内完成核心控制逻辑的集成。