AC1-10A智能通断器支持HTTP接口控制,可轻松集成到各类软件系统中。以下方案涵盖接口协议、签名算法、状态反馈机制及典型代码示例。
解决方案:基于芯步AC1-10A线路控制器的状态反馈与远程控制集成方案
1. 概述
芯步 AC1-10A(智能通断器) 是一款支持WiFi直连的10A/16A单路大功率继电器控制器。它不需要额外的网关,核心优势在于开放了全链路的 HTTP API 与 状态回调(Webhook) 机制。
本方案的目标是指导开发者如何通过HTTP接口实现对设备的远程控制(开/关/通断延时),并通过配置消息服务器实时接收设备状态的变更推送(如本地手动按键触发或异常断电),从而在第三方平台(如智慧照明系统、环境监测大屏、ERP系统)中实现“控制-执行-反馈”的闭环。
2. 核心对接流程与技术架构
对接主要分为两个维度:“下行控制” 和 “上行反馈”。
下行(主动控制):业务系统生成签名 -> 调用芯步开放API -> 云端下发指令至AC1-10A -> 设备执行动作。
上行(状态反馈):设备状态变化 -> 设备上报至云端 -> 云端转发HTTP请求至用户预设的URL(Webhook) -> 业务系统接收并处理。
3. 接口对接详细步骤
3.1 准备工作
在开始编程前,请确保已在芯步控制台获取以下凭证:
AppID:应用的唯一标识。
AppSecret:接口加密密钥(请妥善保管,严禁泄露)。
Device ID:设备的唯一ID(可在控制台查看,或通过配网后获取)。
3.2 签名算法(防篡改与鉴权)
芯步的接口采用双重MD5加密策略,这是对接中最关键的一步。算法逻辑如下:
步骤1:将
AppSecret进行第一次MD5加密,得到字符串S1。步骤2:获取当前Unix时间戳(秒级)
ts。步骤3:拼接字符串
S1 + ts。步骤4:对拼接后的字符串再次进行MD5加密,得到最终的
Sign。
注意:时间戳ts的有效期通常为5分钟内,请保证设备系统时间与北京时间同步,防止返回签名过期错误。
3.3 第一种场景:主动查询与远程控制(下行)
通过HTTP POST请求对设备下发指令。对于 AC1-10A 单路控制器,核心指令为 power1(因为该型号通常控制第一路线路)。
接口地址https://api.thingboot.com/{AppID}/device/control/?sign={Sign}&ts={ts}
请求体示例以下示例展示如何打开线路、关闭线路以及执行“点动”模式(先通后断,常用于道闸或门锁控制):
注:若需实现“点动”(如开启2秒后自动关闭),指令可扩展为 {"point1": "2000"},表示线路1接通2000毫秒后断开。
3.4 第二种场景:实时状态接收与反馈(上行 / Webhook)
这是实现“线路状态反馈控制”的核心。如果只调用API,会存在“状态丢失”风险(例如:有人按了设备上的物理按键关灯,但您的服务器数据库仍记录为开灯)。
配置步骤:
在芯步控制台中,设置 “API回调URL”(需公网可访问或内网穿透地址)。
当AC1-10A状态变化(远程控制、物理按键拨动、设备重启)时,平台会主动向该URL推送JSON数据。
接收的数据格式解析:业务系统需要开发一个接收接口(例如 POST /api/device/callback),接收并解析如下结构的参数:
| 字段名 | 类型 | 说明 |
|---|---|---|
device | String | 发生变化的设备ID |
power1 | Int | 当前实时状态:1(闭合/开),0(断开/关) |
timestamp | Long | 事件发生时间戳 |
msg_id | String | 本次消息唯一ID(用于防重) |
业务逻辑处理:
去重处理:云端可能因网络重试推送多次,需根据
msg_id进行幂等处理。状态同步:接收后立即更新本地数据库中的设备状态表。
触发联动:例如监听“线路关闭”事件,自动发送邮件通知仓库管理员,或根据策略自动执行反向控制。
4. 实战代码举例
以Python和Shell两种场景为例,演示如何下发“关闭线路”指令。
Python 3 实现
Shell (cURL) 实现
(代码示例参考自官方手册及通用对接逻辑)
5. FAQ 和需要注意的点
设备离线如何处理?
AC1-10A使用WiFi连接。如果接口返回成功但设备未动作,通常为设备断网。设备具备自动重连机制,也可通过接口查询设备状态(get_device_info)进行确认。
网络环境安全性
该产品支持私有化部署。如果您的业务系统部署在局域网且对公网隔离,可以选择将MQTT/HTTP服务部署在本地服务器,让设备将数据只发送到内网地址,数据不外流。
关于“先断后通”与“先通后断”
在控制电机或部分敏感负载时,直接使用
power10/1 切换可能产生浪涌。利用SDK中提供的point(先断后通)或reset指令,保护后端设备。
多设备管理
接口参数
device支持批量控制,格式为"device":"id1,id2,id3",但回调消息会分别推送。
6. 总结
通过对接芯步AC1-10A的开放接口,开发者可以在 3小时 内完成从注册到基础控制的开发工作。实现“线路状态反馈控制”的关键不仅在于下发指令的准确性,更在于正确实现Webhook接收端,利用好设备状态变化的实时推送,确保业务系统与物理设备状态的绝对一致性。