CATALOG

50A智能电源控制断路器支持HTTP接口直接调用,二次开发主要围绕设备控制、状态查询和数据接收三个环节展开。以下方案涵盖接口协议、签名算法和核心代码实现。

一、 背景与概述

芯步50A智能电源控制断路器是一种支持大功率(50A)负载控制的工业级智能硬件。设备内置计量芯片,支持WiFi 2.4G直连,无需网关。其核心优势在于开放了标准的HTTP接口,允许开发者通过任何后端语言(Java, Python, PHP, Go, Node.js等)或前端(小程序、Web)进行二次开发

本文旨在指导开发者如何利用开放接口,实现对设备的远程开关控制通断状态查询以及实时计量数据读取

二、 核心接口协议解析

芯步的API采用标准的HTTP POST请求,数据格式为JSON。在进行二次开发前,需要理解其双重MD5签名机制以保障通信安全。

1. 请求地址

https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
  • AppId: 在芯步控制台创建应用后获取的唯一标识。

  • ts: 当前Unix时间戳(秒)。用于防重放攻击。

  • sign: 接口签名。

2. 签名算法

这是开发最关键的一步,签名生成规则为:sign = md5( md5(AppSecret) + ts )

具体步骤:

  1. 将开发者密码AppSecret进行一次MD5加密,得到secret_md5

  2. secret_md5与时间戳ts(作为字符串)拼接。

  3. 对拼接后的字符串再次进行MD5加密,得到最终的sign

3. 核心数据包结构

请求Body均为JSON格式,包含两个必须字段:

  • device: 目标设备的唯一ID(可在控制台获取)。

  • order: 指令集。

三、 解决方案实现细节

针对“状态查询”和“控制”,通常有两种交互模式:主动下发查询(请求-响应)和被动接收上报(设备主动推送)。对于计量数据(电量读数),由于数据量较大,采用被动接收或定时主动查询策略。

1. 实现远程开关控制(下发命令)

这是最基础的功能。50A断路器支持单路通断控制,通常对应的指令字段为powerpower1(具体请参考产品手册,一般单路为power)。

  • 开启设备order{"power": 1}

  • 关闭设备order{"power": 0}

示例流程(以Python为例):

预期响应{"code":200, "msg":"success"} 表示指令已送达设备。

2. 实现状态与计量查询(主动查询)

虽然控制指令即时生效,但对于计费系统或监控大屏,需要知道当前开关是开还是关,以及当前的电压电流值

方案A: 设备状态查询指令部分设备支持 query 指令来获取当前状态。

设备收到后会返回包含 power(开关状态)和 meter(电量参数)的JSON数据包。

方案B: 利用设备上报数据(推荐高频查询)如果设备支持主动上报(如每30秒上报一次),你可以在控制台设置消息推送URL(Webhook)。设备状态发生变化或定时上报时,平台会主动POST数据到你的服务器。上报数据示例通常包含:

你的后端只需要接收这个HTTP请求,即可实时更新数据库中的设备状态。

3. 处理特殊的计量数据

50A断路器带计量功能,这涉及到电参数解析。API返回的电流通常单位为安培(A) ,功率为瓦特(W),电量为千瓦时(kWh)。二次开发时,针对计费系统,根据设备的实时功率计算,或直接累加设备上报的电量增量。

四、 高级集成与架构

在复杂的商业二次开发中(如接入MES系统或共享充电桩系统),采用以下架构:

  1. 异步非阻塞处理由于硬件响应网络延迟通常在80ms-120ms左右,不要在用户请求的同步线程中直接等待硬件回复,除非使用异步框架。将控制指令发出后立即返回“指令已接收”,通过Webhook异步更新状态

  2. 局域网直连模式(私有化部署)如果50A断路器与应用服务器处于同一局域网(或同一VPN下),可以利用设备支持的局域网API进行通信,此时可以不通过云平台,直接在局域网内通过HTTP控制设备,延迟更低且不依赖外网

  3. 安全机制对于查询类接口,同样需要进行签名校验。你的后端应严格校验时间戳ts,拒绝过期请求(例如只接受5分钟内的请求)。

五、 总结

对芯步50A智能电源控制断路器的二次开发流程总结如下:

  1. 对接鉴权: 实现通用的MD5签名函数(md5(md5(secret)+ts))。

  2. 核心功能: 使用/device/control接口,通过{"power": 1/0}实现远程开关机。

  3. 数据获取

    • 通过主动查询接口获取即时状态。

    • 通过配置消息接收服务器,被动接收设备的实时电压、电流、功率和开关状态。

  4. 集成: 将获取的电流(A)和功率(W)数据集成到用户的业务逻辑中(如:过载保护、能耗统计、自动计费)。