芯步的智能墙壁开关支持HTTP API控制,同时保留本地物理按键功能,两者并行工作互不干扰。以下方案以3路开关为例,说明如何通过开放接口实现本地按键与远程双控制。
1. 解决概述
对接芯步的智能硬件(特别是 UNI-KG-3 智能墙壁开关3路 或 智能触摸墙壁开关3路),利用其开放的 HTTP API 接口,可以实现本地物理按键控制与远程网络控制的逻辑并存。
核心原理:设备状态(通断)由设备内部的继电器物理维持。无论是本地按键触发,还是远程 HTTP 指令,本质上都是向设备 MCU 发送“切换/设定”信号,最终改变继电器的开合状态。两者是并行逻辑,不存在谁覆盖谁,因此天然支持双控。
适配产品
智能墙壁开关3路(塑料按键版)
智能触摸墙壁开关3路(玻璃触摸版)
技术指标
控制路数:3 路独立控制(L1, L2, L3)
通讯方式:WiFi 2.4GHz
接口协议:HTTP API(云端)或 局域网 HTTP API
负载限制:阻性负载 300-1200W/路;感性/容性负载(如LED)<300W/路。
2. 技术对接流程
实现双控的流程分为硬件准备、接口对接和业务逻辑实现三个步骤。
2.1 硬件准备与配网
安装:标准86底盒安装,接好零火线(注意:智能开关通常需要零线,部分型号支持单火,请核对产品手册)。
配网:下载“芯步”或对应的控制台 App,将开关接入 2.4GHz WiFi 网络,获取 Device ID(设备唯一ID,例如
1878)。
2.2 开放接口对接
芯步提供基于 HTTP 的标准 API。你需要部署一台服务器(云端或局域网内)来执行远程指令。
关键凭证获取
AppID:应用唯一标识。
AppSecret:应用密钥,用于计算签名。
Device ID:目标设备的唯一标识。
签名算法(必读)为保证 API 调用安全,需对请求进行 MD5 签名。Sign = md5( md5(AppSecret) + ts )
步骤:先将 AppSecret 进行一次 MD5 加密,得到字符串 A;将 字符串A 与当前时间戳 ts 拼接;再将拼接结果进行 MD5 加密,得到最终的 Sign。
核心 API 接口
URL
https://api.thingboot.com/{AppID}/device/control/?sign={Sign}&ts={Timestamp}Method:POST
Header
Content-Type: application/jsonBody 参数
3. 实现“双控制”的具体指令逻辑
你需要针对 3 路物理开关编写服务器端代码。以下为不同场景的控制指令示例。
3.1 第一种场景:远程基本开关(对应物理按键的简单通断)
这是最常用的双控模式。远程发送开/关指令,物理按键可以随时覆盖或改变这个状态。
需求:手机 App 点击“打开第 1 路”,家里的灯泡亮起;随后人到家,按下墙壁物理按键(第1路),灯泡熄灭。
远程开灯指令
order参数:{"power1": 1}(1代表接通/开)。
远程关灯指令
order参数:{"power1": 0}(0代表断开/关)。
说明power1, power2, power3 对应开关面板上的物理按键 1、2、3。该指令执行后,设备状态会同步更新,物理按键按下时设备也会实时响应,无需额外逻辑。
3.2 第二种场景:状态保持与互锁(高级场景)
在某些场景下,你可能希望禁止物理按键调整状态,或者要求物理按键操作后几秒自动恢复。这利用接口中的 keep 和 revert 参数。
需求:控制楼道灯或门锁。远程开启后,无论物理按键怎么按,3秒后自动恢复关闭;或者远程锁死按键,禁止本地操作。
“一键离家”模式(屏蔽本地按键)
远程发送指令强制关闭所有灯,并锁定状态。
order示例:{"power1": 0, "power2": 0, "power3": 0}(单纯关闭)注:普通模式下,物理按键随时可开启。如果需严格禁止本地操作,通常需要在设备固件层面设置“童锁”或“只读模式”(参考具体产品手册是否支持 Enrol 指令)。
“门禁/暂态”模式(物理按键按下后自动复原)
远程设定第1路为“保持开”状态。假设用户按了物理按键试图关闭,系统会在3秒后自动强制打开。
order示例:{"power1": {"keep": "1", "revert": "3"}}。效果:对于必须保持通电的场景,物理按键的“本地控制”会被远程设定的逻辑在数秒内覆盖,实现了另一种形式的“远程优先”。
3.3 第三种场景:脉冲控制(触发点动模式)
适用于控制电动门、门铃或卷帘窗电机(点动)。
需求:远程发送一个信号,让第2路接通1秒后自动断开,模拟物理按键的点按动作。
指令
order参数:{"point2": "1000"}(1000 毫秒 = 1 秒)。
4. 实战代码示例(以 Python/Node.js 为例)
以下代码演示如何通过服务器发送指令,控制物理开关的第3路。
4.1 Python 实现
4.2 微信小程序/JavaScript 实现
适用于在小程序或网页中远程控制。
5. 关键注意事项
网络依赖:远程控制依赖 WiFi 信号。如果开关断网,本地物理按键依然有效,但远程失效。确保覆盖范围内信号强度。
负载匹配:LED 灯具启动电流大,单路不超过 300W,否则可能导致设备损坏或闪烁。
状态同步:当用户按下物理按键时,设备状态会上报至芯步云平台。你的应用需实现状态查询接口或订阅设备上报消息(WebSocket/MQTT),否则本地按了开关,App 上显示的状态可能因未刷新而不一致。
安全签名
AppSecret是核心凭证,切勿写死在客户端代码(如 App 或小程序前端)中。应在你的业务后端生成签名并发起请求到芯步 API。局域网直连:芯步设备支持私有化部署和局域网 API 调用。如果你的业务服务器与开关处于同一局域网(且设备开启了 LAN 模式),可不通过云端直接控制,延迟更低,外网断开时也能实现局域网内的远程控制(但物理按键始终可用)。
6. 总结
通过对接芯步的 powerX、pointX 及 keep/revert 等接口参数,开发者可以轻松实现:
物理按键控制本地继电器(优先级最高,物理直接导通)。
云端/远程 API 控制同一继电器(逻辑指令)。
两者关系:互为备份与补充。物理按键解决断网焦虑,远程 API 解决便捷与场景联动需求。