CATALOG

芯步2路墙壁开关通过开放HTTP API接口,支持本地按键与远程双重控制。二次开发的核心是调用power1/power2命令实现独立开关控制,同时无需额外开发即可保留物理按键操作。以下是具体的技术实现方案。

解决方案:基于芯步2路双功能墙壁开关的双控制二次开发

1. 概述与准备

本方案的目标是指导开发者如何利用芯步智能触摸墙壁开关2路的开放接口,实现本地物理按键与远程API双重控制。该设备支持标准HTTP API,适配任何能发起HTTPS请求的编程语言或平台(如Web、APP、小程序等)。

二次开发核心流程:

  1. 注册与凭证获取:获取API调用的核心密钥(AppID, AppSecret)。

  2. 设备配网:将设备连接至Wi-Fi。

  3. 接口调用:通过签名验证,向指定设备下发JSON命令。

  4. 本地联动:物理按键状态自动同步至云端(无需开发,默认支持)。

2. 环境与凭证配置

在开始编码前,需要完成以下准备工作:

  • 注册账号:访问[芯步官网]注册开发者账号

  • 获取密钥:登录后进入“工作台” -> “物联网控制台” -> “开发设置”,获取 AppID(应用ID)和 AppSecret(开发者密码)

  • 设备ID:确保开关已通电并配网成功,在控制台的“设备列表”中查看 Device ID(设备唯一ID)

3. 核心接口调试

为了实现对2路开关的远程控制,你需要向 https://api.thingboot.com/{AppId}/device/control/ 发起POST请求。

3.1 鉴权机制(签名算法)为防止接口被恶意调用,每一次请求都需携带动态签名。算法逻辑如下

  1. 将 AppSecret 进行一次 MD5 加密,得到 encrypted_secret

  2. 获取当前Unix时间戳(秒级)作为 ts

  3. encrypted_secretts 拼接。

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

*公式:sign = MD5( MD5(AppSecret) + ts )*

3.2 请求参数详解以下是针对“2路双功能墙壁开关”的接口调用示例,使用JSON格式

  • URLhttps://api.thingboot.com/YOUR_APP_ID/device/control/?sign=YOUR_SIGN&ts=YOUR_TS

  • Method:POST

  • HeaderContent-Type: application/json

  • Body (JSON)

3.3 命令功能扩展除了简单的开关,该接口还支持高级控制模式,特别适合楼道、卫生间等场景

功能类别命令格式 (Order JSON)功能描述
即时开关{"power1": 1}立即打开第1路,立即关闭第2路使用 "power2": 0
状态保持{"power1": {"keep": "1", "revert": "3"}}1路保持开启:用户若手动关闭,3秒后自动恢复开启
点动/触发{"point1": "2000"}第1路先通后断:立即开启,持续2秒后自动关闭
复位/重启{"reset1": "1000"}第1路先断后通:立即关闭,持续1秒后自动开启

4. 代码实战:以Python与Shell为例

开发者可以根据自身服务器环境选择脚本语言。

4.1 Python 实现示例适用于后端服务(Django/Flask等)或运维脚本

4.2 Shell (cURL) 实现示例适用于嵌入式设备或轻量级脚本

5. “双控制”机制实现说明

本次方案的核心是“双控制”,即物理按键操作远程API指令互不干扰且状态同步。

  • 机制原理:芯步的开关硬件固件中已经集成了状态上报逻辑。无论是用户触摸/按压物理按键,还是云端下发的API指令,设备内部都会触发“继电器动作”并同时向服务器上报“当前状态”

  • 开发注意

    • 无需重复开发:你不需要编写任何代码来处理“按键按下后的逻辑”。只要设备配网成功,物理按键的操作会自动同步到云端。

    • 状态同步:如果你的应用需要获取实时状态(例如显示“灯已开”),可以利用平台提供的消息推送功能,设置一个接收URL,当设备状态变化时,平台会主动推送消息给你

6. 高级应用:定制化联动场景

基于上述接口,你可以轻松实现丰富的物联网应用逻辑,例如:

  • 场景1:离家模式通过手机APP点击“离家”按钮,你的后端批量调用接口:{"power1": 0, "power2": 0} (切断所有电源)。

  • 场景2:电梯呼叫/门禁模拟利用点动功能实现复位电路:{"point1": "500"} (控制开门按钮,模拟按下500毫秒)。

7. 常见问题排查

  1. 签名错误:请检查时间戳是否为秒级(10位数字),以及MD5加密后的字符串是否为32位十六进制小写。

  2. 控制延迟:该设备走Wi-Fi直连,响应通常为80-120ms。如果延迟过高,请检查设备所在Wi-Fi的信号强度

  3. 本地优先:由于支持局域网和私有化部署,如果你担心外网断开导致无法控制,可以研究自建消息服务器(MQTT/HTTP)进行纯内网控制,该硬件支持此特性

通过以上步骤,你无需修改设备固件,仅通过简单的HTTP请求即可完成对2路墙壁开关的深度二次开发,实现稳定可靠的远程/本地双控解决方案。