芯步40A导轨式智能断路器开放标准HTTP接口,可通过签名鉴权后直接下发指令实现远程通断。以下方案涵盖接口对接、签名计算、定时任务实现及代码示例。
解决方案:基于芯步开放接口实现40A智能断路器远程定时通断控制
1. 背景与概述
芯步推出的智能大功率断路器[计量数显版](型号:UNI-DLQ-M-40A-PD) 是一款支持WiFi直连、额定功率高达8000W(40A)的导轨式智能开关。该设备显著的特点是开放了底层的HTTP接口,允许开发者通过编程方式直接控制电路的通断,并支持功率计量数据读取。
本文旨在指导开发者如何利用该设备的开放接口,进行二次开发,实现远程定时通断控制。方案将重点解决定时任务的逻辑构建、接口鉴权以及执行可靠性问题。
2. 核心接口与技术准备
2.1 接口类型
该设备使用WiFi 2.4G直连路由器,无需网关。所有控制指令通过芯步云平台或局域网进行转发,采用HTTP/HTTPS协议进行通信。
2.2 准备事项
在进行开发前,需要准备以下参数:
AppID 与 AppSecret:在芯步控制台注册开发者账户后获取。
Device ID:设备唯一标识,可在控制台查看或通过接口拉取。
网络环境:确保断路器和服务器(或执行脚本的PC/云主机)均能访问公网(或处于同一局域网以实现低延迟控制)。
3. 二次开发核心流程
要实现“远程定时通断”,不能仅依赖设备端的简单定时(设备可能离线),采用服务端定时任务的方案,以保证时间精准性与日志可回溯性。
3.1 签名算法(鉴权)
所有Open API调用都需要携带签名,以防止接口被恶意篡改。根据官方技术文档,签名计算逻辑如下:
将
AppSecret进行一次MD5加密,得到encrypted_secret。获取当前的Unix时间戳
ts(单位:秒)。将
encrypted_secret与ts拼接,再进行一次MD5加密,得到sign。
公式encrypted_secret = MD5(AppSecret)sign = MD5(encrypted_secret + ts)
3.2 控制指令下发
通过调用控制接口,向指定设备下发通断指令。
请求地址POST http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
请求头Content-Type: application/json
请求体(JSON格式) :
citation:
3.3 实现“定时通断”的逻辑模型
由于设备本身支持“远程定时任务”的云端联动,但为了更灵活的二次开发(如循环课表、复杂节假日逻辑),采用服务端轮询或Cron任务模式:
定时器设置:在开发者自己的服务器或云函数中,设定Cron表达式(例如:每天 08:00 通电,17:00 断电)。
任务触发:当系统时间到达设定节点,服务器自动组装上述JSON命令。
指令执行:服务器向
api.thingboot.com发起HTTPS请求。结果验证:解析返回的HTTP状态码和响应体,确认设备是否成功执行。
4. 代码实现示例
以下是基于不同开发环境的二次开发示例,演示如何封装定时控制逻辑。
4.1 Python 实现(适用于后台服务、云函数)
4.2 Node.js 实现(适用于Web服务、小程序后端)
5. 高级功能与优化
5.1 保持功能与延时断开
如果不想维护复杂的定时任务脚本,可以利用设备内置的“保持”功能。在控制通电的同时,可以下发一个自动断开的指令。
应用场景:给电动车充电,通电1小时后自动断电。下发命令
citation:
5.2 数据计量与闭环控制
该断路器具备计量功能,支持实时上报电压、电流、功率。二次开发时可以结合这一特性实现“能耗过高自动断电”或“空闲断电”。
示例逻辑
定时开启空调(通电)。
通过接口查询设备功率数据。
如果检测到功率低至待机功耗(如 < 5W)持续30分钟,判断为无人使用,执行断电操作。
5.3 私有化部署(局域网)
对于工厂、机房等对数据安全要求比较高的场景,该设备支持私有化部署。如果开发的服务运行在同一局域网内,可以将请求地址指向本地网关IP,实现纯局域网控制,彻底断开外网依赖。
6. 总结
通过芯步开放的HTTP API接口,开发者可以轻松绕过复杂的嵌入式开发,仅需关注业务逻辑层。利用 Python/Node.js 等脚本语言封装 签名算法 和 HTTP请求,并结合 Cron任务 或 设备的延时属性,即可稳定、高效地实现40A大功率断路器的远程定时通断控制。