CATALOG

一、咱们先聊聊这个设备是啥

你可能刚拿到这款“8路智能分体远程多回路控制箱”(芯步的型号一般是UNI-KZQ-TY-8这类),简单说它就是一个小盒子,里面集成了8个继电器,可以独立控制8路电路的通断

说人话就是:你可以通过互联网,远程控制这8个开关的“开”和“关”。

那什么叫“分组控制”呢?举个例子 ——

  • 你可能有8个路灯,但你想把1、3、5编成“景观灯组”,一键全开;

  • 或者把2、4、6编成“基础照明组”,晚上定时一起开。

这种“按场景把不同线路打包控制”的模式,就是分组控制。咱们这篇就聊这个:如何用芯步的开放接口,把这个分组功能实现出来。

二、接管设备之前,你需要准备好这些

在动手写代码之前,有几个东西你得先拿到手:

  1. 设备ID:每个控制箱都有一个唯一的设备ID,在芯步控制台可以看到,像1878820720这样一串数字

  2. AppID 和 AppSecret:这是你调用接口的“账号和密码”,也在控制台的“开发设置”里获取

  3. 设备联网:确保控制箱已经配网成功、在线状态(指示灯正常)。

拿到这三样,你就可以通过HTTP接口指挥它干活了。

三、一条指令是怎么发出去的(快速热身)

芯步的设备控制接口长这样

发请求的时候,POST Body 里带上两个参数:

  • device:设备ID,比如 "1878"

  • order:命令,是一个JSON字符串,比如 {"power1": 1} 表示“打开第1路”

签名计算的套路也不复杂

口语化翻译一下:把你的AppSecret先MD5加密一次,然后把当前时间戳(比如1734567890)拼在后面,再整体MD5一次。出来的字符串就是签名。

这个机制是为了防止有人随意调用你的设备接口,算是一个基本的安全门槛。

四、单路控制:一根手指先动一动

在搞分组之前,咱们先确认单路控制能跑通。

假设你想打开第1路

关闭第3路

芯步还支持批量控制——一条指令同时操作多路

这个批量能力其实已经有点“软分组”的意思了,但还不够灵活——因为你每次都要把所有线路写全。

五、重点来了:分组控制模式的实现方案

分组控制,本质上就是“把一组预定义的线路状态,一次性下发出去”。我们在芯步的框架下,有几种实现方式。

方案1:服务端分组(推荐,最灵活)

思路:在你的后端服务器里定义分组,然后调用芯步的批量控制接口下发。

举个例子,你定义了两个分组:

  • “全开组”:包含线路 1、2、3、4、5、6、7、8,状态全为1

  • “节能组”:包含线路 1、3、5、7,状态为1;2、4、6、8为0

你的后端代码只需要维护一个分组映射表(可以是数据库、配置文件、甚至内存变量),比如:

然后提供一个API给前端或小程序调用:

  • 前端调用 POST /api/control/group,参数 {"device_id": "1878", "group_name": "节能组"}

  • 你的后端根据 group_name 查表,拼出 order JSON,再调用芯步的控制接口下发

优点:分组可以随时增删改,不用动设备固件;多台设备可以共享同一组分组的定义。

方案2:利用设备别名 + 场景预设

芯步的设备本身支持“定时任务”和“自定义联动”,你可以在控制台里预设几个场景,然后通过接口触发场景。

不过这种方式比较适合固定场景(比如每天18:00开某几路),如果你的分组需要频繁调整,还是推荐方案1。

方案3:多设备分组控制

如果你有多个8路控制箱(比如一栋楼每层一个),还可以实现“跨设备分组”。

芯步的接口支持一次传多个设备ID,用逗号隔开

配合上面的分组逻辑,你可以实现:

  • “全楼照明组”:控制所有设备的1、3、5路

  • “东区设备组”:只控制设备1878和1879

你的后端只需要把同一个 order 下发到多个 device 上就行。

六、一个完整的调用示例(Python)

下面是一个完整的例子,把上面说的串起来:

七、进阶玩法:分组 + 定时任务 + 传感器联动

分组的价值不止于“手动点一下”,还可以配合芯步的其他能力实现自动化:

  • 定时切换分组:在你的后端设置一个定时任务(比如用cron),到点了自动调用分组接口。比如早上8点切到“日间模式”,晚上6点切到“景观照明模式”。

  • 传感器联动:芯步有各类传感器(人体存在、温湿度、烟感等),当传感器检测到事件时会向你的服务器推送消息。你的服务器收到后,可以根据事件类型切换不同的分组模式。例如:有人进入区域 → 切到“有人模式”(开部分照明);无人持续10分钟 → 切到“节能模式”。

  • 语音控制集成:如果你对接了智能音箱(如通过小程序或自定义API),用户说“打开客厅模式”,你的服务端解析后调用对应的分组接口即可。

八、注意事项与小贴士

  1. 签名的时间戳有效期:芯步的ts一般要求是当前时间戳(秒级),偏差太大会被拒绝。每次请求都实时生成。

  2. 单设备还是多设备:如果你只有一个控制箱,device 传一个ID就行;如果有多个,记得在服务端维护好每个设备的分组配置——不同设备的线路定义可能不一样(比如设备A的第1路是“照明”,设备B的第1路可能是“空调”)。

  3. 网络延迟:实际测试中,从发出命令到设备响应大约80-120ms,还算挺快的。但如果你做的是实时性要求比较高的场景(比如毫秒级控制),要考虑网络波动。

  4. 私有化部署:芯步也支持局域网私有化部署,如果你的设备和管理服务器在同一局域网,可以把 api.thingboot.com 换成你的私有服务器地址,降低延迟、提高稳定性

九、总结

实现8路控制箱的分组控制,核心就是这么几步:

  1. 先搞懂单路控制和批量控制的接口怎么调

  2. 在后端定义好分组配置(哪几路、什么状态)

  3. 封装一个分组控制接口,内部拼装 order 并调用芯步API

  4. (可选)加上定时任务、传感器联动,让分组切换更智能

芯步的接口整体比较干净,就是标准的HTTP,上手成本不高。分组这事儿说白了是个“业务逻辑”,放在你自己的服务端实现最灵活,想怎么分组就怎么分组,后期也好维护。

如果在对接过程中遇到具体问题,可以查一下对应型号的产品手册,芯步官网每个硬件页面都有详细的接口说明。祝对接顺利!