CATALOG

芯步的平台接口风格比较统一,核心就是签名验证 + HTTP请求。50A断路器虽然功率大,但控制逻辑和普通开关类似,只是多了些计量和配置项。下面我按“从零到一”的顺序,整理了一套二次开发方案。

一、 搞清核心逻辑:接口怎么调?

芯步的接口设计得比较“直给”,说白了就是发HTTP请求

1. 准备好三样东西

  • AppID:相当于你的账号ID。

  • AppSecret:相当于你的密码,千万别硬编码在前端

  • device_id:就是那个50A断路器身上的编号。

2. 签名的生成这一步稍微有点绕,但其实就是一个双MD5加密

  • 第一步:把 AppSecret 进行MD5加密,得到字符串 S1

  • 第二步:把 S1 加上当前的时间戳 ts,再整体做一次MD5,得到 sign

  • 为什么要这样:主要是防止别人拿到你的数据包直接重放攻击,因为时间戳(ts)一直在变。

3. 找到控制入口API地址是固定的:https://api.thingboot.com/{AppID}/device/control/只要往这个地址POST JSON数据就行了。

二、 怎么“远程配置参数”?

所谓的“参数配置”,其实就是发特定的JSON命令。这款50A断路器既然是“智能”的,它的参数(比如过载阈值、重启方式)通常都存储在Flash里,云端发一条指令就能改写

第一种场景:远程修改断路器参数(如设置开机状态)

很多时候我不只是要合闸,我要设这个断路器断电重启后是保持断开还是自动闭合。

  • 需求:我要把设备的“断电重启后默认状态”设置为“闭合”(也就是来电自启)。

  • 怎么做:参考产品手册,这个属性通常归在配置项里。假设配置项叫 relay1(代表第1路开关的默认状态),值为“1”表示闭合。

请求示例:

  • URLhttps://api.thingboot.com/你的AppID/device/control/

  • POST Body

执行完这条命令,哪怕现场停电再来电,断路器自己就会合闸,很适合无人值守机房

第二种场景:远程整定保护值(过载阈值)

既然是智能的,肯定能调“额定电流”。比如50A的断路器,夏天温度高怕发热,我想把它降容当40A用。

  • 需求:将最大通过电流限制在40A。

  • 怎么做:查一下产品手册,电流整定值可能是 current_rated 之类的参数。

第三种场景:复杂的定时/延时配置

有些场景需要“先断后通”来复位设备(比如路由器死机了,让断路器断电5秒再重启)。

  • 需求:执行一个“先断后通”的动作,断开5秒。

  • 怎么做:这类断路器通常内置了逻辑命令。

这种命令属于动作指令,执行完就没了,不像配置项那样会保存

三、 直接上代码:Python 极简版

假设你现在用Python写一个自动化脚本,可以直接参考这段:

代码逻辑说明

  1. 签名计算:严格按照 md5(md5(secret) + ts) 来算,少一步都会报 5006 bad sign

  2. 参数混合:在 order 里其实可以同时带控制指令(power)和配置指令(relay1),设备一次就处理了,效率很高

四、 进阶技巧与避坑指南

1. 异步反馈与状态获取

  • 重点:你下发命令返回200,不代表断路器真的执行了。它只代表云平台收到了指令。

  • 怎么确认:你得通过芯步的消息推送功能。你需要自己搭一个公网服务器(或者用云函数),在平台设置一个接收URL。当断路器执行完命令(比如真的合闸了),它会主动上报当前状态(比如当前电流、电压、开关位置),你的服务器收到这个,才算一次完整的闭环

2. 读取当前配置

  • 如果你想知道设备当前的参数值(比如现在的整定电流是多少),通常要用 {"system":"config"} 或者设备特定的查询指令。设备收到后会上报一条消息到你的服务器。

3. 不要频繁写入Flash

  • relay1(开机状态)这种配置参数是保存在Flash里的。Flash有擦写次数限制。如果是做自动化联动,频繁下发修改配置的指令会缩短设备寿命。只有真正需要改变逻辑时才发,平时控制通断用 power 指令就好

4. 处理多设备

  • 如果你想批量修改参数,device 字段支持逗号分隔,比如 "device": "1001,1002,1003",这样一条指令就能改一批设备的参数,非常方便

总结

这套方案的核心在于 “签名算法”“Order参数构造” 。只要把签名调通了,剩下的就是对着产品手册查字段。你可以先把Python脚本跑通,后续封装到你的业务系统(比如MES、EMS)里就行了。