芯步智能开关的HTTP接口采用标准的签名认证机制,支持远程通断、状态保持、延时通断等多种命令模式。以下方案围绕如何基于其1路开关的开放能力,构建一个多模态联动的客房场景控制系统。
一、 背景与需求
在现代酒店或公寓管理中,客房场景化控制(如“欢迎模式”、“睡眠模式”、“离家模式”)是提升用户体验的关键。传统的1路智能墙壁触摸开关通常仅用于控制一路灯光,无法直接联动窗帘、空调或电视。
通过二次开发芯步的 “智能触摸墙壁开关1路” 产品,利用其开放的HTTP API接口,我们可以在不更换现有开关的前提下,将该物理按键升级为“场景触发器”。用户单击/触摸物理开关时,不仅能控制继电器通断,还能通过后台逻辑联动整个客房设备。
二、 核心思路:按键即场景触发器
本方案的核心逻辑是 “软硬解耦”
硬件层:芯步1路开关仅作为输入/输出设备。其继电器(Relay)不再直接连接大功率灯光(或仅作为辅助),而是接入信号线;或者保持控制灯光,但利用其“状态保持”或“先通后断”功能向服务器发送指令。
云平台层:利用芯步开放的HTTP接口,开发者接管设备的控制权。
执行层:服务器收到开关指令后,逻辑处理(如:判断是“单击”还是“长按”),进而通过API或MQTT协议控制客房内其他智能设备(空调、窗帘、插卡取电等)。
三、 硬件选型与准备
产品型号:芯步 智能墙壁触摸开关(1路)
控制核心:WiFi 802.11 b/g/n (2.4GHz),无需网关,直连路由器。
负载接口:1路继电器输出(10A),支持阻性/感性负载。
关键特性:支持HTTP API控制、支持状态保持、支持先通后断(点动) 模式。
安装位置:替换客房入口处的原86型墙壁开关。
四、 二次开发接口详解
开发人员需要对接芯步的开放平台,核心是调用HTTP API实现对设备状态的读取与控制。
1. API对接基础
请求地址
https://api.thingboot.com/{AppID}/device/control/认证机制:动态MD5签名。
公式:
Sign = md5( md5(AppSecret) + ts )其中
ts为Unix时间戳。每次请求需携带实时签名,防止重放攻击。
请求方式:POST, Content-Type: application/json
2. 指令集构建
针对1路开关,主要使用以下JSON命令进行控制
| 功能模式 | JSON指令示例 | 说明 | 应用场景 |
|---|---|---|---|
| 基本开关 | {"power1":1} | 打开第1路继电器 | 强制开/关灯 |
| 状态保持 | {"power1":{"keep":"1","revert":"30"}} | 用户关灯后,30秒后自动恢复开灯 | 防止客人误关服务器/路由器 |
| 点动模式 | {"point1":"2000"} | 继电器先接通,延时2000ms后断开 | 触发门磁、门铃或脉冲信号 |
| 互锁/复位 | {"reset1":"0"} | 先断开,再接通 | 设备重启逻辑 |
注:以上命令结构基于官方通用接口文档整理,具体请以芯步官方最新文档为准。
五、 实施步骤:构建场景化控制
第一步:设备配网与平台注册
通过芯步官方App或工作台,将开关设备添加至WiFi网络。
登录芯步工作台,获取设备的唯一标识
Device ID以及开发者的AppID/AppSecret。关键点:将开关的名称修改为“客房入口场景键”,便于后期维护。
第二步:服务器端接口对接
通过编写中间件代码,将芯步的指令“翻译”为客房控制指令。
场景实现:点击开关,执行“欢迎模式”
物理操作:客人进入房间,按下墙壁开关。
设备动作:芯步开关继电器吸合。如果继电器接的是灯,灯亮;但在场景化方案中,我们将继电器接点设置为点动模式(<500ms),或者不在意灯的状态,重点在于通过回调接口通知服务器。
数据流转
芯步通过回调(Callback)或WebSocket通知你的服务器:
Device X 的 power1 状态变为 1。你的服务器接收后,并不直接关心灯的状态,而是执行以下逻辑:
HTTP调用命令:打开客房电视。
HTTP调用命令:打开电动窗帘至80%。
HTTP调用命令:调节空调至24度。
HTTP调用命令:关闭卫生间灯(如果有)。
代码逻辑示意 (伪代码)
第三步:高级进阶 —— 利用“状态保持”实现防误触
在酒店场景中,工程部可能不希望客人在拔掉取电卡后,某个关键设备(如网络机柜)被关闭。
解决方案:通过API下发命令
{"power1":{"keep":"1","revert":"0"}}。效果:即使用户物理按下了开关试图关闭设备,继电器也会在松开手的瞬间自动恢复开启状态。这利用的是开关内部的软件互锁功能,不依赖服务器网络,即使断网也能生效 。
第四步:本地化控制与容灾
鉴于芯步设备支持局域网HTTP API ,二次开发时应优先设计本地化策略:
在客房内的中控系统(如树莓派、酒店中控盒子)运行本地Web服务。
当中控盒子监测到网络断开时,自动切换为局域网控制,直接通过内网IP控制开关,保证客房场景切换的流畅性和稳定性。
六、 典型场景配置表
| 场景名称 | 用户动作 | 接收指令的设备 | 二次开发逻辑处理 (中间件) | 最终执行效果 |
|---|---|---|---|---|
| 欢迎模式 | 进门插卡/按开关 | 1路开关 | 服务器识别到开关信号,忽略自身继电器状态,调用各设备API。 | 筒灯亮、窗帘关、空调23°C、电视打开欢迎页。 |
| 睡眠模式 | 长按床头开关 | 1路开关 | 判定长按信号(通过连续点动的延时时间差判定),下发组命令。 | 关闭所有灯光,关闭电视,窗帘留缝,空调进入睡眠风速。 |
| 离家/打扫 | 出门按玄关开关 | 1路开关 | 调用客房管理系统API,联动清洁机器人,关闭总电源(除冰箱外)。 | 总闸延时5分钟断开。 |
| 勿扰联动 | 门铃触发 | 1路开关 | 假如开关指示灯变成红色,服务器不发送开锁指令。 | 开关灯闪烁提醒客人门外有人,但不开锁。 |
七、 总结
通过对芯步1路智能墙壁触摸开关进行二次开发,开发者可以打破“一个按键只能控制一个设备”的物理限制,将其变身为全屋智能的神经末梢。利用其开放的 “点动模式” 和 “HTTP API” ,开发者可以用极低的硬件成本实现高客制化的酒店/公寓客房场景控制,真正实现所谓的“极简布线,无限场景”。