CATALOG

芯步的40A计量数显智能断路器开放标准HTTP接口,二次开发远程查询开关状态的核心是:通过签名认证调用API下发查询命令,并解析设备回传的JSON数据。以下是完整的技术实现方案。

一、 技术背景与准备

在开始二次开发之前,需要对目标和工具有清晰的认知。

  • 核心目标:绕过官方App,通过我们自己的服务器或软件,主动获取指定40A断路器的当前通断状态(On/Off)。

  • 接口特点:芯步的接口采用标准的HTTP协议,这意味着任何支持网络请求的编程语言(如Python、Java、Go、PHP、JavaScript等)都可以轻松接入,无需复杂的SDK

  • 前置准备

    1. 注册开发者账号:登录芯步官方开放平台。

    2. 获取凭证:在控制台的“开发设置”中,获取唯一的 AppID(应用ID)和 AppSecret(应用密钥)。这两者相当于你调用API的“用户名”和“密码”。

    3. 获取设备ID:在控制台设备列表或通过接口查询,拿到你的40A断路器的唯一标识 Device ID

二、 接口鉴权:签名计算(Sign)

芯步的API采用动态签名验证,这是为了防止接口被恶意调用。调用任何接口前,必须先正确计算出Sign值

具体的算法逻辑是:Sign = MD5( MD5(AppSecret) + ts )

  • AppSecret:你的应用密钥。

  • ts:当前Unix时间戳(秒级)。这保证了签名的时效性,防止请求被重放攻击

计算示例(逻辑演示):

  1. 假设你的 AppSecretabc123

  2. 第一步:计算 MD5(abc123) = e99a18c428cb38d5f260853678922e03

  3. 第二步:假设当前时间戳 ts1714528000,拼接字符串:e99a18c428cb38d5f260853678922e03 + 1714528000 = e99a18c428cb38d5f260853678922e031714528000

  4. 第三步:计算最终Sign:MD5(e99a18c428cb38d5f260853678922e031714528000) = a08112f9d7e6cxy...

在实际代码中,这个过程应自动执行,每次请求都需重新计算。

三、 实操:实现“开关状态查询”

针对40A计量数显断路器,查询状态通常有两种思路:一是直接查询状态,二是通过控制命令并读取回执或监听设备上报数据。

方案一:查询设备最新上报数据

这是推荐的被动查询方式。设备会定时(例如每分钟或状态变化时)向云平台推送数据。我们的程序调用接口获取这份最新的快照。

  • 请求地址(示例)POST https://api.thingboot.com/{AppId}/device/status/

  • 请求参数(JSON Body)

  • 返回数据结构分析接口返回的JSON字符串中,通常包含两个关键字段表示状态:

    • powerpower1:数值通常为 1(表示接通/合闸)或 0(表示断开/分闸)。

    • state:部分固件版本可能用此字段,通常也是 online/offline1/0

代码示例(Python3):

方案二:控制命令的下发与响应解析

如果你是刚下发命令,或是想验证设备是否响应指令,可以通过控制接口直接操作,该接口会立即返回执行结果。

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

  • 请求Body

  • 关于“查询”的变通由于部分版本的API可能没有独立的“查询”接口,而是通过“控制”接口实现。如果你想在不改变当前物理状态的情况下查询,可以尝试下发一个“空指令”或“状态查询指令”{"order":{"status":"query"}}。如果设备不支持,则使用方案一

四、 进阶:实时状态监听

如果业务系统需要实时获取状态变化(例如有人偷电导致跳闸,系统需毫秒级知道),仅靠HTTP轮询(不停地发请求问)效率较低且可能触发API限流。

芯步的设备支持 MQTT协议HTTP主动推送

  1. 配置回调URL:在芯步控制台中,设置一个你的服务器公网接口(例如 http://yourdomain.com/callback)。

  2. 接收推送:当断路器状态发生变化(如物理按键按下、过载跳闸),平台会主动将设备数据封装成JSON格式,通过POST请求发送到你配置的URL。

  3. 解析数据:你的服务器接收请求,解析JSON中的状态字段,即可实现实时数据同步。

五、 常见问题与排查

如果在二次开发中遇到问题,可以按以下顺序排查:

  1. 签名错误(403 / Sign Error)

    • 检查时间戳 ts 是否为秒级(10位数字),而非毫秒级(13位)。

    • 确认MD5加密后的结果是否为32位小写十六进制字符串

  2. 设备不在线(Device Offline)

    • 40A断路器仅支持 2.4G WiFi。检查设备配网是否成功,确认路由器和设备距离不能太远

    • 检查设备是否处于强电断电状态。

  3. 命令格式错误

    • 对于40A大功率设备,请确认order里的参数是 power 还是 power1。单路设备通常用 power;多路设备(如果该型号支持多路)可能用 power1, power2

    • 参数值请使用整数,避免传递字符串 "1" 而不是 1

  4. 局域网直连如果你的系统对公网依赖有要求(部署在内网),该设备支持私有化部署。你可以直接将API请求地址指向设备在局域网内的IP,绕过云服务器,实现更低延迟的通信

通过上述步骤,你已经具备了从环境搭建、鉴权到最终实现状态查询全链路的开发能力。接下来,你可以根据实际业务场景(如智慧工厂大屏、宿舍用电管理系统)将这些API接口集成到你的后台系统中。