CATALOG

芯步的2路智能触摸开关开放标准HTTP接口,支持单路控制、状态保持、先通后断等多种命令模式。以下方案以“人来灯亮+人走延时关”为例,展示如何通过传感器触发、云端逻辑判断、设备指令下发三个环节实现联动控制。

1. 项目概述

在智能家居和智慧办公场景中,常常需要实现设备间的联动控制。本文以 芯步 2路智能触摸墙壁开关 为核心执行设备,结合其开放的 HTTP API 接口,旨在解决如何通过第三方服务器或云平台对接该开关,实现复杂的场景逻辑控制(如:传感器触发开关动作、定时策略、互锁逻辑等)。

适用场景:

  • 走廊灯联动:人体传感器感应到人,自动打开开关一路(走廊灯),人走后延时关闭。

  • 全屋场景模式:一键触发开门狗,联动打开开关的第1路(客厅灯)和第2路(射灯)。

  • 安防联动:烟雾报警器触发时,强行将开关所有路关闭并断开电源。

2. 核心技术依托

对接的核心依赖于芯步提供的 免费HTTP API接口。该接口无需网关,设备直连 WiFi 2.4G,只要设备在线,即可通过标准的 HTTP POST 请求进行控制

接口特点:

  • 双向通信:不仅支持下发命令,还支持设备状态实时上报,这是实现“逻辑控制”的基础。

  • 高实时性:命令下发到设备响应约为 80-120ms

  • 私有化支持:支持局域网和私有化部署,保障数据安全

3. 准备工作与鉴权机制

在开发前,需要完成以下准备,所有后续接口调用都依赖于此鉴权。

3.1 硬件与环境准备

  1. 硬件:芯步 2路智能触摸墙壁开关、传感器(模拟输入源)、WiFi 路由器(2.4GHz)。

  2. 软件账号:注册芯步官网账号,登录控制台。

  3. 设备配网:使用“物联网控制台”或“芯步小程序”为开关配置 WiFi

3.2 开放接口鉴权说明

所有 API 请求均需要在 URL 中携带签名参数,防止接口被恶意篡改。核心逻辑如下

  • 公式Sign = md5( md5(AppSecret) + ts )

  • 参数说明

    • AppID:应用唯一标识。

    • AppSecret:应用密钥(需保密,服务端存储)。

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

  • 请求地址http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

4. 2路触摸开关接口指令详解

针对“2路”设备,JSON 命令中的 order 字段决定了具体的动作。不同于1路设备使用 power1,2路设备的路数控制字段定义如下

功能描述命令JSON格式 (order)业务含义
控制第1路开{"power1":1}闭合第1路继电器,接入的Light 1亮
控制第1路关{"power1":0}断开第1路继电器
控制第2路开{"power2":1}闭合第2路继电器
控制第2路关{"power2":0}断开第2路继电器
第1路状态保持{"power1":{"keep":"1","revert":"3"}}用户物理触摸关掉后,3秒自动恢复开
第2路先通后断{"point2":"3000"}第2路立即开启,持续3秒后自动关闭(点动模式)

注:point 命令常用于门磁/电插锁场景,keep 命令常用于公共卫生间照明保持。

5. 联动场景逻辑实现方案

为了实现智能联动,我们不能仅靠“设备控制设备”,必须构建一个 事件中心(您的服务器)。拓扑结构如下:传感器触发 -> 上报数据至服务器 -> 服务器执行逻辑判断(if this then that) -> 调用开关API执行动作

5.1 第一种场景:走廊灯联动控制

需求:当人体传感器探测到有人移动时,自动打开2路开关的第1路(走廊灯);人离开1分钟后,自动关闭。解决方案

  1. 接收事件:服务器接收“人体传感器”上报的有人/无人状态

  2. 逻辑处理

    • 若收到“有人”状态:调用开关控制接口。

    • 代码示意(伪代码/Python思维)

    • 延时关闭逻辑:若收到“无人”状态,设定60秒延时。为避免误判,需配合传感器的心跳检测机制,确认无人状态持续60秒后下发关闭指令。

5.2 第二种场景:点动模式(先通后断)

需求:按下App中的“按铃”按钮,开关第2路立即接通,驱动外部门铃响一声(1秒),随后自动断电。解决方案直接利用设备固件内置的 point 命令,无需服务器侧写循环代码。

  • 请求Payload

  • 效果:第2路接通1秒后自动断开,既完成了逻辑,又避免了因网络延迟导致指令无法下达的“长通”风险

5.3 第三种场景:互锁逻辑

需求:控制窗帘或卷帘门(电机正反转)。第1路控制“正转”,第2路控制“反转”。要求两路绝对不能同时打开(否则烧毁电机)。解决方案必须在服务器逻辑层进行强校验

  1. 禁止同时触发:在代码中检查,如果接收到的命令是开启 power1,必须先执行一次 power2 的关闭指令(或通过状态机检查)。

  2. 指令下发顺序

    • 场景:用户点击“开”。

    • 动作1:服务器下发 {"power2":0}(确保反转回路断开)。

    • 动作2:间隔200ms,下发 {"power1":1}(接通正转)。

    • 注:虽然硬件继电器有物理间隙,但在逻辑控制中软件互锁是最佳实践。

6. 对接开发步骤指南

第一步:设置消息推送(接收设备状态)

要实现“联动”,您的服务器需要知道触发源的状态。请在芯步控制台设置 API 推送(Webhook) URL。

  • 当开关状态被物理触摸改变时,芯步服务器会主动推送 {"power1":0/1} 到您的服务器。

  • 您的服务器根据此推送触发后续逻辑。

第二步:调用接口核心代码逻辑

发起 HTTP 请求控制 2 路开关的模板(基于 Bash/Curl 示例,展示签名过程)

第三步:故障排查与优化

  1. 设备离线:确认设备指示灯常亮。若不亮,需重新配网。确保 WiFi 是 2.4G 频段

  2. 签名错误:核对 md5 的编码格式(UTF-8)以及时间戳 ts 的单位(秒),服务器时间误差不宜过大。

  3. 局域网直连(低延迟):若服务器与设备在同一个内网,解析 api.thingboot.com 得到内网 IP 并直接调用,响应速度可达极致

7. 总结

通过芯步提供的标准化 HTTP 接口,开发者可以在 1-2 小时内完成 2 路智能触摸开关的基础对接。实现联动场景的关键在于 事件中心化

  1. 利用 power1/power2 指令实现独立双路控制。

  2. 利用 point 指令实现脉冲/点动场景。

  3. 利用业务层逻辑(互锁、延时)实现复杂自动化。

该方案无需网关,成本低,且支持私有化部署,可稳定应用于智能家居、智慧教室及工业控制领域。