芯步2路智能墙壁开关的开放接口采用标准HTTP协议,支持独立控制每一路电路、状态保持、先通后断等多种指令。以下方案将从接口协议、签名机制、单路/双路控制命令,到基于传感器触发的联动场景逻辑,给出完整的接入实现路径。
解决方案:基于芯步2路智能墙壁开关的联动场景逻辑控制接入方案
1. 总则与准备
本方案的目标是指导开发者利用芯步开放平台及智能触摸墙壁开关2路(产品型号:智能触摸墙壁开关2路)的HTTP API接口,实现设备控制与复杂的联动场景逻辑构建。
前提准备:
硬件就绪:已完成“智能触摸墙壁开关2路”的安装与接线(L、N进线;L1、L2出线),并确保设备通电且网络在线(WiFi 2.4GHz)。
账号与凭证:注册芯步账号,在“工作台 -> 物联网控制台 -> 开发设置”中获取 AppID 和 AppSecret。
设备ID:在控制台设备列表或通过拉取设备接口获取目标开关的唯一标识 Device ID(例如搜索结果中的
1878)。
2. 接入技术:HTTP API 调用
所有控制指令均通过向 api.thingboot.com 发送POST请求实现。为了保障安全性,接口采用了动态签名鉴权。
2.1 签名生成规则由于接口涉及设备控制,必须携带正确的签名(Sign)。以下是核心的签名算法逻辑:
步骤1:将 AppSecret 进行 MD5 加密得到
Secret_MD5。步骤2:获取当前Unix时间戳(秒级),记为
ts。步骤3:将
Secret_MD5与ts拼接,再进行一次 MD5 加密,得到最终的sign。公式
YourSign = md5( md5(AppSecret) + ts )。
2.2 请求示例
URL
https://api.thingboot.com/{AppId}/device/control/?sign={YourSign}&ts={ts}Method:POST
Content-Type
application/jsonBody (JSON)
3. 两路设备的独立控制命令
针对2路智能墙壁开关,通过 order 字段中的不同参数来控制不同的线路,以下为核心指令集
| 功能描述 | 指令参数 (order JSON) | 说明 |
|---|---|---|
| 开启第1路 | {"power1": 1} | 控制L1接口闭合,接通电器 |
| 关闭第1路 | {"power1": 0} | 控制L1接口断开 |
| 开启第2路 | {"power2": 1} | 控制L2接口闭合 |
| 关闭第2路 | {"power2": 0} | 控制L2接口断开 |
| 查询状态/无操作 | {"power1": ""} | 空指令,用于获取最新状态(配合回调) |
| 1路状态保持 | {"power1": {"keep": 1, "revert": 10}} | 锁定1路为开,用户手动关掉后,10秒自动恢复开启 |
注:除了基础开关,该设备还支持 point1(点动/先通后断)、reset1(复位/先断后通)等工业级控制指令。
4. 实现联动场景逻辑控制
这是本方案的重点。所谓“联动”,通常依赖于 “触发器(传感器/时间)” + “规则(逻辑判断)” + “执行器(墙壁开关)” 的铁三角模型。由于芯步的开放接口是无状态的,联动逻辑需要在开发者自己的云服务器上实现。
以下通过两个典型场景演示如何编写逻辑代码:
第一种场景:人来灯亮,人走延时关 (联动人体传感器)
需求:厕所或走廊,当有人经过时(红外传感器触发),自动打开第1路照明灯;人离开后(无触发信号持续30秒),自动关闭第1路。逻辑流程
服务器接收“人体传感器”上报的
presence数据(通过平台消息推送或主动查询)。触发:收到
presence=1(有人)。动作:调用API发送
{"power1": 1}开启开关。
触发:收到
presence=0(无人)。动作:服务器不立即关闭,而是设置定时器(Delay 30秒)。
逻辑:30秒内若再次收到
presence=1,则取消原定时器;若无新触发,30秒后调用API发送{"power1": 0}。
第二种场景:离家模式/全屋关断 (联动门磁或语音助手)
需求:当用户按下“离家”按钮(或门磁感应关门上提)或发出语音指令,同时关闭2路开关。逻辑流程
服务器接收到“离家场景”触发信号(例如来自微信小程序或门磁)。
构建批量指令:因为需要同时控制两个独立线路,可以在一次HTTP请求中下发复杂命令,或者连续调用两次接口。
方案A(推荐,减少网络开销) :调用设备控制接口,虽然
device字段只能填一个ID,但order可以包含多路指令。请求Body
结果:客厅灯和走廊灯同时熄灭。
第三种场景:观影模式 (情景联动)
需求:一键启动第1路(关闭主灯),第2路(打开氛围灯带)。逻辑流程
用户在小程序点击“观影模式”。
服务器逻辑
调用接口下发
{"power1": 0}(关闭主照明)。调用接口下发
{"power2": 1}(开启氛围灯)。优化:由于2路开关是同一个设备,可以合并为一次请求:
{"power1": 0, "power2": 1}。
5. 设备状态同步与事件监听
要实现可靠的联动,必须知道设备的当前状态(是开还是关)。仅仅靠记忆上次发送的命令是不可靠的(因为用户可能手动触摸开关改变了状态)。
解决方案:配置消息推送
设置回调URL:在芯步控制台设置“API回调地址”(又称Webhook)。
接收上报:当开关状态发生变化(无论是通过API控制,还是人为触摸屏幕),设备会主动向你的服务器推送状态数据。
数据格式示例:你的服务器会收到类似
{"device_id":"xxx", "power1": 1, "power2": 0, "timestamp": ...}的POST请求。应用:根据收到的状态更新数据库中的设备状态,用于联动条件判断(例如:如果灯是关的,门磁触发闹钟才响;灯是开的,门磁触发则忽略)。
6. 故障排查与最佳实践
网络稳定性:2路智能墙壁开关仅支持2.4GHz WiFi,确保现场的WiFi信号强度,避免因网络延迟导致联动“卡顿”。
签名失效:请注意服务器时间(ts)必须与标准时间同步,误差过大会导致签名验证失败。
并发控制:在场景联动中(如安防报警),可能会有多个传感器同时触发。在服务器端使用“队列”或“时间窗口”去抖处理,避免在短时间内(如1秒内)对同一个设备下发几十次开启命令,导致云端限流或设备响应迟缓。
通过上述方案,您可以利用芯步2路智能墙壁开关的开放式API,结合您的业务服务器逻辑,灵活实现如“人来灯亮”、“离家全关”、“一键场景”等复杂的智能化联动控制。