CATALOG

AC1-10A智能控制器是芯步推出的基础通断设备,但通过其开放的HTTP接口,你可以将它改造为支持任意定时策略、复杂触发条件的智能控制系统——甚至接入天气API实现“日落开灯、日出关灯”。以下是完整的二次开发方案。

一、 AC1-10A 二次开发基础

1.1 为什么选择 AC1-10A?

  • 开放性:提供标准HTTP接口,无需网关,设备直连WiFi

  • 可控性:支持单路通断控制、先通后断/先断后通(point模式)、复位等操作

  • 集成度:可嵌入现有的Web、APP、小程序或后端服务中

  • 私有化:支持部署私有MQTT/HTTP服务器,数据不出局域网

1.2 接口调用核心流程

芯步的接口采用动态签名验证机制,每次请求都需要实时计算签名。

二、 环境准备与凭证获取

在开始编码前,请完成以下准备工作:

  1. 设备配网:下载“芯步”或使用提供的配网小程序,将AC1-10A连接到2.4G WiFi网络

  2. 获取凭证

    • 登录[芯步控制台]。

    • 在“开发设置”中获取 AppIDAppSecret(开发者密码)

    • 在“设备列表”中记录下AC1-10A的 Device ID

  3. 开启调试模式(可选):开发阶段开启“调试模式”,该模式下系统暂时不校验签名和时间戳,方便快速验证功能

三、 签名算法详解

签名是二次开发的安全基础,计算公式如下:

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 系统设计

  1. 任务调度器:使用 Linux Crontab 或 APScheduler。

  2. 任务执行器:封装上述的签名算法和HTTP请求。

  3. 状态记录:可选,将设备日志写入数据库。

5.2 实现方案 A:使用 Linux Crontab(轻量级)

对于固定的定时任务(如每天晚上8点关灯),这是最稳定的方案。

  1. 编写Python脚本 (control_ac1.py)

  2. 配置 Crontab

5.3 实现方案 B:APScheduler + Flask(动态/Web可视化管理)

如果你需要像智能家居APP一样,可以在网页上随时新增、删除或修改定时任务(例如只在工作日生效),你需要一个数据库和调度后台。

核心逻辑实现类

六、 高级功能:定制化动作与联动

利用AC1-10A的特殊模式,可以实现更精细的控制需求。

6.1 脉冲输出

在智能家居改造中,AC1-10A常用于控制老式门禁或复位按钮。

  • 命令{"point1": 200}

  • 效果:线路接通200毫秒后自动断开。配合定时任务,可以实现“每天早晨9点按一下门铃”或“定时重启路由器”。

6.2 基于外部条件的联动

  • 日出/日落模式:定时脚本在运行时,先调用天气API获取当地日落时间,再设置执行时间。

  • 设备状态同步

    • 被动接收:若需实时获知设备状态,可在芯步控制台设置“消息推送URL”,设备状态变化时会主动HTTP回调你的服务器

    • 主动查询:调用设备详情接口获取当前功率/状态。

七、 部署与运维

  1. 私有化部署:如果你的业务对公网依赖性强或对延迟敏感,可将AC1-10A切换至局域网模式。设备支持自建服务器,你只需将接口请求地址从 api.thingboot.com 修改为设备内网的IP地址即可

  2. 错误处理

    • 代码中必须包含 try-catch 逻辑,防止因网络抖动导致脚本崩溃。

    • 记录日志,排查定时任务为何未执行。

  3. 网络质量:AC1-10A仅支持2.4G WiFi,确保信号强度。设备可配置5组备选WiFi,增强稳定性

八、 总结

通过二次开发,AC1-10A不再仅仅是一个简单的通断器。本方案利用其开放API,在云端或本地搭建了调度中心,实现了从 “手动点控”“自动化定时” 的跨越。开发者甚至可以将其集成到企业能耗管理系统中,实现基于定时策略的无人值守控制。