CATALOG

芯步3路智能墙壁开关提供完整的HTTP API接口,支持远程控制和状态反馈。以下方案涵盖下行控制指令、上行消息接收机制,以及如何实现“控制-反馈”闭环。

解决方案:基于芯步3路开关的照明状态反馈控制系统

1. 概述

芯步的智能墙壁开关3路产品支持通过HTTP API进行远程控制,同时具备状态实时上报功能。本方案的目标是指导开发者如何利用这些开放接口,构建一个具备双向通信能力的照明控制系统:即不仅能远程开关灯,还能实时获取灯的当前状态并在UI界面反馈。

2. 核心准备

在开始二次开发前,请确保完成以下准备工作:

  • 硬件:已安装并联网的芯步“智能触摸墙壁开关3路”(设备ID记为 820720

  • 账号:在芯步官网注册账号并创建“工作台”

  • 密钥:在控制台获取 AppIdAppSecret(开发者密码),并配置IP白名单及消息接收URL(callback_url

3. 方案架构图 (文字描述)

系统采用“请求-响应”与“主动推送”相结合的架构:

  1. 控制流:您的应用服务器 → 芯步云平台 → 3路墙壁开关(执行动作)。

  2. 状态流:3路墙壁开关(物理按键/远程触发) → 芯步云平台 → 您的应用服务器(实时推送)。

4. 实施步骤一:下发控制指令 (下行)

这是远程控制的核心。芯步提供了极其简洁的HTTP接口,您只需向指定URL POST一个JSON即可。

接口详情:

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

  • 请求方式POST

  • 请求头Content-Type: application/json

签名算法:为保证安全性,接口使用动态签名。算法如下:

  1. AppSecret 进行MD5加密得到 secret_md5

  2. secret_md5 与当前时间戳 ts (秒级) 拼接。

  3. 将拼接后的字符串再次进行MD5加密,得到最终 sign

代码示例 (Python):

高级控制技巧除了简单的开/关(power1: 01),接口还支持以下增强功能,用于提升用户体验

  • 先通后断(点动):用于门禁或电机。例如 {"point1": 1000} 表示第一路先闭合,1秒后自动断开。

  • 状态保持:适用于公共卫生间照明。例如 {"power1": {"keep": "0", "revert": "5"}} 强制关闭照明,即使用户手动打开,5秒后也会自动关闭。

5. 实施步骤二:获取实时状态反馈 (上行)

仅靠控制无法得知灯是否真的亮了(例如用户手动按了墙壁开关),因此状态反馈至关重要。

机制: 芯步平台支持将设备的状态变化实时推送到您自己的服务器

配置步骤:

  1. 在芯步控制台中,找到“开发设置”或“应用管理”。

  2. 设置 “消息接收地址” (Callback URL)

  3. 当开关状态变化时(远程控制成功或本地物理按键触发),平台会向该URL发送POST请求。

推送数据解析:您的服务器需要编写一个接口(例如:/api/device/status)来接收这些POST数据。接收到的JSON数据通常包含以下结构:

实现逻辑:您的服务器接收到此JSON后,应解析出 device_idreport 中的各通路状态,更新后端数据库中的状态字段,再通过WebSocket推送给前端Web/APP页面,从而点亮或熄灭UI上的灯光图标。

6. 完整的业务逻辑闭环示例

为了帮助您更好地理解,以下是一个完整的场景时序:

  1. 用户A操作: 用户在手机APP上点击“打开客厅灯”(第二路)。

  2. 应用后端: 调用芯步API,发送 {"power2": 1}

  3. 硬件执行: 开关硬件接收到指令,继电器吸合,客厅灯亮起。

  4. 状态上报: 硬件在100ms(毫秒)内执行成功,并上报当前最新状态(power2:1)到云端

  5. 云端推送: 芯步云平台立即将状态变化推送到您在步骤5中配置的Callback URL

  6. UI更新: 您的服务器收到推送,通知前端APP,APP上的开关按钮图标变为“开启”状态。

针对手动操作场景:

  1. 用户B操作: 用户直接用手触摸墙壁开关,关闭了第三路灯光。

  2. 自动上报: 硬件检测到物理操作,主动向云平台上报 {"power3": 0}

  3. 云端推送: 芯步平台将该变化推送给您的服务器。

  4. UI更新: 您的服务器无论之前记录的状态是什么,立即更新为 0,并通知APP显示“关闭”。(这一过程保证了无论是什么途径触发开关,应用端的状态永远与真实物理状态同步)

7. 总结

通过芯步3路开关的开放接口,二次开发者仅需掌握两个核心HTTP交互点:

  • 发送命令:使用带签名的POST请求发送 order 指令。

  • 接收反馈:搭建公网可访问的Webhook接口接收 report 数据。

基于这套机制,您可以轻松地在任何支持HTTP协议的编程语言或框架(如Node.js, Java, Go, PHP)中实现稳定的照明控制与反馈系统。