CATALOG

芯步的智能墙壁开关3路通过开放的HTTP API接口,支持独立控制三路照明设备,并可通过编程实现定时开关。以下方案涵盖接口对接、签名认证、典型命令及定时任务的完整实现流程。

1. 产品与接口概述

芯步的智能墙壁复合开关3路(或称智能触摸墙壁开关3路)是一款标准86型安装的WiFi智能开关,能够独立控制三路照明设备或电器。其核心优势在于提供了开放的HTTP API接口,允许开发者通过任何支持HTTP请求的编程语言(如PHP、Python、Java、Shell等)对其进行远程控制和集成

对接的核心是通过向指定的API端点发送POST请求,携带正确的认证参数和命令,实现对设备第1、2、3路的独立开关控制、状态保持及定时通断功能

2. 对接准备

在实际编程控制前,需要完成以下准备工作:

  1. 注册与登录:访问芯步官网注册开发者账号

  2. 获取凭证:登录后进入工作台的“物联网控制台”,在“开发设置”中获取以下关键凭证

    • AppID:应用的唯一标识。

    • AppSecret:开发者密码,用于生成签名。

  3. 获取设备ID:确保智能墙壁开关3路已配网并正常工作。在控制台的设备列表中查看该设备的唯一ID(Device ID)

  4. 理解接口地址

    • 核心请求URL格式:http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

    • 请求方法:POST

    • 数据格式:JSON

3. 认证与签名机制

为了安全性,所有API请求都需要进行签名验证。签名算法为双重MD5加密,具体步骤如下

  1. 获取当前的Unix时间戳(秒),例如:1735281600

  2. 将你的 AppSecret 进行第一次MD5加密,得到32位小写哈希值。

  3. 将上一步得到的哈希值与时间戳字符串直接拼接。

  4. 将拼接后的字符串进行第二次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. 最佳实践和需要注意的点

  1. 网络稳定性:设备通过WiFi连接,请确保智能开关所处位置的WiFi信号强度良好,以避免指令响应超时或失败

  2. 签名时效性:API签名中使用了时间戳 ts,请确保服务器系统时间与标准时间同步,误差过大会导致认证失败

  3. 命令优先级:当同时发送多个命令(如先发point1,再发power1)时,以后到达的命令为准。例如在point1延时关闭生效前发送power1,会覆盖之前的延时任务。

  4. 状态反馈订阅:如果需要实时获取设备状态(如“灯被手动关闭”),可在控制台设置“上游消息接收地址”,平台会在设备状态变更时将消息推送到你的服务器

  5. 测试与调试:在正式部署前,可以使用Postman等API调试工具,直接构造请求进行测试,确认签名和设备ID无误后再编写代码

总结

通过对接芯步智能墙壁开关3路的开放HTTP接口,开发者可以轻松实现对照明设备的远程定时控制。核心步骤包括:获取凭证与设备ID、实现MD5双重签名、构造标准order命令(特别是point延时命令)、以及利用业务服务器定时任务或设备原生属性(如keep)触发。这套方案完全基于标准HTTP协议,能够无缝集成到现有的各类智能控制系统、楼宇自动化方案或自定义物联网平台中,无需复杂的网关配置