芯步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)的计算。云端通过签名验证请求的合法性,防止接口被恶意篡改。鉴权流程如下
参数准备:在芯步控制台获取
AppID和AppSecret。动态签名
获取当前Unix时间戳(秒)
ts。计算
Sign = md5( md5(AppSecret) + ts )。注意:
md5(AppSecret)是32位小写字符串。
请求构造
请求URL需携带
sign和ts。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. 本地按键控制与状态同步
本地控制是智能开关的基础功能,无需任何网络参与。用户通过触摸面板上的物理按键(或触摸片)即可直接控制继电器吸合或断开。
核心逻辑与状态同步机制:
物理隔离:本地按键直接连接MCU(微控制单元)的GPIO口。当手指触摸时,MCU检测到电平变化,立即切换继电器状态,响应时间通常在毫秒级。
状态回传(状态同步):当用户通过本地按键操作后,设备会自动向云端(或配置的消息服务器)发送一条状态更新报文。这意味着,无论你是通过本地按键还是手机APP操作,App端都能实时显示灯的开关状态,避免了“反馈不同步”的问题。
5. 部署架构
为了确保系统的稳定性和响应速度,推荐以下两种部署模式:
标准云端模式
设备连接至外网。
App/后台通过芯步官方API(
api.thingboot.com)下发指令。优点:无需公网IP或复杂网络配置,只要有网即可控制。
局域网/私有化模式
芯步设备支持局域网直接通信和私有化部署。
如果您的服务器与智能开关处于同一局域网内(且开关支持局域网查找),可以直接通过内网IP调用设备接口。
优点:指令传输不经过外网,延迟更低(<10ms),且断外网时仍可通过局域网控制。
6. 总结
通过芯步智能墙壁开关2路的开放接口,实现双控非常直接:
接线:确保零火线供电正确,区分清楚负载1和负载2的线路。
配网:使用官方控制台将设备加入WiFi(2.4G)。
开发:利用签名算法调用
power1/power2指令,即可在任意有网络的地方控制家中电器。
这种方案结合了物理操作的可靠性与网络控制的便捷性,可作为智能家居、智慧办公或老旧小区改造中的基础控制单元。