AC4-30A是一款支持HTTP接口的WiFi通断器,无需网关即可对接。核心思路是:通过签名认证调用开放接口,利用设备自带的point和reset命令实现定时任务,再由你的业务系统(如定时任务框架)在指定时间触发即可。
1. 解决概述
本方案的目标是通过芯步开放的平台HTTP接口,对接AC4-30A智能通断器,构建一个稳定、可扩展的远程定时任务控制系统。AC4-30A 是一款大功率(最大30A/6600W)的WiFi智能通断器,具有开放接口、无需网关、响应快的特点 。
我们将利用其支持的“先通后断”和“先断后通”指令,结合业务层(如你的服务器、云函数或本地服务)的定时调度机制,实现对各类强电设备(如广告灯箱、水泵、机房服务器、大功率热水器等)的精细化定时管理。
逻辑架构图
graph LR
subgraph 管理层
A[管理员/用户] --> B(业务系统/云端);
B -->|定时任务触发| C[定时任务引擎];
end
subgraph 接入层
C -->|HTTP POST 指令| D{芯步开放API};
D -->|签名验证/路由| E[设备消息队列];
end
subgraph 设备层
E -->|MQTT推送| F[AC4-30A 通断器];
F -->|控制| G[连接电器负载];
end
G -->|状态回传| F;
F -->|心跳/状态上报| D;2. 准备工作
在开始开发前,请确保完成以下硬件准备和平台配置:
硬件准备
AC4-30A 智能通断器设备(已安装并通电)。
220V 交流电源及待控制的电器(确保电流不超过30A)。
平台准备
注册并登录芯步开发者平台。
在平台控制台中获取 AppID 和 AppSecret(用于接口签名认证)。
在平台中添加设备,获取AC4-30A的 Device ID。
3. 接口对接核心:签名与认证
AC4-30A 的开放接口通过 AppID、时间戳和动态签名来保证安全性,所有 HTTP 请求均需携带这些参数。
1. 请求地址
https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}2. 签名算法(Python示例)签名生成逻辑:sign = md5( md5(AppSecret) + ts )。为了防止在代码中硬编码敏感信息,将签名生成封装为一个独立的函数。
4. 实现“定时任务”控制方案
AC4-30A支持HTTP即时指令。若要实现“定时任务控制”,无需依赖设备固件的定时器(虽然它也支持简单的延时),而是采用 “业务层定时触发 + 即时指令下发” 的架构。这种方案更灵活,易于管理和记录日志。
4.1 即时控制指令集
该设备支持以下核心JSON指令。注意:power指令用于改变当前状态,而point和reset本身就包含了时间维度 。
| 功能描述 | 指令JSON | 适用场景 |
|---|---|---|
| 开启 | {"power": 1} | 立即接通电路 |
| 关闭 | {"power": 0} | 立即断开电路 |
| 先通后断 (点动) | {"point": 5000} | 接通保持5秒后自动断开。用于控制门禁电锁、冲水阀等。 |
| 先断后通 (复位) | {"reset": 3600000} | 断开,1小时 (360万毫秒) 后自动重新接通。适用于路由器重启、设备冷启动。 |
4.2 Python 请求封装示例
以下是封装好的控制函数,可直接调用实现对设备的物理控制 。
4.3 “定时任务”业务逻辑实现
假设用户需要在 每周一至周五的 09:00 开启设备,在 18:00 关闭设备。业务端(你的服务器)仅需设置两个定时触发器 。
业务流程
任务调度器检查:业务系统轮询数据库中的定时任务表(或使用 Linux Crontab、APScheduler 等)。
时间匹配触发:当前时间达到 09:00。
计算签名:调用上述
generate_sign_and_ts生成实时签名。下发指令:调用
control_device,传入{"power": 1}。结果处理:记录操作日志;若设备离线或网络故障,可配置重试机制。
定时任务逻辑演示 (Python APScheduler) :
5. 实景联动方案
AC4-30A不仅支持云端定时,还可以结合物理按键实现更复杂的逻辑 。
第一种场景:会议室投影与幕布联动利用
point指令。当管理员按下“一键关机”按钮时,业务系统向 AC4-30A 发送{"point": 120000}。投影仪通电开机,由于指令设置了延时,2分钟后自动断电,防止投影仪灯泡因立即断电而受损。第二种场景:远程重启服务器利用
reset指令。当发现网络拥堵时,管理员可在后台点击“重启路由器(10分钟后)”。业务系统计算好当前时间戳,定时发送{"reset": 600000}或定时发送{"power": 0}并在10分钟后发送{"power": 1}。AC4-30A 将断开设备电源,并在指定毫秒数后自动接通,完成冷重启。
6. 注意事项与最佳实践
时钟同步:签名生成依赖时间戳
ts。请确保发起请求的服务器系统时间与标准时间误差不超过5分钟,否则接口会报签名错误 。局域网直连与私有化:芯步支持私有化部署。如果你的业务系统与 AC4-30A 处于同一个局域网,且对公网稳定性有顾虑,可以配置局域网 IP 直连模式,指令延迟可降低至 20ms 以内。
设备离线处理:在设置长期定时任务时,需考虑设备因 WiFi 信号弱而离线的场景。业务端实现“异步回调”机制:接收设备的状态改变回调(Webhook),或在任务执行失败时进行短信/应用内告警。
功率限制:虽然 AC4-30A 支持 30A 电流,但请确保接线端子的铜线压接牢固,避免大电流下发热。对于感性负载(电机、空调压缩机),降额至 1100W 以内使用 。
多设备管理:接口的
device参数支持批量传值,例如device=820720,820721。一次 API 调用可以控制多个通断器同时动作,这在大规模灯控场景下非常有用 。
通过上述方案,你可以轻松地将 AC4-30A 融入现有的业务系统中,实现高精度的远程电源管理。