CATALOG

芯步的智能通断器开放了标准 HTTP 接口,只需要简单的 POST 请求就能实现远程控制。下面从架构、签名、接口调用和指令示例几个层面来讲清楚对接流程。

1. 解决概述

本方案基于 芯步 的智能通断器硬件(如AC4-30A、智能通断器模块等),利用其开放的 HTTP API 接口,实现云端平台对设备电源的远程通断控制。

核心优势:

  • 接口通用:基于 HTTP 协议,支持任何编程语言(Java, Python, PHP, Node.js 等)和平台(Web, App, 小程序, SaaS)。

  • 响应迅速:从云端下发指令到设备执行,实测约 80-120ms

  • 指令丰富:支持即时通断、定时通断、点动(先通后断/先断后通)、批量控制等。

  • 双向通信:除了控制,平台还支持通过 HTTP 接收设备的状态变更推送(如设备主动上报开关状态、网络状态等)

2. 系统架构

在典型的物联网云平台对接中,核心交互流程如下。用户通过业务平台(集成方)发起请求,经由芯步云端完成设备寻址与转发。

sequenceDiagram
    participant User as 用户端/业务平台
    participant Cloud as 芯步云平台
    participant Device as 智能通断器(设备端)

    Note over User,Device: 1. 设备上线注册
    Device->>Cloud: 建立长连接/心跳
    Note over Cloud: 设备状态更新为"在线"

    Note over User,Device: 2. 远程控制指令
    User->>Cloud: POST /device/control/ (携带AppId,Sign,DeviceId,Order)
    Cloud->>Cloud: 校验签名、权限及设备在线状态
    Cloud->>Device: 透传指令 (MQTT/CoAP)
    Device->>Device: 执行动作 (闭合/断开继电器)
    Device-->>Cloud: 返回执行结果
    Cloud-->>User: 返回 HTTP 200 (指令已送达/执行成功)

    Note over User,Device: 3. 状态同步 (异步)
    Device-->>Cloud: 上报最新状态 (如 power:1)
    Cloud-->>User: 推送到用户配置的URL

3. 对接流程与技术实现

3.1 准备阶段:获取凭证与设备ID

在芯步控制台完成以下准备

  1. 注册账号并创建“工作台”。

  2. 获取 AppID 和 AppSecret:在开发设置中查看,这是调用 API 的身份凭证。

  3. 获取设备ID (Device ID):在“物联网控制台”的设备列表或设备外壳标签上获取(通常为数字串)。

3.2 API 鉴权机制(签名计算)

为防止接口被恶意调用,所有请求必须携带签名(sign)。芯步采用双重 MD5 加密方式

签名算法:

Sign = md5( md5(AppSecret) + ts )

参数说明:

  • AppSecret:开发者密码。

  • ts:Unix 时间戳(秒),用于防止请求重放攻击。

计算示例(以 Python 为例):

3.3 核心接口:下发控制指令

这是实现远程控制最核心的接口,通过向指定设备发送 JSON 指令来控制通断器

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

  • HeaderContent-Type: application/json

  • Body 参数

参数类型描述示例
deviceString目标设备的唯一ID"820720"
orderObject控制指令(JSON对象),具体结构见下方指令表{"power": 1}

3.4 常用指令集(Order 参数详解)

根据你的通断器规格(1路、4路或多路),order 对象的结构有所不同

1. 单路通断器控制最简单的场景,控制单路继电器的开启或关闭。

功能Order JSON 示例描述
开启{"power": 1}线路接通,输出端通电
关闭{"power": 0}线路断开,输出端断电
点动(先通后断){"point": 5000}接通线路,5000毫秒(5秒)后自动断开
点动(先断后通){"reset": 5000}断开线路,5000毫秒(5秒)后自动接通

2. 多路控制器控制(4路为例)如果你使用的是4路控制器,需要精确控制某一路的开关

功能Order JSON 示例描述
控制单路{"power1": 1}打开第1路
控制单路{"power3": 0}关闭第3路
批量控制{"batch":{"relay":[1,3],"power":0}}同时关闭第1路和第3路
单路点动{"point1": 1000}第1路接通1秒后断开

3. 带额外参数的控制可以在指令中携带 extra 字段用于业务关联(如订单号),设备执行后,云端推送状态时会原样返回该字段,方便业务系统对账

功能Order JSON 示例描述
开启并携带标记{"power": 1, "extra" : "ORDER_2024001"}开启设备并附带业务订单号

4. 核心代码示例

以下是使用 Python 的 requests 库实现远程控制通断器的完整逻辑。

注:该代码示例根据官方文档提供的接口规范编写

5. 高级特性集成

5.1 设备状态实时同步

由于 HTTP 请求的 200 响应仅代表指令被云端接收,并不代表设备已执行。为了获取“设备已真正动作”的结果,配置 消息推送 功能。

  • 配置方式:在芯步控制台设置你的服务器 URL(Callback URL)。

  • 推送内容:当设备状态变化(手动按下按键或云端控制成功)时,云端会向该 URL 发送 POST 请求,包含设备 ID、当前状态等 JSON 数据

5.2 设备配网

新设备首次使用需要连接 WiFi

  • 方式一:使用 “芯步”微信小程序,开启手机蓝牙/热点,按照提示为设备配置 WiFi(仅支持 2.4G)。

  • 方式二:在 PC 端的芯步控制台的“网络配置”模块中添加 WiFi 信息,下发至设备。

6. 注意事项

  1. 设备在线状态:控制指令只有在设备在线(WiFi连接正常)时才能成功。在业务逻辑中加入设备心跳检测或离线重试机制。

  2. 频率限制:虽然接口响应快,但应避免在短时间内(如毫秒级)对同一设备频繁下发指令,以免阻塞设备处理或触发平台限流

  3. 局域网/私有化支持:如果项目对公网依赖有要求,芯步设备支持局域网 IP 直连控制,也支持将 API 进行私有化部署,这在工厂内网等场景中非常实用

7. 总结

通过上述步骤,你可以得出结论:对接芯步的智能通断器本质上就是调用一个 带签名验证的 HTTP RESTful API

  1. 获取 AppIDAppSecretDeviceId

  2. 按照 MD5 规则生成签名。

  3. POST 请求 https://api.thingboot.com/{AppId}/device/control/

  4. Body 中传入 {"power": 1} 即可实现开机。

这套方案有效简化了智能硬件的开发门槛,使得任何有网络编程能力的团队都能在 10 分钟内完成核心控制逻辑的集成。