芯步60A带计量智能断路器的开放接口采用标准HTTP协议,签名机制清晰,二次开发门槛较低。以下从接口对接、命令下发到定时任务实现,给出完整的工程化方案。
一、 解决概述
本方案的目标是利用芯步开放平台提供的HTTP API接口,对型号为UNI-DLQ-M-60A-P(或类似带计量功能的60A断路器)进行二次开发。核心目标是实现两个主要功能:远程实时通断控制 和 基于时间策略的定时自动化通断。
方案将基于Python/NodeJS等后端语言构建一个独立的定时任务调度服务,通过与芯步云平台交互,下发指令给指定设备。
二、 核心技术准备
在进行开发前,需要准备以下三项关键凭证和硬件:
硬件设备:确保60A带计量智能断路器已通电并完成网络配置(仅支持2.4G WiFi)。该设备无需网关,直连路由器。
平台凭证
AppID:应用唯一标识。
AppSecret:应用密钥,用于接口签名加密(请妥善保管)。
设备ID:在芯步控制台添加设备后,获取的唯一标识符(Device ID)。
三、 接口对接与签名机制
所有远程控制请求均需通过HTTP POST方式发送至https://api.thingboot.com。为了安全,芯步接口采用动态签名验证。
1. 请求地址
http(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
2. 签名生成规则
签名参数 sign 的生成算法为双重MD5加密,具体步骤如下:
步骤一:将
AppSecret进行一次MD5加密,得到secret_md5。步骤二:将
secret_md5拼接上当前的时间戳(秒级,即ts参数),得到字符串secret_md5 + ts。步骤三:对上述拼接后的字符串再次进行MD5加密,结果即为
sign。
公式sign = md5( md5(AppSecret) + ts )
3. HTTP Header设置
Content-Type: application/json
四、 实现远程通断控制
针对60A断路器,由于它是大功率设备,通常控制指令集中在单路控制上。
1. 下发指令格式
请求Body需包含 device 和 order 两个字段。
2. 控制参数详解
开启断路器
order字段值为{"power": 1}或继电器吸合指令。关闭断路器
order字段值为{"power": 0}。计量读取:通常设备默认会上报数据,若需主动查询,可使用特定查询指令或通过订阅设备状态接口获取(电压、电流、功率因数等)。
3. 实战代码示例(Python)
以下是一个封装好的单次控制函数:
五、 实现远程定时通断(自动化方案)
要实现“每周一至周五早上8点开,晚上18点关”类似复杂的定时任务,仅靠单次API调用是不够的。需要在自有服务器上实现定时任务调度机制(即开发者自行维护定时逻辑,到点触发上述API调用)。
1. 技术选型
轻量级方案(Python):使用
APScheduler库。通用方案:使用操作系统自带的 Crontab(Linux) 或 任务计划程序(Windows)。
企业级方案:使用消息队列(如RabbitMQ)配合延迟队列。
2. 实现逻辑
在数据库中创建定时任务表,存储
DeviceID、执行时间(Cron表达式)、目标状态(开/关)。后端服务轮询或监听任务队列。
当系统时间匹配任务时间时,调用第四步中的
control_breaker函数。
3. 利用设备硬件特性辅助定时
如果不想依赖外部服务器,可以充分利用断路器本身的固件能力。芯步部分设备支持“先通后断”等即时定时功能,这对倒计时断电场景很有用:
指令示例
{"reset": 3600000}效果:执行该指令后,断路器会立刻闭合(通电),并在1小时(3600000毫秒)后自动断开。这种方式延时精准且不依赖云服务器。
六、 进阶功能与数据处理
1. 获取计量数据
60A断路器核心价值在于计量。可通过两种方式获取数据:
被动接收:设备会主动上报电流、电压、功率、电量(kWh)数据到平台。可配置HTTP推送接口(Webhook),将数据实时推送到自己的服务器数据库。
主动查询:调用设备状态查询接口,获取实时的瞬时功率和累计电量,用于实现“电费统计”或“过载预警”。
2. 联动控制(场景模式)
如果需要同时控制多个断路器(例如下班一键关闭所有电源),可以使用标签控制接口
接口地址
/{AppID}/tag/control/优势:只需发送一次请求,即可控制归属于同一标签(如“会议室空调”、“服务器机柜”)下的所有设备,无需轮询循环调用。
七、 部署架构与运维
局域网/私有化部署若项目对公网依赖有要求,或网络环境不稳定,可以申请私有化部署版本。该模式允许程序直接通过局域网IP控制设备,不经过芯步公网云,延迟更低且断网风险更小。
异常处理
超时重试:API调用需设置超时时间(5秒),失败后应有随机间隔(或逐次增大间隔)重试机制。
状态同步:执行控制指令后,延迟2-3秒查询一次设备状态,确认指令执行成功(Action Success),防止因网络丢包导致状态不一致。
安全策略
Token定期更换:在生产环境中,定期在控制台刷新AppSecret。
日志记录:记录每一次“远程断开”操作的请求日志,便于排查“是谁在深夜关掉了设备”此类问题。
通过以上步骤,即可完成对芯步60A智能断路器的二次开发,实现稳定可靠的远程定时管理。