芯步的智能墙壁开关3路通过开放的HTTP API接口,支持独立控制三路照明设备,并可通过编程实现定时开关。以下方案涵盖接口对接、签名认证、典型命令及定时任务的完整实现流程。
1. 产品与接口概述
芯步的智能墙壁复合开关3路(或称智能触摸墙壁开关3路)是一款标准86型安装的WiFi智能开关,能够独立控制三路照明设备或电器。其核心优势在于提供了开放的HTTP API接口,允许开发者通过任何支持HTTP请求的编程语言(如PHP、Python、Java、Shell等)对其进行远程控制和集成。
对接的核心是通过向指定的API端点发送POST请求,携带正确的认证参数和命令,实现对设备第1、2、3路的独立开关控制、状态保持及定时通断功能。
2. 对接准备
在实际编程控制前,需要完成以下准备工作:
注册与登录:访问芯步官网注册开发者账号。
获取凭证:登录后进入工作台的“物联网控制台”,在“开发设置”中获取以下关键凭证
AppID:应用的唯一标识。
AppSecret:开发者密码,用于生成签名。
获取设备ID:确保智能墙壁开关3路已配网并正常工作。在控制台的设备列表中查看该设备的唯一ID(Device ID)。
理解接口地址
核心请求URL格式:
http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}请求方法:POST
数据格式:JSON
3. 认证与签名机制
为了安全性,所有API请求都需要进行签名验证。签名算法为双重MD5加密,具体步骤如下
获取当前的Unix时间戳(秒),例如:
1735281600。将你的
AppSecret进行第一次MD5加密,得到32位小写哈希值。将上一步得到的哈希值与时间戳字符串直接拼接。
将拼接后的字符串进行第二次MD5加密,得到最终的签名(sign)。
公式sign = md5( md5(AppSecret) + ts )
示例(伪代码)
AppSecret = "123456"
ts = "1735281600"
step1 = md5("123456") = "e10adc3949ba59abbe56e057f20f883e"
step2 = step1 + ts = "e10adc3949ba59abbe56e057f20f883e1735281600"
sign = md5(step2) = "7b9d8a6f3e2c1b4a5d6c7e8f9a0b1c2d"4. 核心控制命令
对“智能墙壁开关3路”的控制核心在于order参数的构建。该参数是一个JSON字符串,定义了具体的操作指令。以下是几种关键命令格式:
4.1 基本开关控制
最常用的命令,直接打开或关闭某一路线路。
| 操作 | order 参数示例 | 说明 |
|---|---|---|
| 打开第1路 | {"power1": 1} | 1代表开 |
| 关闭第2路 | {"power2": 0} | 0代表关 |
| 同时控制多路 | {"power1": 1, "power2": 0, "power3": 1} | 打开第1、3路,关闭第2路 |
4.2 定时开关(关键功能)
设备支持先通后断和先断后通模式,非常适合实现延时自动关闭或开启的场景,无需在服务器端维护定时任务队列。
| 操作 | order 参数示例 | 说明 |
|---|---|---|
| 延时关闭(点动) | {"point1": 30000} | 第1路立即打开,30秒后自动关闭。单位毫秒。 |
| 延时开启 | {"reset2": 10000} | 第2路立即关闭,10秒后自动重新打开。 |
| 吸顶灯延时关 | {"point3": 600000} | 第3路打开,10分钟(600000毫秒)后自动关闭,适用于走廊、卫生间照明。 |
4.3 状态保持
此模式可使开关在用户手动操作后,经过指定时间自动恢复原状态,常用于需要锁定状态的场景。
| 操作 | order 参数示例 | 说明 |
|---|---|---|
| 1路保持锁定 | {"power1": {"keep": "1", "revert": "5"}} | 第1路保持开启状态,如果有人手动关闭,5秒后开关将自动重新打开。 |
5. 集成方案:实现定时任务
假设需要实现一个业务场景:每天19:00自动打开客厅第1路照明灯,并在23:00自动关闭;同时每隔30分钟自动开关一次第2路阳台灯(闪烁提醒)。
此方案无需依赖Linux Crontab或复杂的调度框架,可以利用芯步API结合业务服务器的简单定时逻辑来实现。
5.1 环境与工具
任何支持HTTP请求的环境。以下以Linux Shell脚本配合Crontab为例,展示如何实现轻量级定时控制;也可使用PHP、Python等语言实现。
5.2 实现步骤
第一步:编写Shell控制脚本
创建一个名为 control_light.sh 的脚本文件,内容如下。脚本封装了认证和发送命令的逻辑。
第二步:配置系统定时任务(Crontab)
在Linux服务器的终端中输入 crontab -e,添加以下三行配置,即可实现精准的自动化调度。
5.3 其他语言集成示例(PHP)
对于Web应用开发者,可以使用PHP进行集成。以下是发送 point1 延时命令的核心代码片段
6. 最佳实践和需要注意的点
网络稳定性:设备通过WiFi连接,请确保智能开关所处位置的WiFi信号强度良好,以避免指令响应超时或失败。
签名时效性:API签名中使用了时间戳
ts,请确保服务器系统时间与标准时间同步,误差过大会导致认证失败。命令优先级:当同时发送多个命令(如先发
point1,再发power1)时,以后到达的命令为准。例如在point1延时关闭生效前发送power1,会覆盖之前的延时任务。状态反馈订阅:如果需要实时获取设备状态(如“灯被手动关闭”),可在控制台设置“上游消息接收地址”,平台会在设备状态变更时将消息推送到你的服务器。
测试与调试:在正式部署前,可以使用Postman等API调试工具,直接构造请求进行测试,确认签名和设备ID无误后再编写代码。
总结
通过对接芯步智能墙壁开关3路的开放HTTP接口,开发者可以轻松实现对照明设备的远程定时控制。核心步骤包括:获取凭证与设备ID、实现MD5双重签名、构造标准order命令(特别是point延时命令)、以及利用业务服务器定时任务或设备原生属性(如keep)触发。这套方案完全基于标准HTTP协议,能够无缝集成到现有的各类智能控制系统、楼宇自动化方案或自定义物联网平台中,无需复杂的网关配置。