CATALOG

芯步的AC1-10A智能通断器开放了标准HTTP接口,这意味着你可以用任何编程语言,通过几行代码就能实现远程控制。下面从准备工作、签名算法、接口调用到状态监听,完整走一遍二次开发的流程。

一、 解决概述

目标: 通过芯步开放平台的HTTP API,对绑定在您账号下的AC1-10A设备进行远程开关控制。

技术路径: 您的后端服务器 → 芯步API网关(鉴权+转发)→ 设备(执行命令)。

涉及的核心环节:

  1. 获取密钥: 在芯步控制台获取 AppID 和 AppSecret。

  2. 生成签名: 按照平台规则计算 MD5 签名以保证请求安全。

  3. 发起请求:api.thingboot.com 发送 HTTPS POST 请求。

  4. 接收状态: (可选)配置消息推送URL,实时接收设备状态变更。

二、 准备工作与环境

在开始编码前,您需要完成以下三步准备:

  1. 硬件准备: 确保AC1-10A智能通断器已通电,并通过官方小程序完成Wi-Fi配网(仅支持2.4G Wi-Fi),且设备状态显示为“在线”

  2. 平台账号: 注册并登录芯步开放平台控制台。

  3. 获取凭证:

    • AppID: 在控制台的“开发设置”中获取,用于标识您的应用身份。

    • AppSecret: 用于计算签名,请注意保密,切勿放在前端代码中

三、 核心开发:实现远程通断控制

这是二次开发的核心步骤,我们将通过代码实现“开”和“关”的操作。

3.1 理解签名机制(Sign)

芯步的API采用动态签名防盗用,签名的生成规则如下,这是一个双重MD5加密过程

YourSign = MD5( MD5(AppSecret) + ts )
  • AppSecret:您的开发者密码。

  • ts:当前的Unix时间戳(秒级)。

  • +:这里指字符串拼接。

3.2 接口调用详情

  • 请求地址:POST https://api.thingboot.com/{AppID}/device/control/

  • Query参数:sign={YourSign}&ts={ts}

  • Header:Content-Type: application/json

  • Body参数:

    • device:设备ID(可在控制台查看或通过设备列表接口获取)。

    • order:控制命令(JSON字符串)。

对于AC1-10A(单路通断器),控制命令如下

  • 开启:{"power": 1}

  • 关闭:{"power": 0}

3.3 代码示例

以下代码演示了如何生成签名并下发“开启”指令。您可以使用任何支持HTTP的语言实现。

Python 3 实现示例:

curl 命令行示例(用于快速测试):

  • 注意:上述命令针对Linux环境。如果在Windows环境下,可使用 PowerShell 或借助 Git Bash 等工具运行。

四、 进阶功能与场景扩展

除了简单的开关,您在二次开发时还可以利用接口实现更复杂的逻辑。

4.1 定时与延时动作

AC1-10A支持在HTTP指令中直接设定延时动作,这对控制路灯、临时供电等场景非常有用,且不受网络延迟影响。

  • 先通后断(开启N毫秒后自动关闭):

    (指令含义:继电器1导通,5000毫秒后断开)

  • 先断后通(关闭N毫秒后自动开启):

4.2 批量控制

如果您拥有多个AC1-10A设备,或者使用的是多路控制器,可以通过一次HTTP请求控制多个回路:

五、 最佳实践:实时状态同步与事件监听

单纯的下发指令通常是不够的,应用层往往需要知道设备是否真的执行了操作(例如:手机App上开关状态的同步)。芯步平台提供状态实时推送机制

解决方案:配置消息推送Webhook

  1. 在芯步控制台的“开发设置”中,配置“消息推送URL”(例如:https://yourdomain.com/api/device/callback)。

  2. 当设备状态发生变化时(物理按键按下、到了定时时间、远程控制),平台会向您的URL发送一个POST请求。

  3. 您的后端需要接收此请求,解析数据,更新数据库中的设备状态,并可通过WebSocket实时推送给前端用户。

六、 私有化部署方案

对于对数据安全或网络环境有特殊要求的企业用户,该产品支持私有化部署。如果您需要将设备运行在纯局域网或无外网环境中,可以联系官方获取私有化部署包,将API服务部署在本地服务器上。

总结

通过以上步骤,开发者只需关注 签名计算JSON指令构造 这两个核心点,即可轻松将AC1-10A集成到现有的Web应用、小程序或企业ERP系统中。官方提供的标准接口极大降低了物联网硬件的开发门槛。