CATALOG

一、背景与需求分析

在智能家居和楼宇自动化场景中,用户往往需要同时满足两种控制需求:一是通过手机App随时随地远程控制照明和门禁,二是保留物理按键的本地操作习惯——在门口顺手按下开关,或为访客开门时无需掏出手机。

芯步的智能墙壁复合开关系列产品(1路/2路/3路版本)提供了完整的Wi-Fi接入能力和开放的HTTP API接口,支持开发者进行二次开发,将传统墙壁开关升级为“手机遥控+物理按键”双模控制的智能终端。本方案将详细阐述如何基于芯步开放接口,实现这一目标。

核心目标:在不替换原有墙壁开关物理按键的前提下,通过二次开发使开关同时响应本地按键操作和手机远程指令,实现对照明回路和门禁电磁锁的控制。

二、系统设计

2.1 整体架构图(文字描述)

整个系统由以下几个层次构成:

  • 设备层:芯步智能墙壁复合开关(根据控制路数选择1/2/3路版本),直接替换原有86型墙壁开关,接入照明回路或门禁电磁锁。

  • 网络层:开关通过2.4GHz Wi-Fi连接家庭/办公网络,与芯步云端保持长连接。

  • 平台层:芯步开放平台,提供设备注册、状态管理、指令转发等功能,开放HTTP API供第三方服务调用。

  • 应用层:二次开发的服务端程序(可部署在云服务器或本地网关),负责接收手机App/小程序的指令,调用芯步API下发控制命令;同时监听设备状态变化,实现状态同步。

  • 用户层:手机端H5/小程序/App,提供远程控制界面;同时保留开关本身的物理按键作为本地控制入口。

2.2 核心工作流程

  1. 本地控制流程:用户按压开关物理按键 → 开关内部MCU检测到动作 → 直接控制对应继电器通断 → 同时将状态变化上报云端 → 云端推送状态变更给所有已连接的客户端。

  2. 远程控制流程:用户在手机端点击按钮 → 手机端调用开发者服务端接口 → 服务端调用芯步API(携带签名、设备ID、指令)→ 云端将指令下发至目标开关 → 开关执行继电器动作 → 返回执行结果至云端 → 云端推送结果至服务端和手机端。

三、硬件选型与准备

3.1 推荐硬件型号

根据实际控制需求选择对应的芯步智能墙壁开关:

需求场景推荐型号控制路数说明
单路照明/门禁智能墙壁开关1路 或 智能触摸墙壁开关1路1路适用于控制单一照明回路或门禁电磁锁
照明+门禁组合智能墙壁开关2路 或 智能触摸墙壁开关2路2路可独立控制2路设备,例如一路照明、一路门禁
多路照明场景智能墙壁开关3路3路适用于多路照明分区控制

关键参数

  • 工作电压:100-240V AC(市电直接供电,无需额外电源适配器)

  • 无线连接:Wi-Fi IEEE 802.11 b/g/n 2.4GHz

  • 额定电流:10A/路,可满足绝大多数照明和门禁负载需求

  • 安装方式:标准86型底盒,可直接平行替换原有墙壁开关

3.2 门禁控制特殊说明

控制门禁(如电磁锁、电插锁)时需注意:

  • 门禁锁通常需要12V DC供电,而智能墙壁开关输出的是220V AC。因此不可直接将门禁锁接入开关输出端

  • 正确做法:将智能墙壁开关的一路输出用于控制一个220V转12V的继电器模块,再由该继电器控制门禁锁的12V供电通断。开关输出“开”时继电器吸合,门禁锁通电开锁;开关输出“关”时继电器断开,门禁锁断电闭锁。

  • 若门禁系统支持“点动模式”(即通电开门、断电自动关门),可利用开关的“先通后断”命令模式实现类似门禁按钮的短暂触发效果

四、API接口详解与二次开发核心

4.1 开放接口概述

芯步开放平台提供两种与设备通信的方式:

  • HTTP API:请求-响应模式,适用于服务端调用,向设备下发一次性指令。

  • MQTT:发布-订阅模式,适用于需要实时监听设备状态变化的场景。

本方案主要使用HTTP API进行控制指令下发,同时可配合MQTT实现状态同步。

4.2 核心接口:向设备下发指令

接口地址(需替换实际参数):

请求方式:POST(参数较长时推荐)

核心参数说明

参数名类型必填说明
devicestring设备ID,可在芯步控制台查看,或通过设备列表接口获取
orderstring/object控制命令,可传JSON字符串。根据开关路数不同,命令内容不同
gatewaystring如果设备需要网关转发时填写,一般Wi-Fi设备无需此参数

命令(order)格式详解

单路开关命令

两路开关命令

门禁场景专用——点动模式(先通后断)

场景锁定模式(状态保持)

4.3 接口调用示例

以下提供三种主流语言的调用示例,开发者可根据自身技术栈选择。

Python示例

Node.js示例

Shell脚本示例(curl)

4.4 注意事项

  • 异步执行机制:接口返回200仅代表平台已接收指令并成功下发给设备,不代表设备已实际执行。设备可能处于离线状态或命令参数错误。对于必须确认执行结果的场景,需通过芯步平台的异步消息推送功能获取设备回执

  • 签名机制:调用接口时必须携带正确的签名(sign)和时间戳(ts),具体算法请参考芯步官方文档。

  • 批量控制:一次请求可控制多台设备,device参数用英文逗号或竖线分隔,最多100台

五、服务端二次开发实现

5.1 服务端程序架构

采用以下两种部署方案之一:

方案A:云服务器部署

  • 在阿里云/腾讯云等云服务器上部署Node.js/Python/Java服务

  • 提供RESTful API供前端调用

  • 优点:公网可达,手机随时随地可控制

  • 缺点:依赖公网,网络延迟略高

方案B:本地网关部署

  • 在家庭/办公室的树莓派、NAS或闲置电脑上部署服务

  • 通过内网穿透(如frp、Ngrok)或直接暴露端口供外网访问

  • 优点:局域网内控制延迟低,不依赖外网

  • 缺点:需要维护本地服务器稳定性

5.2 服务端核心功能模块

1. 设备管理模块

2. 指令转发模块

3. Webhook/回调接收模块(用于接收设备状态变更推送)

5.3 状态同步方案

由于HTTP接口是单向指令下发,若需实时获取设备状态(如物理按键被按下后更新手机端显示),需要:

  1. 启用芯步平台的异步消息推送:配置回调URL,平台会在设备状态变化时主动推送JSON数据到你的服务器。

  2. 使用MQTT订阅:芯步平台支持MQTT协议,可订阅api/{AppID}/device/status主题,实时接收设备状态消息。

  3. 轮询方案(不推荐):定期调用设备状态查询接口,存在延迟且消耗API配额。

六、手机端交互界面设计

6.1 功能需求

手机端(H5/小程序/App)需提供以下界面:

  • 设备列表页:展示所有已注册的智能开关,显示在线/离线状态、当前各路开关状态。

  • 设备控制面板

    • 照明控制:大按钮开关,点击即时切换,带状态反馈动画。

    • 门禁控制:采用“长按开门”或“点击后弹窗确认”的设计,防止误触。同时提供“点动开门”按钮(按下后开启2秒自动关闭)。

  • 场景联动(可选):

    • 离家模式:一键关闭所有照明。

    • 回家模式:开启指定照明 + 门禁点动。

6.2 前端调用示例(微信小程序)

七、物理按键与远程控制的协同机制

7.1 核心设计原则

芯步智能墙壁开关的物理按键和远程控制是天然协同的:

  • 物理按键直接控制继电器的硬件电路,响应迅速(毫秒级),不依赖网络

  • 按键操作后,开关会自动将新的状态上报云端,云端再推送给所有已连接的客户端。这意味着:用户按下物理按键关灯,手机端也会立即显示灯已关闭。

二次开发无需额外处理物理按键的逻辑——开关的固件已完整实现这一机制。开发者的工作重心在于:

  1. 通过API实现远程控制

  2. 处理云端推送的状态同步

  3. 设计手机端交互界面

7.2 高级场景:状态锁定模式

芯步开关支持“状态保持/锁定”模式,适用于需要强制维持某个状态的场景

此功能可通过API远程开启/关闭,非常适合无人值守场景(如机房、设备间)。

八、安全与权限控制

8.1 API调用安全

  • 签名机制:每次调用芯步API都需携带动态签名,防止请求被伪造和重放攻击。

  • 服务端鉴权:开发者的服务端应实现用户认证(JWT/Session),确保只有授权用户才能调用控制接口。

8.2 门禁控制增强安全

门禁涉及安全性,在手机端和门禁控制逻辑中加入额外保护:

  • 操作密码/生物识别:远程开门前要求输入密码或验证指纹/面容。

  • 操作日志:记录每次开门操作的账号、时间、IP地址。

  • 限流机制:同一用户短时间内多次开门请求自动限流。

  • 白名单时段:可设置允许远程开门的时间段(如仅9:00-21:00)。

九、部署与测试要点

9.1 部署步骤

  1. 在芯步开放平台注册账号,创建应用,获取AppID和AppSecret。

  2. 将智能墙壁开关通过“芯步”App配网,获取设备ID。

  3. 根据本方案的服务端代码框架,开发并部署你的服务端程序。

  4. 配置芯步平台的异步消息推送地址(如需状态同步)。

  5. 开发手机端H5/小程序/App,连接到你的服务端。

  6. 整体联调测试。

9.2 测试清单

测试项预期结果
手机远程开灯开关对应路继电器吸合,照明点亮,手机端显示状态变更
手机远程关灯开关对应路继电器断开,照明熄灭
本地物理按键开/关灯继电器动作正常,手机端状态自动同步更新
门禁点动控制继电器通电指定时间(如2秒)后自动断开
网络断开时本地按键本地按键应正常工作,网络恢复后自动上报状态
多设备同时控制API可同时向多台设备下发指令
离线设备控制API返回成功但设备不执行,网络恢复后需重新控制

十、常见问题与解决方案

Q1:控制指令下发成功但设备无反应?

  • 检查设备是否在线(可通过芯步控制台查看设备状态)

  • 确认命令参数格式正确,如两路开关是否正确使用了power1/power2

  • 检查设备ID是否正确

Q2:物理按键操作后手机端状态不更新?

  • 确认是否配置了异步消息推送或MQTT订阅

  • 检查回调服务是否正常运行

  • 验证网络连通性

Q3:门禁控制时继电器吸合但门锁不动作?

  • 确认门禁锁的供电电压和电流是否满足要求

  • 检查中间继电器模块的接线是否正确

  • 测试直接给门禁锁供电能否正常开锁

Q4:如何实现多用户共享控制?

  • 在开发者服务端实现设备与用户的绑定关系

  • 支持设备分享功能:设备所有者可生成分享码,其他用户扫码后获得控制权限

十一、方案总结

本方案基于芯步智能墙壁开关的开放接口,完整阐述了如何二次开发实现“手机远程+物理按键”双控照明与门禁系统。核心要点如下:

  1. 硬件选型:根据控制路数选择芯步1/2/3路智能墙壁开关,门禁控制需配合中间继电器使用。

  2. API调用:使用/device/control/接口下发JSON格式命令,支持独立控路、点动模式、状态锁定等丰富功能。

  3. 服务端开发:构建指令转发服务,配合芯步异步推送实现状态同步。

  4. 本地与远程协同:开关固件原生支持物理按键操作后的状态上报,开发者无需额外处理按键逻辑。

  5. 安全增强:门禁控制需叠加操作认证、日志记录、限流等安全措施。

通过以上方案,开发者可在较短时间内完成一套稳定、易用的双控智能开关系统,适用于家庭、办公室、酒店、公寓等多种场景。