CATALOG

芯步3路智能墙壁开关支持完整的HTTP API接口,可基于人体传感器、门磁等设备触发场景联动。以下方案涵盖签名认证、联动引擎设计及典型场景代码实现。

解决方案:基于芯步3路智能开关的二次开发实现场景联动照明控制

1. 概述

本方案的目标是指导开发者利用芯步3路智能墙壁开关的开放HTTP API接口,通过二次开发,实现照明设备与其他传感器(如人体红外传感器、门磁传感器、光照传感器)之间的场景联动。

核心目标是打破单一设备独立控制的局限,构建“条件触发即执行”的自动化体系(如:人来灯亮、人走延时关灯、开门亮灯等)。

2. 核心开放接口能力解析

芯步3路智能墙壁开关支持通过HTTP协议进行控制,这是实现联动的技术基础。其核心命令字如下

  • 即时控制power1/power2/power3(参数:1为开,0为关)。

  • 脉冲控制(点动)

    • point1/point2/point3:先通后断(如:触发后立即开启,延时后关闭)。

    • reset1/reset2/reset3:先断后通(如:触发后立即关闭,延时后开启)。

  • 状态保持(场景复位):在控制指令中嵌套keeprevert参数,可实现用户临时干预后的自动状态还原。

3. 系统设计

为了实现“场景联动”,二次开发需要构建一个中心化的事件处理引擎(可以是一个云端微服务,也可以是本地的网关脚本)。

架构流程:

  1. 触发层:各类传感器(如红外人体传感器、智能门锁、光照传感器)检测到环境变化,向服务器上报事件。

  2. 联动引擎(核心开发层):开发者部署的业务逻辑服务接收事件,根据预设的联动规则(如“当红外检测到人且光照度<10lux时”)进行条件判断。

  3. 执行层:条件满足后,引擎调用芯步开放平台的/device/control/接口,向指定的3路墙壁开关下发指令。

4. 场景联动实战开发:以“人来灯亮,人走灯灭”为例

以下通过三个典型的场景联动方案,展示具体的二次开发逻辑与代码实现。

4.1 第一种场景:走廊/楼梯的感应联动控制

需求:当人体传感器检测到有人经过时,打开楼梯灯(接在3路开关的第1路);人员离开设定的延时后(如30秒),自动关闭灯光,节约能源。

开发逻辑

  • 触发源:人体红外传感器(需接入网络,通过MQTT或HTTP推送数据至你的服务器)。

  • 处理逻辑

    1. 传感器上报“有人”事件。

    2. 调用开关接口:{"power1": 1}(开灯)。

    3. 等待30秒。

    4. 调用开关接口:{"power1": 0}(关灯)。

二次开发代码片段(Python / Flask 示例)

4.2 第二种场景:回家/离家场景联动

需求

  • 回家模式:打开大门(门磁触发),联动打开客厅主灯(3路开关的第1路)和走廊灯(第2路)。

  • 离家模式:按下门口的智能开关面板(或APP一键执行),关闭所有灯光,但开启“安防闪烁模式”(第3路接报警灯,每隔1秒闪烁一次)。

开发逻辑

  • 回家逻辑:门磁状态 Open -> 调用 Batch 控制。芯步支持批量指令,一次请求控制多路。

  • 离家逻辑:接收到离家指令 -> 关灯 -> 执行闪烁。

关键指令(批量控制)为了降低延迟,可以利用HTTP接口支持在一次请求中控制多个设备或多个端口

4.3 第三种场景:影院/阅读模式(状态保持与恢复)

需求:用户想通过语音或APP开启“阅读模式”——关闭主灯(线路1),开启辅助射灯(线路2)。但是,如果家人手动按墙壁开关把主灯打开了,5秒钟后自动关闭,强行维持“阅读模式”。

开发逻辑利用芯步开关硬件的状态保持功能。只要下发一次指令,即使本地手动操作,硬件也会在指定时间内自动复位

关键指令(状态保持)

注:这极大地简化了服务端逻辑,开发者不需要使用定时器去轮询状态,硬件自身保证了场景的纯粹性。

5. 接口封装与最佳实践

为了避免每次调用都重复编写签名算法,建立统一的设备控制服务类。签名规则如下

  • sign = md5( md5(AppSecret) + ts )

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

安全性

  1. AppSecret 绝不可放在前端:所有的接口调用必须在开发者自己的后端服务器完成。前端(小程序/APP)仅能调用开发者自己的业务接口,再由后端触发设备控制,防止密钥泄露。

  2. 私有化部署(局域网):对于对延迟要求比较高的联动(如工业控制),芯步设备支持局域网HTTP API调用。如果网关和传感器在同一局域网,可以直接发送指令,无需经过云端,可将延迟降低至10ms以内,适合无感照明体验。

  3. 设备ID管理:在数据库中建立房间 -> 设备ID -> 线路号的映射表。二次开发时,逻辑层面只处理“客厅大灯”,代码底层需自动映射为DeviceID: 123456, Power: 1

6. 总结

通过上述二次开发方案,利用芯步3路智能墙壁开关的开放接口,开发者可以轻松实现:

  1. 跨品牌联动:只要是能发送HTTP请求的传感器或逻辑,均可控制该开关。

  2. 复杂逻辑的本地化:利用硬件自带的pointkeep指令,有效降低了服务器并发压力。

  3. 场景化照明:从手动控制升级为“全自动、免干预”的智能照明体验。

开发者只需关注业务场景的逻辑构建,通信与执行层可完全依托芯步稳定的API接口完成。