CATALOG

3路触摸墙壁智能开关的二次开发核心在于掌握签名算法和命令结构。芯步的开放接口采用统一的HTTP API设计,三路线路可独立下发power1power2power3命令进行控制,此外还支持状态保持、先通后断等进阶功能。以下从环境准备、签名计算、接口调用到场景,给出完整实现方案。

一、 背景与目标

芯步的智能触摸墙壁开关(3路)标准型支持三路独立控制(如火线L1、L2、L3分别连接三组照明或电器)。为了将该设备集成到第三方系统(如智慧公寓管理系统、工业控制PLC上位机、定制化APP),开发者可利用其开放的 HTTP API接口 进行二次开发。

核心目标:摆脱官方APP限制,通过代码实现对开关三路线路的独立通断控制、状态查询及高级定时任务

二、 开发预备

在开始编码前,需要准备以下三项关键信息,这些信息将在芯步工作台获取

  1. AppID: 应用的唯一标识符。

  2. AppSecret: 接口调用密钥(严禁直接暴露在客户端代码中,应在安全的后端环境使用)。

  3. Device ID: 设备的唯一ID(通常贴在设备外壳或可在控制台设备列表查看)。

三、 接口鉴权(签名计算)

这是二次开发的第一步,也是最容易出现错误的环节。芯步的API请求需要携带动态签名以防篡改。

签名公式

sign = md5( md5(AppSecret) + ts )

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

  • 步骤

    1. AppSecret 进行一次MD5加密得到字符串 S1

    2. S1 与当前时间戳 ts(字符串形式拼接)组成新字符串 S1ts

    3. S1ts 再次进行MD5加密得到最终的 sign

代码示意(Python)

四、 实现“3路独立控制”核心逻辑

控制3路开关本质上是向 https://api.thingboot.com/{AppID}/device/control/ 接口发送不同的 order 参数

1. 接口请求结构

  • 请求方式: POST

  • Content-Type: application/json

  • URL参数?sign={sign}&ts={ts}

2. 各路线路控制命令对照表

操作意图order参数 (JSON格式)说明
开启第1路{“power1”: 1}闭合L1线路继电器
关闭第1路{“power1”: 0}断开L1线路继电器
开启第2路{“power2”: 1}闭合L2线路继电器
关闭第2路{“power2”: 0}断开L2线路继电器
开启第3路{“power3”: 1}闭合L3线路继电器
关闭第3路{“power3”: 0}断开L3线路继电器
全开/全关{“power”: 0}{“power”: 1}可同时控制所有线路

3. 实战案例:使用Python实现“一键全开”与“单控”

以下代码示例展示了如何通过后端服务器控制客厅的三路射灯

五、 高级功能开发(常用场景)

除了简单的开关,芯步接口还支持通过参数实现自动化逻辑,无需在本地做定时器。

1. “门廊灯”模式(先通后断 / 延时关闭)

场景:按下开门,灯光亮起,5分钟后自动关闭。命令:利用 point1 参数(单位:毫秒)

  • 请求体{“device”: “xxx”, “order”: {“point1”: 300000}}

2. “锁定/状态保持”模式

场景:酒店或公寓的廊灯,用户物理手动关闭后,系统强制在3秒后自动重新打开(保持常亮),防止客人误关

  • 命令{“power1”: {“keep”: 1, “revert”: 3}}

    • keep:1 表示保持开启状态。

    • revert:3 表示如果被用户手动关闭,3秒后恢复开启。

六、 微信小程序/嵌入式轻量实现

如果你是开发微信小程序,由于安全策略限制,不能在小程序前端直接计算 AppSecret。正确的二次开发架构如下:

  1. 搭建中转云函数:在微信云开发环境中创建一个云函数。

  2. 云函数逻辑:云函数负责存储 AppSecret 并计算签名,然后向芯步API发起 https 请求。

  3. 小程序调用:小程序通过 wx.cloud.callFunction 调用云函数,传入 power1:1 等参数即可

云函数核心代码结构

七、 最佳实践和需要注意的点

  1. 局域网/私有化部署:芯步硬件支持局域网HTTP通信。如果你的服务器和设备在同一局域网(且固件支持),可将请求域名指向设备的局域网IP,实现断外网下的低延迟控制

  2. 异步与状态确认:API返回200只代表指令下达成功,不代表设备执行成功。如果业务要求强一致性(如工业控制),配置“消息推送”接收设备端ACK回执

  3. 设备配网:在二次开发前,需使用官方工具先将开关配置到Wi-Fi网络,确保设备在线(在线状态可通过控制台查看)。

通过上述方案,开发者可以快速完成对芯步3路智能开关的HTTP对接,实现独立的三路远程控制,并拓展至各类物联网系统架构中。