AC2-10A智能通断器支持HTTP/Websocket接口控制,同时具备状态变化实时推送能力,很适合做二次开发。以下方案围绕“下发指令-状态反馈-异常告警”的闭环来设计,你可以根据实际业务场景调整。
1. 解决概述
AC2-10A 是一款支持 HTTP 接口和实时消息推送的智能通断器。传统的定时开关只能按照预设时间执行通断,无法感知执行后的实际状态(如线路是否真的通断、设备是否故障)。
本方案利用芯步开放平台的 HTTP 控制接口 与 状态实时推送机制,构建一个具备“下发指令 → 执行动作 → 状态回读 → 异常告警”完整闭环的智能控制系统。
核心实现逻辑
控制端:通过二次开发的业务系统(Web/App/Server)调用 API 下发定时/即时指令。
执行端:AC2-10A 接收指令并执行线路通断。
反馈端:设备状态变更时,主动推送状态至开发者指定的 URL,实现实时监控。
2. 准备工作与环境配置
在开始二次开发前,需要完成以下配置:
获取凭证:登录芯步控制台,获取
AppID和AppSecret。绑定设备:确保 AC2-10A 已配网并绑定至账号下,获取目标
deviceId。配置消息推送 URL:在控制台开发设置中,配置接收设备状态的回调 URL(HTTP/HTTPS)。这是实现“状态反馈”的关键步骤。
开发环境:任意支持 HTTP 协议的语言(本文示例以 Java/Python 为主,通用逻辑适用于各类语言)。
3. 接口签名机制详解
为保证接口安全,芯步采用 双MD5签名机制。二次开发时需重点实现以下算法
Sign 算法
md5( md5(AppSecret) + ts )参数说明
AppSecret:开发者密码ts:当前 Unix 时间戳(秒)+:字符串拼接
代码实现示例 (Python)
4. 实现“精准定时控制”与“线路状态反馈”
传统的控制往往只包含上图中的“控制指令”部分,本次二次开发的重点在于通过 Websocket 或 HTTP 回调 实现完整的闭环。
4.1 核心命令扩展 (Order JSON)
针对定时控制和状态查询,二次开发时可使用以下命令结构
| 功能点 | 命令示例 (Order JSON) | 场景说明 |
|---|---|---|
| 即时通断 | {"power1": 1} (开启) / {"power1": 0} (关闭) | 控制线路1通断 |
| 先通后断 | {"point":{"relay":[1],"interval":1000}} | 接通1秒后自动断开(模拟点击) |
| 脉冲式触发 | {"reset":{"relay":[1],"interval":500}} | 先断开0.5秒再接通(重启设备) |
4.2 构建“状态反馈”接收端
为了实现实时监控,你需要部署一个公网可访问的 URL(如 https://yourdomain.com/yoyo/callback),用于接收设备推送过来的状态变更数据。
设备状态发生变化时(物理按键按下、定时器执行、API 控制成功),芯步平台会向该 URL 发送标准的 HTTP POST 请求。
二次开发:接收回调后,不仅记录日志,还应解析特定字段来验证操作是否成功 。
4.3 完整业务闭环示例
假设你要实现一个“办公室空调定时关机”并“验证是否真的断电”的逻辑:
执行:系统在 18:00 调用接口,发送
{"power1": 0}。等待:系统进入等待回调的状态。
反馈
若收到设备推送的
{"power1": 0, "status": "success"},更新数据库状态为“已关闭”。若在规定时间内未收到回调,系统自动重试或发送告警给管理员。
5. WebSocket 实时控制与长连接方案
对于需要 低延迟控制(如毫秒级响应)或需要 实时仪表盘 的场景,基于 HTTP 的轮询效率过低。芯步开放平台支持 WebSocket 接口,二次开发时可以采用双通道策略:
WebSocket 通道:用于实时监听设备的瞬时状态变化(如电流突变、按键按下事件),延迟更低。
HTTP 通道:用于下发定时任务配置、历史数据查询等非实时性操作。
注:Websocket 接入地址及订阅逻辑参考官方文档 开发文档 > 设备接口调用 章节。
6. 高级功能开发:异常检测与自动恢复
利用开放接口的 自定义动作 功能,可以在二次开发中实现高可用逻辑。
6.1 断电记忆与状态自检
场景:设备异常断电后恢复,AC2-10A 可能默认处于断开状态,导致服务器无法启动。
实现:开发一个守护脚本,每隔 5 分钟调用 设备状态查询接口(如果有)或通过 Ping 后端服务来检测,若发现应开未开的情况,自动触发
{"power1":1}进行自愈。
6.2 基于信号输入的联动
AC2-10A 支持 自定义两组信号输入执行响应动作。
场景:外接传统物理按钮。
二次开发:物理按钮按下时,设备会推送信号给服务器,服务器可以不直接控制继电器,而是先校验权限(例如当前时间段是否允许手动开启),再下发指令。这相当于将对硬件的控制权完全上收到软件逻辑中。
7. 总结
通过上述方案,芯步 AC2-10A 不再仅仅是一个简单的定时开关,而是演变为一个 可编程的边缘节点。
本次二次开发的核心收益包括:
双向透明:解决了传统开关“只管发指令,不管成不成”的痛点,通过回调机制实现了状态闭环。
高精度时序控制:利用
point和reset等丰富指令集,替代了低端的 PLC 简单时序功能。系统集成:标准 HTTP 接口使其极易融入现有的 MES、ERP 或智能家居系统。