CATALOG

AC1-10A的开放接口采用标准的HTTP协议,签名机制清晰,适合快速集成到各类软件项目中。以下方案从环境准备、接口调用、代码实现到高级特性逐一展开。

一、 解决概述

核心目标: 通过调用芯步开放平台的HTTP接口,对指定的AC1-10A智能通断器进行远程开启(连通)或关闭(断开)操作。

适用场景:

  • 将现有Web应用、APP或微信小程序集成物联网控制功能。

  • 利用Python、PHP、Java等后端语言实现自动化脚本(如定时开关)。

  • 在Node-RED、Home Assistant等开源智能家居平台中通过HTTP节点接入。

技术原理:AC1-10A设备通过Wi-Fi连接至芯步云端。二次开发方无需关心TCP/IP长连接或MQTT协议的底层实现,仅需向云端发起HTTP POST请求,携带签名凭证和设备指令,云端即可在毫秒级内将指令推送到设备

二、 准备工作(环境搭建)

在开始编码前,需要获取以下凭证:

  1. 注册账号:访问芯步开放平台,注册开发者账号。

  2. 获取凭证:登录控制台,进入“开发设置”页面。

    • AppID:应用的唯一标识。

    • AppSecret:接口调用密钥(请勿泄露)。

  3. 获取设备ID

    • 确保AC1-10A设备已通电并连接Wi-Fi成功。

    • 在控制台的“设备列表”中查看该设备的 Device ID(通常是一串数字或字符串)。

三、 核心接口技术实现(签名与请求)

芯步的开放接口通过动态签名来保证安全性,这也是二次开发中唯一的逻辑难点。其签名为 “双MD5加盐” 模式。

1. 签名算法 (Sign)

为了直观展示,以下是签名的生成步骤:

  • 步骤1:将 AppSecret 进行一次MD5加密,得到 Secret_MD5

    • Secret_MD5 = md5(AppSecret)

  • 步骤2:获取当前Unix时间戳(秒级),记为 ts

  • 步骤3:将 Secret_MD5ts 拼接成字符串,再进行一次MD5加密,得到最终的 Sign

    • Sign = md5( Secret_MD5 + ts )

注:时间戳 ts 用于防止请求重放攻击,通常允许前后5分钟的时间误差。

2. 接口地址与请求方法

  • URLhttps://api.thingboot.com/{AppID}/device/control/

  • MethodPOST

  • Query String?sign={Sign}&ts={Timestamp}

3. 请求体参数 (Body)

采用 JSON 格式:

参数名类型说明示例
deviceString目标设备的ID。查控制台可得。如控制多个设备可用逗号分隔。"1878"
orderJSON String核心指令。控制开关机的具体动作。"{\"power1\":1}"

关于 order 指令的详解AC1-10A 支持多种模式,不仅仅是简单的开关

  • 即时开关

    • 开启:{"power1": 1} (1代表通电/连通)

    • 关闭:{"power1": 0} (0代表断电/断开)

  • 点动模式(先通后断):适用于控制门禁、电动门锁等,即打开几秒后自动关闭。

    • 示例:{"point1": 2000} (表示线路1开启,2000毫秒(2秒)后自动关闭)

  • 重启模式(先断后通):适用于路由器、光猫重启或设备复位。

    • 示例:{"reset1": 5000} (表示线路1断开,5000毫秒(5秒)后重新接通)

四、 代码实战:二次开发集成示例

根据官方文档提供的标准流程,以下提供 Bash (Curl)Python 两种最常见的后端集成代码

示例 1:使用 Curl 命令控制(适合脚本测试)

假设 AppID = "12345"DeviceID = "1878"

示例 2:Python 实现(适合Web后端集成)

五、 高级功能与拓展开发

除了简单的单设备通断,开放接口还支持批量控制,能够极大提升效率

1. 批量控制(标签控制)

如果需要对一组AC1-10A设备同时进行开关(例如下班后关闭所有工位电源),可以使用标签(Tag)接口,无需遍历每个Device ID。

  • 接口功能/tag/control/

  • 指令示例:将标签ID为 100 的所有设备断电。

  • Payload

2. 状态同步与回调

要获取设备当前的开关状态(因为可能会有人手动按了设备上的物理按键),不能仅依赖本地缓存。通过以下两种方式同步:

  • 主动查询:调用平台提供的“获取设备状态”接口。

  • 被动接收:在控制台配置消息推送服务(Webhook)。当设备状态发生变化时,芯步云端会主动向你的服务器地址推送状态变更通知,这对于实现“APP显示与实际设备状态同步”至关重要。

六、 常见问题排查

  1. 返回 501 或签名错误

    • 原因:时间戳不对或MD5计算顺序错误。

    • 解决:确保服务器时间是标准北京时间,不要有时差。核对上述签名算法,注意MD5结果是32位小写字符串。

  2. 控制无响应 (设备离线)

    • 原因:AC1-10A仅支持 2.4G Wi-Fi,如果路由器开启双频合一,可能会导致设备连接不稳定

    • 解决:检查路由器设置,确保设备连接的是2.4G频段。

  3. 命令下发成功但设备不动作

    • 原因order 参数中的命令格式与该设备固件版本不匹配。

    • 解决:单路控制使用 power1,如果是多路版本则使用 power3 等,参考具体产品的数据手册确认属性名称

总结

芯步AC1-10A的二次开发门槛较低,核心在于签名的生成order指令的灵活运用。开发者只需专注于业务逻辑(如界面按钮绑定、定时任务触发),将上述HTTP请求封装成一个函数即可快速完成智能化改造。