芯步的AC1智能通断器通过HTTP接口开放控制能力,可以像调用普通API一样集成到任意软件项目中。以下是完整的对接方案,涵盖接口协议、签名算法、核心代码实现和典型场景应用。
1. 解决概述
1.1 产品核心特性
AC1智能通断器(型号:UNI-TDQ-AC1-10A)是一款支持WiFi直连的单路交流继电器模组,其核心价值在于将传统的220V交流电路转化为可编程控制的“智能开关”。
接口协议:全开放HTTP API,无SDK依赖,支持Java、Python、PHP、Go、C#等任何支持HTTP协议的语言。
网络要求:仅支持2.4G WiFi,无需网关,支持局域网直连和公网远程控制。
负载能力:10A-16A额定电流,可直接控制2200W-3500W以下的电器设备(如照明、电机、插座)。
部署模式:支持公有云调用,也支持私有化部署(纯局域网环境)。
1.2 架构拓扑
在软件集成中,系统架构通常分为三层:
设备层:AC1智能通断器,连接现场电器。
云平台层:芯步开放平台(API网关),负责设备鉴权与指令转发。
应用层:你的业务系统(Web/App/小程序),通过HTTP请求调用接口。
2. 核心对接流程与鉴权机制
要实现对AC1通断器的控制,首先需要处理平台的鉴权逻辑。芯步采用 Sign 签名认证模式,所有API请求均需携带签名以防止伪造。
2.1 准备必要参数
在芯步控制台(ThingBoot Console)获取以下凭证:
AppID:应用唯一标识,通常在URL路径中直接使用。
AppSecret:开发者密钥,用于加密生成签名,严禁直接暴露在前端代码中。
Device ID:设备的唯一ID,配网后可在控制台查看。
2.2 签名算法(核心)
签名生成规则如下:Sign = MD5( MD5(AppSecret) + ts )
步骤:先将
AppSecret进行MD5哈希;再将该哈希值与当前Unix时间戳拼接;最后对整个拼接字符串进行MD5加密。防重放攻击:参数中包含
ts(时间戳),服务器会校验时间戳的有效性(通常允许5分钟内偏差)。
示例代码(Python):
3. 关键接口实现详解
AC1通断器主要涉及两个核心动作:下发控制指令 和 接收状态反馈。
3.1 控制设备通断(单路控制)
这是最基础的功能,用于远程开关灯或电机。
请求URL
POST https://api.thingboot.com/{AppID}/device/control/Query参数
sign={签名}&ts={时间戳}Header
Content-Type: application/jsonBody参数
device:设备ID(字符串类型)。order:指令JSON对象。对于AC1设备,{"power": 1}代表开启,{"power": 0}代表关闭。
cURL 调用示例:
3.2 高级指令:脉冲控制(先通后断)
在实际场景中(如按一下门铃、触发道闸),往往需要“通电1秒后自动断电”,即脉冲控制。芯步接口原生支持此逻辑,无需客户端做定时任务。
指令:使用
point字段。参数
relay指定线路(AC1为单路,即为1),interval指定毫秒数。示例:闭合1秒后自动断开。
3.3 接收设备状态回调(消息推送)
设备状态(如被人手动按下机身按钮、或断电重启)需要同步到你的软件后台。AC1支持状态主动上报机制,类似于Webhook。
配置:在控制台“开发设置”中配置
Callback URL。机制:当设备状态发生变化时,平台会向你的服务器
Callback URL发送POST请求,携带设备ID和当前状态。:你的接收端接口需要做好去重和签名验证,确保消息来源合法。
接收到的回调数据示例:
4. 实战:集成到软件项目中
由于接口基于HTTP,无论你是前端(通过后端代理)还是后端开发,均可轻松集成。以下以 Node.js 和 Java 为例展示封装思路。
4.1 封装通用控制类
在后端封装一个 IoTService 类,统一处理签名生成和请求发送。
逻辑流程图:
输入:设备ID,控制命令(开/关/脉冲)。
处理:调用签名算法生成
Sign和Ts。请求:构造HTTP Client发起POST请求。
返回:解析芯步返回的JSON结果。
Node.js 封装示例:
4.2 对接注意点
跨域问题:由于
api.thingboot.com通常不配置前端跨域头,绝对禁止在浏览器端直接调用此API(会暴露AppSecret且存在跨域拦截)。必须在你的后端服务器调用。超时重试:在WiFi信号弱的地带,指令下发可能延迟。设置
Timeout(如5秒),并在业务层做重试机制(通常重试3次)。设备离线处理:接口返回可能会提示设备离线,你的软件应展示“设备离线”状态,而非直接提示“控制失败”。
5. 典型应用场景分析
第一种场景:共享/租赁设备管理(如自习室、充电桩)
痛点:用户使用结束后需手动断电,管理员无法远程复位。方案
在订单结束回调中,调用AC1控制接口
{"power": 0}强制断电。利用脉冲控制实现“先断后通”(Reset)功能:
{"reset":{"relay":[1],"interval":1000}}(断开1秒后重新上电),用于远程重启死机的共享设备。
第二种场景:环境监测联动(传感器+通断器)
痛点:仓库温度过高需要自动打开排风扇。方案
芯步平台支持内部联动,即在云平台配置规则(如:温度传感器>40度,触发AC1通断器闭合)。
如果你的业务逻辑极其复杂,可通过消息推送将传感器数据实时接收至你的服务器,由你的业务逻辑判断后,再调用AC1接口执行动作。
总结
通过标准的HTTP API,芯步AC1智能通断器可以作为一个“网络可控继电器”无缝嵌入你的软件生态。开发者只需重点关注 签名算法 和 业务逻辑层面的防抖处理 ,无需关心底层无线协议的复杂性。先使用芯步控制台中的“调试模式”(关闭签名校验)进行快速验证,确认设备响应正常后,再集成签名逻辑投入生产环境。