CATALOG

芯步60A带计量智能断路器的开放接口采用标准HTTP协议,签名机制清晰,二次开发门槛较低。以下从接口对接、命令下发到定时任务实现,给出完整的工程化方案。

一、 解决概述

本方案的目标是利用芯步开放平台提供的HTTP API接口,对型号为UNI-DLQ-M-60A-P(或类似带计量功能的60A断路器)进行二次开发。核心目标是实现两个主要功能:远程实时通断控制基于时间策略的定时自动化通断

方案将基于Python/NodeJS等后端语言构建一个独立的定时任务调度服务,通过与芯步云平台交互,下发指令给指定设备

二、 核心技术准备

在进行开发前,需要准备以下三项关键凭证和硬件:

  1. 硬件设备:确保60A带计量智能断路器已通电并完成网络配置(仅支持2.4G WiFi)。该设备无需网关,直连路由器

  2. 平台凭证

    • AppID:应用唯一标识。

    • AppSecret:应用密钥,用于接口签名加密(请妥善保管)。

  3. 设备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需包含 deviceorder 两个字段。

2. 控制参数详解

  • 开启断路器order 字段值为 {"power": 1} 或继电器吸合指令。

  • 关闭断路器order 字段值为 {"power": 0}

  • 计量读取:通常设备默认会上报数据,若需主动查询,可使用特定查询指令或通过订阅设备状态接口获取(电压、电流、功率因数等)

3. 实战代码示例(Python)

以下是一个封装好的单次控制函数:

五、 实现远程定时通断(自动化方案)

要实现“每周一至周五早上8点开,晚上18点关”类似复杂的定时任务,仅靠单次API调用是不够的。需要在自有服务器上实现定时任务调度机制(即开发者自行维护定时逻辑,到点触发上述API调用)。

1. 技术选型

  • 轻量级方案(Python):使用 APScheduler 库。

  • 通用方案:使用操作系统自带的 Crontab(Linux)任务计划程序(Windows)

  • 企业级方案:使用消息队列(如RabbitMQ)配合延迟队列。

2. 实现逻辑

  1. 在数据库中创建定时任务表,存储 DeviceID执行时间(Cron表达式)目标状态(开/关)

  2. 后端服务轮询或监听任务队列。

  3. 当系统时间匹配任务时间时,调用第四步中的 control_breaker 函数。

3. 利用设备硬件特性辅助定时

如果不想依赖外部服务器,可以充分利用断路器本身的固件能力。芯步部分设备支持“先通后断”等即时定时功能,这对倒计时断电场景很有用:

  • 指令示例{"reset": 3600000}

  • 效果:执行该指令后,断路器会立刻闭合(通电),并在1小时(3600000毫秒)后自动断开。这种方式延时精准且不依赖云服务器

六、 进阶功能与数据处理

1. 获取计量数据

60A断路器核心价值在于计量。可通过两种方式获取数据:

  • 被动接收:设备会主动上报电流、电压、功率、电量(kWh)数据到平台。可配置HTTP推送接口(Webhook),将数据实时推送到自己的服务器数据库。

  • 主动查询:调用设备状态查询接口,获取实时的瞬时功率和累计电量,用于实现“电费统计”或“过载预警”。

2. 联动控制(场景模式)

如果需要同时控制多个断路器(例如下班一键关闭所有电源),可以使用标签控制接口

  • 接口地址/{AppID}/tag/control/

  • 优势:只需发送一次请求,即可控制归属于同一标签(如“会议室空调”、“服务器机柜”)下的所有设备,无需轮询循环调用

七、 部署架构与运维

  1. 局域网/私有化部署若项目对公网依赖有要求,或网络环境不稳定,可以申请私有化部署版本。该模式允许程序直接通过局域网IP控制设备,不经过芯步公网云,延迟更低且断网风险更小

  2. 异常处理

    • 超时重试:API调用需设置超时时间(5秒),失败后应有随机间隔(或逐次增大间隔)重试机制。

    • 状态同步:执行控制指令后,延迟2-3秒查询一次设备状态,确认指令执行成功(Action Success),防止因网络丢包导致状态不一致。

  3. 安全策略

    • Token定期更换:在生产环境中,定期在控制台刷新AppSecret。

    • 日志记录:记录每一次“远程断开”操作的请求日志,便于排查“是谁在深夜关掉了设备”此类问题。

通过以上步骤,即可完成对芯步60A智能断路器的二次开发,实现稳定可靠的远程定时管理。