CATALOG

芯步AC5-10A这款开关我研究过,它的开放接口确实挺友好的——核心就是“发指令控制”+“收推送反馈”两条路并行。下面我把这套方案拆开讲清楚,从接口原理到代码实现都有。

一、先搞懂这东西能干啥

AC5-10A 其实就是一个可以装在墙里面或者设备里面的智能通断器,支持 WiFi 直连,不需要网关。它的核心能力就两条:

  • 输出控制:远程开关电路(5-10A,大概 2000W 以内都没问题)

  • 输入检测:带一路开关量输入,可以外接个物理按键或者门磁啥的

我们这次要解决的“二次开发实现线路状态反馈控制”,说白了就是两件事:

  1. 控制:发 HTTP 请求让它通或者断

  2. 反馈:知道它到底通没通(别你发了个“开”的命令,结果设备掉线了你还以为开着)

二、整体思路:两条腿走路

这个方案的核心逻辑其实很简单,用一个图表示就是:

你的服务器  ① 下发命令(POST /device/control) → 芯步云平台AC5-10A  ② 设备状态变化 → 芯步云平台 → 推送到你的回调地址

也就是说,控制靠主动调用接口,反馈靠被动接收推送

为什么不能只靠调用接口时的返回值?因为接口返回 200 只代表“平台收到了指令”,不代表设备真的执行了。设备可能掉线、可能坏了、可能被人按了物理开关把电断了——这些情况,都得靠设备主动上报的状态消息才知道。

三、第一步:控制设备通断

接口基本信息

  • 请求地址https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • 方法:POST

  • Content-Typeapplication/json

签名怎么算

这个稍微有点绕,但照着做就行:

ts 是当前的时间戳(秒),AppSecret 在你的物联网控制台里能找到。

用 Java 写就是:

请求体长这样

order 里的参数有三种玩法

命令类型参数示例效果
普通开关{"power":"1"}立即接通
普通开关{"power":"0"}立即断开
先通后断{"point":"3000"}接通,3000毫秒后自动断开
先断后通{"reset":"3000"}断开,3000毫秒后自动接通

完整示例(Python)

如果返回 {"code": 200},说明指令下发成功了。但记住,这不代表设备真的动了。

四、第二步:接收设备状态反馈

两种接收方式

芯步支持两种方式接收设备上报的消息,你可以在控制台里选

  1. HTTP 回调:平台主动 POST 到你指定的 URL

  2. MQTT 订阅:平台把消息发到 MQTT 主题,你订阅就行

我比较推荐 MQTT 方式,延迟更低,也更稳。不过 HTTP 方式更简单,先讲这个。

HTTP 回调方式

在控制台设置好你的回调 URL(比如 https://你的域名/webhook/device_state),当设备状态变化时,平台会往这个地址发 POST 请求。

消息格式示例

data 数组里就是具体的状态变化 —— {"power": "1"} 表示设备当前是接通状态。

用 Python Flask 写个接收端:

什么时候会触发推送?

设备状态发生变化的时候,主要包括:

  • 你通过 API 控制了开关

  • 有人在本地按了外接的物理按键

  • 设备重启后恢复状态

  • 设备执行了定时任务

这个推送是实时的,只推一次。如果你的服务器 5 秒内没返回 HTTP 200,平台就不重试了。所以你的接收接口一定要响应够快。

MQTT 方式(进阶推荐)

如果你想做得更专业,可以切到 MQTT。在控制台设置好后,订阅主题:

收到消息的格式和 HTTP 方式一样。MQTT 的好处是长连接、延迟低、不用暴露公网 IP。

五、把控制+反馈串起来

光能发命令、能收推送还不够,你需要在业务逻辑里把这两件事关联起来。

举个实际场景:你想实现“确保开关真的打开了”

伪代码逻辑:

当然,生产环境里用 Redis 或者内存缓存来存最新状态,每次推送来了就更新。

六、几个坑和注意点

  1. 签名的时间戳是秒,不是毫秒。传错了签名对不上,接口直接报错。

  2. 200 不代表设备执行了。这个前面强调过了,一定要靠异步推送来确认真正的状态

  3. 设备可能被人用物理开关操作。AC5-10A 支持外接实体按键,如果有人在你远程控制的同时按了开关,设备状态会变化,推送照样会发给你。你的业务系统要能处理这种“并发操作”。

  4. 网络不好时设备可能掉线。在代码里加个健康检查,或者定时拉取设备状态(虽然推送是主力,但轮询做个兜底也没坏处)。

  5. 推送接口必须快速返回 200。里面有复杂逻辑的话,异步处理——收到推送后先存到队列里,返回 200,然后再慢慢处理。

七、总结一下

二次开发 AC5-10A 的思路就八个字:发指令 + 接推送

  • 发指令:调用 device/control 接口,带上正确的签名和设备 ID

  • 接推送:搭一个 HTTP 接口或 MQTT 订阅,实时接收设备上报的状态

  • 串起来:在你的业务逻辑里,把“发的命令”和“收的状态”对应上,就能实现闭环控制

这套方案跑通之后,你可以做的事情就多了:远程开关灯、控制设备启停、做定时任务、甚至搞联动自动化——都是同样的套路。

通断器产品方案:
智能家居照明设备控制:怎么把AC4-30A 自动化控制开关集成到软件项目中
查看 >>
怎样二次开发AC5-10A 定时控制开关以实现实时能耗计量控制
查看 >>
如何在共享棋牌室灯光设备控制中对接智能硬件以实现电流超限保护控制
查看 >>
自动贩卖机电路管理:怎么将30A 智能开关接入到自己的项目中
查看 >>
怎样接入AC5-10A 定时控制开关来实现线路状态反馈控制
查看 >>
线路场景方案:
怎样接入智能3路墙壁物联网开关来实现3路独立线路控制
查看 >>
怎么在店铺招牌控制中接入智能设备来实现多线路集中通断控制
查看 >>
怎样二次开发12路独立线路控制器来实现12路独立线路控制
查看 >>
如何在车间设备机柜电源控制中对接智能设备来实现线路状态反馈控制
查看 >>
怎么接入24 路智能分体远程设备集中控制模块以实现线路状态反馈控制
查看 >>
反馈用途方案:
如何接入20W 壁挂远程 TTS 语音音箱以实现设备状态语音反馈
查看 >>
怎样接入2200W智能通断器AC1以实现线路状态反馈控制
查看 >>
怎样对接60A带计量数显额定 13200W 断路器来实现电路状态反馈控制
查看 >>
如何在共享自习室照明门禁控制中接入智能硬件来实现灯光门禁状态反馈控制
查看 >>
怎么在景观亮化工程电源管理中接入智能硬件来实现电路状态反馈控制
查看 >>