一、写在前面
在实际项目中,我们经常遇到这样的情况:一栋楼里有几十个甚至上百个开关,如果一个个去控制,不仅麻烦,效率也低。比如晚上10点要关闭所有公共区域的照明,如果挨个给每个开关发指令,服务器压力大不说,网络延迟也会让关灯动作变得“拖泥带水”。
芯步的开放接口正好解决了这个问题——通过分组控制,一条指令就能让一组设备同步执行动作。下面我以“3路照明门禁一体触摸开关”为例,详细讲讲怎么实现设备分组控制。
二、分组控制的整体思路
先说清楚思路,代码实现起来就顺畅了:
设备配网与注册:先把每个3路触摸开关接到云平台上,让它们“上线”
创建分组:按实际需求(比如按楼层、按区域、按功能)把设备分成不同的组
下发分组指令:通过芯步的分组控制接口,对整组设备发送开关指令
这里面最关键的是第三步——分组控制接口的使用。
三、准备工作:设备选型与接口熟悉
3.1 设备选型
咱们这次用的是芯步智能触摸墙壁开关3路,它的特点是:
支持3路独立控制,可以分别接三路照明或门禁
开放完整的HTTP API接口,支持远程和本地局域网控制
标准86底盒安装,替换传统开关很方便
每个设备在云平台上都有一个唯一的设备ID,控制单台设备时用这个ID,分组控制时用分组ID。
3.2 接口认证方式
芯步的接口使用签名认证,调用任何接口之前都需要先搞定签名。签名的计算规则是:
其中:
AppSecret:你在芯步控制台获取的开发者密码ts:当前Unix时间戳(秒)md5():标准的MD5加密函数
一个小提醒:时间戳的有效性要注意,服务器端会校验ts与服务器时间的差值,如果偏差太大会返回签名错误。你的服务器开启NTP自动对时。
四、实操步骤:从配网到分组控制
4.1 第一步:设备配网
拿到新的3路触摸开关后,第一步是把它连上网络。芯步提供了两种配网方式:
方式一:PC端控制台配网
登录芯步官网,进入你的工作台
点击左侧“物联网控制台” → “网络配置”
登记现场的WiFi名称和密码(注意:必须是2.4G频段,不支持5G)
手机开热点,热点名称和密码设置成刚刚登记的WiFi信息,让设备搜索并连接
方式二:小程序配网
微信搜索“芯步小程序”
登录后选择对应的工作台
添加现场WiFi信息,手机开热点配网
配网成功后,设备会显示在控制台的设备列表中,这时候你就能看到每个设备的ID了。
4.2 第二步:创建设备分组
配网完成后,需要在控制台创建分组。比如你有一栋3层的楼,每层有5个开关,可以这样分组:
| 分组名称 | 分组ID(示例) | 包含设备 |
|---|---|---|
| 一楼照明组 | 1001 | 设备A、B、C、D、E |
| 二楼照明组 | 1002 | 设备F、G、H、I、J |
| 三楼照明组 | 1003 | 设备K、L、M、N、O |
| 全楼照明组 | 1004 | 所有15个设备 |
分组ID可以在控制台的设备列表页面查看,也可以通过“读取分组列表”接口获取。
一个实用:分组逻辑按“控制粒度”来设计。如果你需要“按楼层关灯”就建楼层分组,如果需要“按功能区”(如走廊、会议室、办公室),就建功能区分组。分组可以嵌套使用吗?芯步目前不支持分组嵌套,但你可以让一个设备同时属于多个分组来变通实现。
4.3 第三步:通过接口实现分组控制
这是核心环节。芯步提供了专门的分组控制接口:
接口地址
请求方式:POST(推荐)或GET
核心参数
group:分组ID(整数)命令参数:指定要执行的动作
针对3路开关的命令说明
power1:控制第1路(0=关闭,1=开启)power2:控制第2路power3:控制第3路
4.4 实战代码示例
下面我用Python写一个完整的示例,演示如何对分组执行“全部关闭”操作:
如果使用cURL命令(适合快速测试):
五、进阶用法:动作(Action)与场景联动
除了直接发送命令,芯步还支持动作(Action)方式。动作可以理解为“预定义的一组指令”,更适合复杂场景。
比如你定义一个“离家模式”动作(ID=10),包含:关闭所有照明、门禁上锁、关闭空调。调用时只需要:
这种方式的好处是:你不需要关心具体控制哪些线路,只需要知道动作ID就行。特别适合与楼宇自控系统、智能家居中控对接。
MQTT方式补充:如果你的系统对实时性要求很高(比如延迟要求<50ms),或者需要监听设备状态变化,同时使用MQTT方式。分组控制的MQTT主题是:
发布后在同一主题接收返回结果。HTTP方式延迟约80-120ms,MQTT方式可以做到更低。
六、局域网私有化部署(可选)
如果你的项目要求数据不外网传输,或者网络环境不稳定,芯步支持私有化部署方案:
芯步的服务端可以部署在你的本地服务器上
所有设备通过局域网直接与你的服务器通信
接口调用方式和云端的完全一致,只需要把
api.thingboot.com换成你的内网IP即可
这个方案特别适合:政府机关、军事单位、金融数据中心等对网络隔离有要求的场景。
七、常见问题与避坑指南
Q1:分组控制返回502错误
原因:分组ID不存在或分组中没有可用设备
解决:检查分组ID是否正确,确认分组里已经添加了设备
Q2:为什么有时部分设备没响应?
原因:网络波动或设备离线
:分组控制接口采用的是“尽力而为”模式,不会因为个别设备失败而整体失败。如果需要确认每个设备的执行状态,后续调用设备查询接口做二次确认
Q3:同一个设备可以加入多个分组吗?
可以。比如一个开关既属于“一楼照明组”,又属于“应急照明组”。控制任一分组时,该设备都会响应。但需要注意:如果两个分组同时下发冲突指令,以后收到的为准。
Q4:3路开关的每一路能单独分组吗?
不支持。分组的最小单位是整个设备,不能按“路”来分。如果你需要按单路精细分组,把每一路当成一个独立设备来规划(即用单路开关代替三路开关)。
Q5:签名计算一直报错怎么办?
排查步骤:①确认AppSecret是否正确(注意不要有多余空格)②确认时间戳是秒级不是毫秒级 ③先用在线MD5工具手动计算一次,对比验证逻辑
八、总结
通过芯步的分组控制接口,我们可以用几行代码就实现对多个3路照明门禁触摸开关的批量控制。无论是按楼层管理、按区域控制,还是执行复杂的场景联动,都能轻松搞定。
核心步骤就三个:设备配网上线 → 创建分组 → 调用分组接口。
如果你的系统需要对接楼宇自控、或者做智慧办公的集成,芯步这套方案是性价比很高的选择。遇到对接问题,也可以直接联系他们的技术支持——官网上写着“免费提供全程技术指导”,从选型到调试都有人帮忙。
希望这篇文档能帮你顺利搞定分组控制!有问题欢迎继续交流。