CATALOG

芯步的智能触摸墙壁开关3路(UNI-KG-CM-3)支持通过HTTP接口进行二次开发,其分组控制功能可以绕过单设备逐一控制的繁琐流程。下面从接口机制、分组管理到代码实现,梳理一套完整的解决方案。

解决方案:基于芯步开放接口的智能开关二次开发(设备分组控制)

一、 背景与目标

芯步智能触摸墙壁开关3路(型号:UNI-KG-CM-3)虽然支持通过HTTP接口单控或批量控制,但在实际场景(如智能家居、办公室、小旅馆)中,用户往往需要通过一个逻辑开关(如“睡眠模式”、“全部关闭”)同时控制多个开关的特定线路。

单纯使用设备控制接口需要循环调用或在device参数中用逗号拼接多个设备ID,若需按楼层、区域或功能区进行差异化控制,则缺乏灵活性。

目标:基于芯步的开放 HTTP API,利用其“设备分组”功能,构建一套针对“智能触摸墙壁开关3路”的二次开发方案,实现:

  1. 将分散的开关设备或单设备中的某一路逻辑加入同一个分组。

  2. 通过调用分组控制接口,一键执行复杂逻辑(如关闭整层楼所有开关的线路3)。

二、 核心技术原理

该方案基于芯步提供的两个核心 OpenAPI 接口:

  1. 设备分组维护接口 (/device/group/): 用于将指定的设备ID添加到某个分组ID中。

  2. 分组执行命令接口 (/group/control/): 用于向该分组内所有设备下发统一指令。

此方案支持纯局域网或私有化部署环境,不依赖外网

三、 二次开发实施步骤

1. 前置准备与鉴权

在调用任何接口前,需要实现通用的签名计算函数。芯步采用双重MD5加密机制。

  • AppID / AppSecret: 在芯步控制台获取。

  • Sign 算法: sign = md5( md5(AppSecret) + ts )

    • 注:ts 为当前 Unix 时间戳(秒)

2. 业务数据结构设计

针对智能触摸墙壁开关3路,关键点在于 order 参数不仅支持设备级控制,还支持单设备的多路独立控制

  • 指令映射表:

    • power1:1:开启第1路

    • power2:0:关闭第2路

    • power3:1:开启第3路

由于开关断开可能涉及物理按键,在二次开发时引入状态缓存机制,因为该开关是物理按键与API并行控制,你的服务器数据库需要维护当前各路开关的最新状态,以防止UI界面显示错乱。

3. 核心功能实现:创建“逻辑分组”

假设你需要搭建一个“会客模式”,包含客厅的3路开关(全开)和走廊的1路开关(开)。

步骤 A:构建分组调用设备分组接口,将目标设备填入 group 字段。

  • 接口地址: https://api.thingboot.com/{AppID}/device/group/

  • 请求参数: device=ID1,ID2 & group=10001 (分组ID)

步骤 B:实现分组控制逻辑这是本方案的核心。当你创建了分组后,可以利用分组接口实现比单设备更复杂的场景。

场景 1:一键全关如果你只想关闭一个分组里所有开关的第3路(例如所有风扇或某种特定电器),代码实现如下:

citation:3

场景 2:分组内差异化控制(高级玩法)由于 UNI-KG-CM-3 支持 order 结构,二次开发时可以利用 JSON 的灵活性。假设分组内有设备 A 和设备 B,你想让 A 只关第1路,B 只关第2路,单次 API 调用无法直接实现这种差异化。解决方案是:

  1. 细化分组:将设备A的第1路视为一个分组,设备B的第2路视为另一个分组。

  2. 或者使用 MQTT: 监听同一个主题,在业务后端处理分发逻辑,向不同设备下发不同的 order

4. 代码实现示例

以下示例展示了如何通过 Python 封装一个分组控制函数,专门用于控制“3路开关”设备的特定线路。

citation:2,3

四、 链路层优化与稳定性

在二次开发触摸墙壁开关3路时,有几个硬件特性需要特别注意:

  1. 网络冗余机制UNI-KG-CM-3 支持设定5组WiFi。在二次开发的配网环节,通过接口将主用WiFi和备用WiFi(如手机热点)同时写入设备。当主路由故障时,设备会自动跳频,避免设备“离线”导致分组控制失效

  2. 局域网直连模式如果你的业务系统(如本地的 Home Assistant 或 Node-RED)与开关在同一局域网内,使用私有化部署或直接调用设备局域网IP进行控制。这样可以消除云端的网络延迟,分组控制的响应速度可从秒级降至毫秒级

  3. 物理反馈与API状态的同步智能触摸开关是电容触摸式。当用户物理触摸开关面板时,状态发生了改变。你的后端系统需要通过订阅设备状态主题或轮询设备详情,来同步更新数据库中的状态,否则界面上的“开关”状态会不一致。

五、 方案总结

通过二次开发芯步的开放接口,针对智能触摸墙壁开关3路的控制可以变得非常灵活:

  • 基础层:利用 HTTP 签名鉴权,确保 API 调用的安全性。

  • 逻辑层:利用 group/control 接口结合 power1/2/3 参数,将物理设备抽象为逻辑区域(分组),实现一键情景模式。

  • 体验层:利用设备的多WiFi冗余和局域网 API 特性,提高系统稳定性。

该方案不仅适用于墙壁开关,也同样适用于芯步旗下的控制器、断路器等产品,具有良好的架构通用性。