CATALOG

芯步3路钢化玻璃面板开关支持完整的HTTP API接口,你可以通过二次开发将物理按键升级为“场景控制器”——比如单击开灯、双击关窗帘、长按启动观影模式。以下方案涵盖签名计算、指令封装、场景配置逻辑及代码示例。

1. 背景概述

随着智能家居的普及,用户不再满足于简单的开关通断功能,而是希望开关能够作为“场景触发器”,实现一键执行复杂逻辑(如离家模式、观影模式)。芯步的3路钢化玻璃面板开关不仅支持基础的继电器控制,还提供了开放的HTTP API接口,允许开发者自定义其物理按键的行为逻辑。

本解决方案的目标是指导开发者如何利用芯步3路开关的开放接口,通过二次开发,将开关的物理按键与用户的业务场景(如控制其他智能设备、执行自动化任务)深度绑定。

2. 核心开放接口解析

在进行二次开发前,需先理解该产品的核心接口特性。3路钢化玻璃面板开关本质上是一个带3路继电器输出的Wi-Fi设备。

  • 通信协议:HTTP/HTTPS

  • 数据格式:JSON

  • 接口模式:支持公有云API及局域网(LAN)API控制,支持私有化部署

  • 核心API地址POST https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

2.1 关键控制指令(Order)

通过开发文档可知,控制3路开关的核心在于 order 参数的构造。针对3路开关,其基础指令如下:

  • 控制第1路{"power1": 1} (开启) / {"power1": 0} (关闭)

  • 控制第2路{"power2": 1} / {"power2": 0}

  • 控制第3路{"power3": 1} / {"power3": 0}

2.2 签名(Sign)计算机制

为了保证接口调用的安全性,每次请求都需要携带动态签名。

  1. 获取 AppSecretAppId(在芯步控制台获取)。

  2. 获取当前时间戳 ts(秒级)。

  3. 计算 Sign

    • Step1 = md5(AppSecret)

    • Step2 = Step1 + ts

    • Sign = md5(Step2)

3. 二次开发:实现自定义场景的逻辑架构

传统的二次开发只是控制继电器通断,而“自定义场景设置”的核心在于 “逻辑映射”。即:按下开关的物理按键 -> 触发API调用 -> 后端/云函数解析按键 -> 执行预设场景逻辑(不一定是控制本设备继电器)。

3.1 改造思路

我们需要做的是:在收到开关按键事件后,不仅改变继电器状态,更重要的是触发外部场景

3.2 实施方案:事件订阅与场景联动

有两种主流方式实现场景自定义:

  1. 网关/本地中转模式:开发一个中间件服务,监听开关状态变化,根据配置表执行场景。

  2. 云端API直接调用模式:在执行场景时,直接混合调用本地开关指令与其他设备指令。

4. 二次开发实战步骤

4.1 步骤一:构建基础通信类

为了完成二次开发,首先需要封装好芯步的API调用类。以下以Python为例,展示核心请求模块:

4.2 步骤二:定义“自定义场景”配置

为了实现“用户自定义设置”,可以在你的业务后端定义一个JSON配置文件或数据库表,让用户可以将“按键”绑定到“动作列表”。

场景配置示例(数据库结构):

  • 场景ID: SCENE_GOODNIGHT

  • 触发条件: 开关设备ID为 100001 的第3路按键(长按)

  • 动作宏:

    1. 调用芯步API关闭客厅灯(控制另一台设备)。

    2. 调用芯步API将本开关的第3路继电器状态置为0(复位)。

    3. 调用窗帘电机API关闭窗帘。

    4. 调用空调API设为26度。

4.3 步骤三:核心逻辑实现 - 场景解析与分发

这是二次开发最核心的部分。你需要编写一个Web服务,该服务可以有两种形式:形式A:主动轮询(获取开关状态)由于开关是简单的执行器,它通常不会主动上报“被按下”的事件给你的服务器,除非你用芯步的消息推送功能(若支持)。如果只使用HTTP API,通常的做法是:

  • 物理操作:用户操作开关 -> 开关状态变化(灯亮/灭)。

  • 软件同步:你的APP或后台定时拉取状态,或使用芯步提供的设备状态回调接口(Webhook)。

形式B(推荐):采用“API控制API”的逻辑实际上,更稳定的自定义场景做法是隐藏开关的物理继电器,让开关变成“无线场景开关”。

  • 设置:将开关的3路继电器设置为“通电常闭”或保持在某种状态。

  • 逻辑:用户定义“单击第1路” -> 你的后台接收到控制请求 -> 不改变继电器状态 -> 执行“离家模式”代码块。

假设我们截获了用户通过APP或第三方平台发起的控制,我们这样处理:

4.4 步骤四:进阶联动 - 实现“互锁”与“逻辑控制”

在3路开关的场景中,常见的需求是“互锁”控制(如控制电机正反转),利用API可以轻松实现:

5. 完整应用示例:一控三场景方案

假设你在卧室安装了一个3路开关,在不改变物理接线的情况下(或者接照明),通过软件将其重新定义为三个场景按钮:

物理按键原功能(硬件)二次开发后实现的自定义场景
左键控制卧室吸顶灯阅读模式:灯光调至暖色温30%亮度(通过API调智能灯泡)、关闭电视、关闭窗帘。
中键控制床头灯睡眠模式:关闭所有灯光、关闭所有电器、启动安防摄像头警戒模式。
右键控制插座全屋离家:切断所有非必要电源、关闭窗帘、扫地机器人开始工作。

实现上述方案的API调用序列(以点击右键为例):

  1. 后端接收到“右键按下”事件(通过API请求或设备状态变化)。

  2. 调用 {"power3": 0} 关闭此路继电器(如果接了设备,则断电)。

  3. 调用客厅智能插座的API:{"power1": 0} 关闭电视。

  4. 调用扫地机器人接口(需适配)启动清扫。

  5. 调用窗帘电机接口关闭。

6. 总结

通过对芯步3路钢化玻璃面板开关开放接口的二次开发,开发者完全可以突破物理硬件的限制。核心在于利用HTTP请求的灵活性

  1. 接口标准:只需掌握签名算法与 power1/2/3 命令,即可控制设备

  2. 场景化:将开关的点击事件作为逻辑触发器,结合后端代码(如Python/Node.js/Java)联动第三方设备。

  3. 个性化:允许用户通过APP或配置界面自定义每次点击对应的API指令集合。

这种方案不仅适用于家庭,也应用于办公室控制投影幕布、会议室模式切换等商用场景,具有比较高的扩展性。