CATALOG

芯步20A智能断路器开放完整的HTTP API接口,你可以通过签名鉴权后直接下发命令实现远程通断控制。实现定时任务有两种方式:一是利用设备内置的“定时通断”参数(reset/point),无需后端维护定时队列;二是在你的服务器上用cron定时调用API触发。以下按“准备工作→核心接口→定时方案”的顺序展开说明。

一、 核心准备工作:获取密钥与设备ID

在进行二次开发之前,你需要准备以下三个关键凭证。这些信息在芯步官方的开发者控制台中获取。

  1. AppId 和 AppSecret

    • 登陆芯步官网,进入控制台的“开发设置”页面。

    • AppId:通常作为URL路径的一部分,用于标识你的应用身份。

    • AppSecret:用于生成接口签名(Sign)的密钥,请勿泄露

  2. 设备ID (Device ID)

    • 在控制台的“设备列表”或“产品管理”中,找到你已配网的20A智能断路器。

    • 记录下那一串纯数字的ID(例如:820720)。

二、 接口鉴权机制:签名计算

为了防止接口被恶意调用,芯步的API采用了动态签名验证。所有的控制请求都需要在URL中携带sign(签名)和ts(时间戳)。

签名生成逻辑(伪代码级说明):

Sign=MD5(MD5(AppSecret)+ts)Sign = MD5( MD5(AppSecret) + ts )

具体步骤如下:

  1. 将你的 AppSecret 进行一次MD5加密,得到字符串 S1

  2. 获取当前的Unix时间戳(秒级,例如 1714352400),记为 ts

  3. S1ts 进行拼接,得到 S2(注意:是拼接字符串,非加密)。

  4. S2 再次进行MD5加密,最终得到的字符串就是 sign

为什么要这么做?这种机制确保了每次请求的签名都不同(因为ts在变化),同时服务端会校验时间戳的有效性,防止请求被抓包后重放攻击。

三、 即时控制与延时任务:接口命令详解

芯步的20A断路器不仅支持简单的开关,还内置了定时任务处理器。这意味着你不需要在服务器端维护复杂的定时队列,直接通过JSON参数告诉芯片“什么时候做什么事”即可。

1. 基础远程开关

这是最核心的功能,立即让断路器通电或断电。

  • 请求地址POST http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

  • 请求头Content-Type: application/json

  • 请求Body

2. 实现“远程定时任务”的两种方式

针对“远程定时任务”的需求,如果你希望实现“5分钟后关闭”或“先通电1小时再关”,使用设备自带的倒计时或定时属性,这样即便网络中断,设备也会在芯片内部执行完任务。

方案 A:简单延时任务(倒计时复位)该命令会立即改变状态,并在设定的毫秒数后自动恢复。这非常适合需要“临时通电”的场景。

  • 应用场景:远程给服务器重启(先断后通,间隔10秒)、给电动车充电1小时后自动断电。

  • 命令示例

    • reset:先执行断开动作(如果是断电状态,则先通电),等待 interval 毫秒后,执行相反动作。

    • interval:3600000 毫秒 = 1 小时。

方案 B:设备内置定时(预先规划)虽然用户问的是“远程”下发,但你可以通过远程接口,为设备设置一组定时表。这利用了设备的本地RTC(实时时钟)能力。

  • 场景:每日固定时间开关(如:每天早上8点开灯,下午6点关灯)。

  • 实现:调用设备的时间表配置接口(具体参数视固件版本而定,通常包含 timerepeat 字段),设备断网也会执行

四、 实战开发:定时任务调度器架构

假设你需要构建一个后端服务来实现“动态定时任务”(例如用户在前端设置“今晚8点打开热水器”),推荐的技术架构如下:

  1. 前端/用户端:用户设定时间(2024-05-01 20:00:00)和动作(Power=1)。

  2. 后端逻辑(以Python + APScheduler或Linux Crontab为例)

    • 你需要在你的服务器上建立一个任务表。

    • 当到达设定的时间时,你的后端服务器执行签名算法,并发送HTTP请求到芯步的API。

  3. 代码核心逻辑示例(Python):

五、 针对20A产品的特定配置与高级功能

  1. 多路控制(如果是4路版本)如果使用的20A断路器是多路的(例如型号AC4-20A),order中可以使用power1power2等来单独控制每一路

  2. 私有化部署(局域网)如果对网络延迟或数据安全有比较高要求,20A断路器支持私有化部署。在设备配网时,可以将API地址指向你自己的私有服务器IP,所有控制指令将在局域网内闭环完成

  3. 状态同步如果只是定时开关,不需要实时状态反馈即可闭环。但如果需要在界面上显示“当前是否通电”,使用芯步提供的MQTT协议回调机制。设备状态变化时,平台会主动推送到你的服务器,这样你的数据库里就能实时记录断路器当前是ON还是OFF。

总结

通过对芯步20A智能断路器的二次开发实现远程定时任务,核心在于掌握动态签名算法。实现定时任务有两种路径:

  • 简单场景(如延时断电):优先使用设备API中的reset参数,由硬件本地执行,最为可靠。

  • 复杂场景(如每周固定多时段开关):在你的业务服务器上部署定时任务(Cron Job),在指定时间通过HTTP API下发power指令即可。