CATALOG

芯步2路智能墙壁开关的开放接口采用HTTP协议,签名机制清晰,接入门槛较低。以下方案从硬件准备、接口鉴权到代码实现逐层展开,你可直接参考其中的Shell和Python示例进行快速验证。

解决方案:基于芯步开放接口实现2路智能墙壁开关的本地与远程双控

1. 项目概述与准备

智能墙壁开关2路是一款标准86型零火线智能开关,拥有两个独立的继电器回路,可分别控制两路照明或电器设备。其核心优势在于支持WiFi直连(无需网关)和开放的HTTP API,这使得开发者无需复杂的嵌入式开发,仅通过后端代码即可实现控制逻辑

在开始之前,请准备以下物料和账号:

  • 硬件:芯步智能墙壁开关2路(UNI-KG-CM-C或同系列)、零火线供电(100-240V AC)、标准86底盒。

  • 环境:2.4GHz WiFi网络(设备不支持5G频段)、芯步官方账号(用于获取AppID/AppSecret及设备ID)

2. 接口鉴权与通信机制

设备的开放接口基于HTTP协议,核心在于签名(Sign)的计算。云端通过签名验证请求的合法性,防止接口被恶意篡改。鉴权流程如下

  1. 参数准备:在芯步控制台获取 AppIDAppSecret

  2. 动态签名

    • 获取当前Unix时间戳(秒) ts

    • 计算 Sign = md5( md5(AppSecret) + ts )

    • 注意:md5(AppSecret) 是32位小写字符串。

  3. 请求构造

    • 请求URL需携带 signts

    • Header需包含 Content-Type: application/json

    • Body为包含 device(设备ID)和 order(指令)的JSON。

3. 远程控制API实现方案

为了实现对两路的独立控制,我们需要精确调用不同的order参数。根据官方手册,2路开关支持以下核心指令

功能描述API指令 (Order JSON)说明
开启第1路{"power1":1}闭合继电器1,接入的灯/设备通电
关闭第1路{"power1":0}断开继电器1
开启第2路{"power2":1}闭合继电器2
关闭第2路{"power2":0}断开继电器2
查询/同步状态(隐式)控制台或设备会自动上报当前状态,通过回调可获取

代码示例(以Python3为例):以下脚本演示了如何在服务器或PC端调用接口,实现远程开灯/关灯。

4. 本地按键控制与状态同步

本地控制是智能开关的基础功能,无需任何网络参与。用户通过触摸面板上的物理按键(或触摸片)即可直接控制继电器吸合或断开

核心逻辑与状态同步机制:

  1. 物理隔离:本地按键直接连接MCU(微控制单元)的GPIO口。当手指触摸时,MCU检测到电平变化,立即切换继电器状态,响应时间通常在毫秒级。

  2. 状态回传(状态同步):当用户通过本地按键操作后,设备会自动向云端(或配置的消息服务器)发送一条状态更新报文。这意味着,无论你是通过本地按键还是手机APP操作,App端都能实时显示灯的开关状态,避免了“反馈不同步”的问题

5. 部署架构

为了确保系统的稳定性和响应速度,推荐以下两种部署模式:

  • 标准云端模式

    • 设备连接至外网。

    • App/后台通过芯步官方API(api.thingboot.com)下发指令。

    • 优点:无需公网IP或复杂网络配置,只要有网即可控制。

  • 局域网/私有化模式

    • 芯步设备支持局域网直接通信私有化部署

    • 如果您的服务器与智能开关处于同一局域网内(且开关支持局域网查找),可以直接通过内网IP调用设备接口。

    • 优点:指令传输不经过外网,延迟更低(<10ms),且断外网时仍可通过局域网控制。

6. 总结

通过芯步智能墙壁开关2路的开放接口,实现双控非常直接:

  1. 接线:确保零火线供电正确,区分清楚负载1和负载2的线路。

  2. 配网:使用官方控制台将设备加入WiFi(2.4G)。

  3. 开发:利用签名算法调用 power1 / power2 指令,即可在任意有网络的地方控制家中电器。

这种方案结合了物理操作的可靠性网络控制的便捷性,可作为智能家居、智慧办公或老旧小区改造中的基础控制单元。