AC2-10A 是一款支持HTTP接口控制的智能通断器,适用于需要远程控制和状态监测的各类场景。以下方案涵盖签名计算、指令下发、状态回调等关键环节的完整对接流程。
1. 背景与概述
在物联网(IoT)项目中,对电气设备的远程通断控制和实时状态监测是基础设施自动化的核心需求。AC2-10A是芯步推出的一款智能通断器(智能开关),额定功率高达2200W(10A),支持WiFi 2.4G直连,具备HTTP接口控制及状态实时推送能力。
本方案的目标是指导开发者如何通过调用芯步开放平台提供的HTTP API接口,实现对AC2-10A设备的状态查询、远程开关控制以及线路变化实时反馈的集成。
2. 接口对接前准备
在开始编码对接前,需要完成以下准备工作:
硬件准备
芯步 AC2-10A 智能通断器设备。
220V交流电供电环境(注意安全用电)。
平台账号
注册并登录芯步开发者控制台。
在控制台的“开发设置”中获取 AppID(应用标识)和 AppSecret(应用密钥)。
设备激活
使用芯步提供的“批量配网小程序”或管理控制台,将AC2-10A设备连接至WiFi网络,并记录下设备的唯一标识 Device ID(设备ID)。
回调准备(关键)
准备一台具有公网可访问域名的服务器(用于接收设备状态变化的推送消息)。
3. API 签名机制
芯步的API采用双层MD5签名机制以确保接口调用的安全性。所有HTTP请求(GET/POST)均需携带签名。
3.1 签名算法步骤
假设您的参数如下:
AppSecretabc123ts(当前Unix时间戳,秒):1713256700
Step 1: 对 AppSecret 进行一次MD5加密,得到 Sign_A。Sign_A = md5("abc123") = "e99a18c428cb38d5f22e03"
Step 2: 将 Sign_A 与时间戳字符串拼接,形成 Sign_B。Sign_B = Sign_A + ts = "e99a18c428cb38d5f22e03" + "1713256700" = "e99a18c428cb38d5f22e"
Step 3: 对 Sign_B 再次进行MD5加密,得到最终的 Sign。Sign = md5(Sign_B) = "c4ca4238a0b923820dcc"
3.2 请求头拼接
最终API请求URL格式为:https://api.thingboot.com/{AppID}/device/control/?sign={Sign}&ts={ts}
4. 核心功能对接实现
4.1 远程控制(下发指令)
场景:服务器/APP需要远程闭合或断开AC2-10A的线路。
请求方式:POST
Content-Type:application/json
请求体参数
device:目标设备ID(字符串)。order:控制命令,AC2-10A通常为{"power1": 1}(开启)或{"power1": 0}(关闭)。
示例代码(Python)
4.2 设备状态实时反馈(回调机制)
单纯的轮询无法及时获知设备状态(例如通过本地物理按键按下开关)。AC2-10A支持“类似微信公众号的消息机制”,当设备状态变化时,会主动推送至指定的URL。
对接步骤:
配置回调URL:在芯步控制台中,将您的服务器地址设置为回调URL(例如
https://yourdomain.com/api/device/callback)。接收数据:当设备通断状态变化时,芯步云会向该URL发送POST请求。
处理逻辑:解析JSON数据,更新数据库中的设备状态,或触发后续自动化任务。
回调数据包示例(推测结构,请以实际文档为准)
注意:接收回调的服务器接口需要能够处理高并发,并在收到请求后尽快返回 HTTP 200 OK,避免芯步云重试推送。
4.3 主动查询(可选)
如果无法使用公网回调,或需要定时校验数据,可采用主动查询接口获取设备最新状态。
接口:设备状态查询API(根据API文档路径,通常为
/device/status/)。方法:GET请求,携带签名和设备ID。
5. 高级功能与应用场景
利用AC2-10A的开放接口,还可以实现以下高级逻辑:
自定义动作(脉冲模式)
场景:控制门禁或电子锁。
实现:下发指令如
{"power1": 1}接通,延时500ms后,立即下发{"power1": 0}断开。此逻辑也可以在设备端通过预设“自定义动作”实现(如设置打开若干毫秒后自动关闭)。
断网本地执行
AC2-10A支持设置多组WiFi,且在断网重连机制上做了优化。开发者无需担心网络抖动,设备会在网络恢复后自动同步状态到云端。
私有化部署(局域网控制)
若对数据安全要求比较高,AC2-10A支持私有化部署。此时API请求地址不再是公有云域名,而是您自建的服务器IP,所有流量在局域网内闭环。
6. 排查和需要注意的点
| 常见问题 | 解决方法 |
|---|---|
| 签名错误 | 检查MD5结果是否为32位小写;时间戳 ts 是否为秒级,需保证服务器时间与标准时间误差小于5分钟。 |
| 设备离线 | AC2-10A仅支持2.4G WiFi,确认路由器未开启双频合一;检查设备供电是否正常。 |
| 未收到回调 | 检查回调URL是否公网可达(不支持localhost);确认服务器处理逻辑未抛出异常导致响应非200。 |
| 命令格式错误 | 确保 order 字段是一个标准的JSON字符串,例如 '{"power1":1}',而非Python dict的字符串形式。 |
7. 总结
通过对接芯步AC2-10A的开放接口,开发者可以在3步内实现设备控制:
计算签名:通过双层MD5保证通信安全;
下发指令:通过POST请求控制线路通断;
接收推送:通过回调接口获知实时状态变化。
该方案适用于智能楼宇、远程农业灌溉、家居自动化等多种需要2200W以下功率控制的场景。若在对接过程中遇到具体技术障碍,可通过官方渠道联系技术支持工程师进行联调。