AC1-10A智能控制器是芯步推出的基础通断设备,但通过其开放的HTTP接口,你可以将它改造为支持任意定时策略、复杂触发条件的智能控制系统——甚至接入天气API实现“日落开灯、日出关灯”。以下是完整的二次开发方案。
一、 AC1-10A 二次开发基础
1.1 为什么选择 AC1-10A?
开放性:提供标准HTTP接口,无需网关,设备直连WiFi 。
可控性:支持单路通断控制、先通后断/先断后通(point模式)、复位等操作 。
集成度:可嵌入现有的Web、APP、小程序或后端服务中 。
私有化:支持部署私有MQTT/HTTP服务器,数据不出局域网 。
1.2 接口调用核心流程
芯步的接口采用动态签名验证机制,每次请求都需要实时计算签名。
二、 环境准备与凭证获取
在开始编码前,请完成以下准备工作:
设备配网:下载“芯步”或使用提供的配网小程序,将AC1-10A连接到2.4G WiFi网络 。
获取凭证
登录[芯步控制台]。
在“开发设置”中获取 AppID 和 AppSecret(开发者密码)。
在“设备列表”中记录下AC1-10A的 Device ID。
开启调试模式(可选):开发阶段开启“调试模式”,该模式下系统暂时不校验签名和时间戳,方便快速验证功能 。
三、 签名算法详解
签名是二次开发的安全基础,计算公式如下:
Sign = md5( md5(AppSecret) + ts )
参数说明
AppSecret:控制台获取的开发者密码。
ts:Unix时间戳(秒级),用于防止请求重放攻击。
拼接:先将AppSecret进行MD5加密得到32位小写字符串,再拼接上ts,最后将整个字符串再次进行MD5加密。
四、 单次控制实现
在不依赖定时任务引擎的情况下,先实现基础的“通断”控制API。
4.1 请求地址
https://api.thingboot.com/{AppID}/device/control/?sign={YourSign}&ts={ts}4.2 请求参数 (Body)
device:设备ID(字符串),多个设备用逗号隔开。
order:控制指令(JSON字符串)。
4.3 支持的指令集
| 指令格式 | 功能描述 | 应用场景 |
|---|---|---|
{"power1": 1} | 开启第1路 | 控制设备通电启动 |
{"power1": 0} | 关闭第1路 | 控制设备断电停止 |
{"point1": 500} | 先通后断 | 输出500ms脉冲信号,模拟按键 |
{"reset": 1} | 设备复位 | 恢复出厂设置 |
4.4 Bash 代码示例
五、 远程定时任务解决方案
为了实现“远程定时任务”,我们需要一个中间服务(一台云服务器或树莓派),因为AC1-10A本身不带复杂的定时芯片,但开放接口给了我们无限可能。
5.1 系统设计
任务调度器:使用 Linux Crontab 或 APScheduler。
任务执行器:封装上述的签名算法和HTTP请求。
状态记录:可选,将设备日志写入数据库。
5.2 实现方案 A:使用 Linux Crontab(轻量级)
对于固定的定时任务(如每天晚上8点关灯),这是最稳定的方案。
编写Python脚本 (
control_ac1.py)配置 Crontab
5.3 实现方案 B:APScheduler + Flask(动态/Web可视化管理)
如果你需要像智能家居APP一样,可以在网页上随时新增、删除或修改定时任务(例如只在工作日生效),你需要一个数据库和调度后台。
核心逻辑实现类
六、 高级功能:定制化动作与联动
利用AC1-10A的特殊模式,可以实现更精细的控制需求。
6.1 脉冲输出
在智能家居改造中,AC1-10A常用于控制老式门禁或复位按钮。
命令
{"point1": 200}效果:线路接通200毫秒后自动断开。配合定时任务,可以实现“每天早晨9点按一下门铃”或“定时重启路由器”。
6.2 基于外部条件的联动
日出/日落模式:定时脚本在运行时,先调用天气API获取当地日落时间,再设置执行时间。
设备状态同步
被动接收:若需实时获知设备状态,可在芯步控制台设置“消息推送URL”,设备状态变化时会主动HTTP回调你的服务器 。
主动查询:调用设备详情接口获取当前功率/状态。
七、 部署与运维
私有化部署:如果你的业务对公网依赖性强或对延迟敏感,可将AC1-10A切换至局域网模式。设备支持自建服务器,你只需将接口请求地址从
api.thingboot.com修改为设备内网的IP地址即可 。错误处理
代码中必须包含
try-catch逻辑,防止因网络抖动导致脚本崩溃。记录日志,排查定时任务为何未执行。
网络质量:AC1-10A仅支持2.4G WiFi,确保信号强度。设备可配置5组备选WiFi,增强稳定性 。
八、 总结
通过二次开发,AC1-10A不再仅仅是一个简单的通断器。本方案利用其开放API,在云端或本地搭建了调度中心,实现了从 “手动点控” 到 “自动化定时” 的跨越。开发者甚至可以将其集成到企业能耗管理系统中,实现基于定时策略的无人值守控制。