CATALOG

AC1-10A这款智能通断器开放了HTTP接口,对接思路其实很清晰——就是“下发指令控制”+“接收推送感知状态”两步走。下面我把具体流程串起来讲,顺便附上代码片段和避坑点。

一、 我们到底要对接什么?(明确目标)

首先要清楚我们的对象——UNI-TDQ-AC1-10A。这玩意儿说白了就是一个支持 WiFi 的1-10A 智能通断器,也叫智能开关

我们做对接的核心目的只有两个:

  1. 发指令:通过 HTTP 请求远程关掉它或打开它。

  2. 收消息:实时知道它是开还是关(这步是“监控”的关键)。

因为芯步的设备支持“消息推送”机制,状态变化会自动上报,所以我们不需要一直傻傻地“查”,等着它“喊”就行,实时性很高。

二、 准备工作:先“握手”一下

在写代码前,需要搞定三个“通行证”:

  1. 注册与创建:去芯步官网注册账号,创建一个“工作台”,进入“物联网控制台”

  2. 拿钥匙(AppID & AppSecret):在控制台的“开发设置”里找到这两个东西。

    • AppID:像是你的“账号ID”。

    • AppSecret:像是你的“密码”,千万别放前端

  3. 给设备联网:用他们提供的小程序给 AC1-10A 配网,确保它在控制台里显示“在线”。

三、 核心方案:如何下发控制指令?

AC1-10A 最常用的场景就是远程开关。接口地址是:https://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}

1. 签名机制(避坑重点)

很多人在签名 (Sign) 这步会晕,这里用大白话解释一下。签名是为了防止接口被别人乱刷。算法规则是:Sign = md5( md5(AppSecret) + ts )

“拆解步骤”如下:

  1. 先把你的 AppSecret 做一次 MD5 加密,得到字符串 A

  2. 把当前的时间戳(秒级,例如 1698800000)拼接到 A 的后面,得到 Ats

  3. 再把 Ats 整体做一次 MD5 加密,出来的结果就是 Sign。

2. 控制代码示例(很直白)

假设我们要关闭开关(因为很多时候监控是为了防止忘关),使用 POST 请求,Body 格式为 JSON

  • device:就是控制台里那个纯数字的 ID。

  • order:核心指令。{“power”: 1} 代表开,{“power”: 0} 代表关

命令行测试(curl) 大概长这样(需替换实际参数):

如果返回 {“code”: 200},说明指令下发成功,设备会“咔哒”一声响,立马断电。

四、 核心方案:如何监控运行状态?

如果只是控制,那不叫监控。我们需要实时感知状态。AC1-10A 支持上行消息推送

1. 原理

设备状态一变(比如有人按了模块上的物理按键,或者电流异常断电了),云端会立刻往你设定好的服务器地址(URL)推一条消息

2. 配置接收地址

在物联网控制台的“开发设置”里,找到“消息推送 URL”,填入你的服务器接口地址,例如 https://yourdomain.com/api/device/callback

3. 接收数据的处理(后端示例)

当设备状态变化时,你的接口会收到一个 POST 请求,Body 内容大概是这样的

你需要在你的服务器代码里做这几件事:

  • 接收请求:写一个 API 接口接收这个 JSON。

  • 验签(可选):防止假数据冒充,校验一下消息来源。

  • 解析数据:读取 message.data[0].power 的值。

  • 业务处理:把这个“开/关”状态存到你的数据库,或者在前端页面上实时刷新显示(比如亮一个绿灯图标)。

五、 方案进阶与避坑指南

1. 200 不等于成功!

调用接口返回 code: 200只代表云端收到了指令,不代表设备真的执行了如果设备正好断网,你也会收到 200,但设备没反应。所以监控要以“消息推送”收到的状态为准。

2. 设备离线了怎么办?

如果设备掉线,你发指令它收不到,消息推送也不会发(因为没有状态变化)。:在控制台查看设备最后上线时间,或者结合心跳机制,如果超过 5 分钟没收到设备消息,系统就判定设备离线,并告警。

3. 私有化部署(局域网)

如果你担心数据走外网太慢,或者工厂没外网,AC1-10A 其实还支持软网关模式。它可以在局域网内广播,你的系统直接通过内网 IP 调用它,不走云平台

六、 总结

对接 AC1-10A 其实就两层:

  1. 控制层:拿着 AppID 算签名,发 POST 指令给云端,云端下发给设备。

  2. 监控层:搭好 HTTP 接口等着,设备状态变了云端会主动给你“打电话”通知。

按照这个方案,你不仅能控制它开关,还能实时知道设备到底是开着还是关着,甚至能统计运行时长。如果对接过程中遇到签名报错,记得检查一下时间戳是不是精确到(不是毫秒),以及 AppSecret 是不是被多余的空格干扰了。