针对芯步AC5-10A智能通断器,其核心优势在于开放了标准的HTTP API接口,这使得开发者可以用熟悉的编程语言(如Python、PHP、Java、Go等)通过简单的POST请求,即可实现对设备的远程通断控制。以下方案详细说明了从设备准备、接口鉴权到命令下发的完整对接流程。
1. 产品概述与准备
AC5-10A 智能通断器是一款支持WiFi直连的继电器控制模块,额定电流10A,适用于100-250V交流电路。其核心对接价值在于开放了标准的HTTP接口,无需网关中转,可直接接入任何支持HTTP请求的软件系统(Web、App、SaaS等)。
准备工作:
硬件:AC5-10A设备一台,已通电并联网。
账号:芯步官方平台开发者账号。
凭证:登录工作台,获取
AppId(应用ID)和AppSecret(应用密钥)。目标:记录下需要控制的设备ID(Device ID)。
2. 接口鉴权与签名机制
为了保证接口调用的安全性,所有API请求均需携带动态生成的签名(Sign)。芯步采用双层MD5加密策略,具体生成算法如下
准备时间戳:获取当前的Unix时间戳(秒),例如
ts = 1714352400。第一次MD5加密:将
AppSecret进行MD5加密,得到Secret_Md5。拼接字符串:将
Secret_Md5与上述的ts直接拼接成一个新字符串。第二次MD5加密:对新字符串再次进行MD5加密,得到最终的
sign。
伪代码示例:
3. API接口调用详解
对接的核心是通过HTTP POST请求向指定API地址下发控制指令。
3.1 请求概览
请求地址:
http(s)://api.thingboot.com/{AppId}/device/control/请求方式:
POST数据格式:
JSON参数位置:Query参数携带签名(sign, ts),Body携带指令数据。
3.2 请求参数说明
在请求Body中,需要包含两个关键字段:
| 字段 | 类型 | 描述 |
|---|---|---|
| device | String / Int | 目标设备的唯一ID,可在后台查看。 |
| order | JSON Object | 控制指令集,通断器主要控制继电器输出。 |
3.3 核心指令集 (Order)
对于 AC5-10A 型号,由于设备手册显示其为1路控制,通常对应 power 字段。如果为多路版本,则对应 power1。
| 动作 | Order JSON 示例 | 业务含义 |
|---|---|---|
| 开启 | {“power”: 1} 或 {“power1”: 1} | 继电器吸合,线路导通,负载开始工作。 |
| 关闭 | {“power”: 0} 或 {“power1”: 0} | 继电器断开,线路切断,负载停止工作。 |
| 先断后通 (脉冲) | {“reset”: 3000} | 立即断开电路,保持断开状态3秒后,自动重新闭合(常用来重启路由器等设备)。 |
| 先通后断 (点动) | {“point”: 5000} | 立即接通电路,保持接通状态5秒后,自动断开(常用于门禁开门或自动喂食器)。 |
注意reset 和 point 命令的参数单位为毫秒(ms)。
3.4 实际对接示例
以下展示如何使用 curl 命令控制设备开启:
场景:控制设备ID为 820720 的设备开启灯光。
组合指令device = 820720order = {“power”: 1}
请求示例
正常情况下,设备会在 80-120ms 内响应并执行动作。
4. 高级功能与场景应用
除了简单的开关,AC5-10A接口支持更复杂的逻辑控制,无需业务后台维护定时任务队列。
4.1 精准定时与自动化
接口支持“延时自动恢复”功能,这对于防止设备因忘记关断而造成的能源浪费非常实用。场景:控制排风扇通风,5分钟后自动关闭。指令: {“point”: 300000} (通5分钟,断)该指令下发后,设备会立即吸合(开),300秒后自动断开(关),即使手机断网也不影响该时序逻辑。
4.2 设备状态同步
虽然本文主要讲“下发控制”,但为了系统完整性,对接“消息推送”功能。当设备被物理按键按下或定时任务触发时,设备会主动向配置的服务器推送状态变更,确保App/Web端显示的开关状态与物理实体保持一致。
5. 常见问题与排错
签名错误(401)请检查时间戳是否为Unix秒级(非毫秒),并确认MD5结果为32位小写十六进制字符串。
设备离线(1002)*AC5-10A直连2.4G WiFi,请确保网络稳定且未连接5G频段。*
命令无响应确认
order字段是否使用了正确的指令集。若无法确定是power还是power1,请参照该设备的产品手册页面。
通过以上步骤,开发者即可在10分钟内完成AC5-10A低压控制开关的API对接,实现远程继电器通断控制。如需对接入代码进行单元测试,可参考平台提供的代码示例模块。