CATALOG

芯步的智能开关开放标准HTTP接口,支持远程控制和定时任务。以下方案以1路智能开关为例,说明如何通过接口实现照明设备的定时开关。

1. 解决概述

本方案的目标是利用芯步提供的开放API接口,将其智能硬件(1路智能墙壁开关)集成至现有软件系统(如Web应用、小程序或后端服务),从而实现对照明设备的远程定时控制。

通过调用芯步的HTTP接口,开发者可以下发指令控制开关的通断,并利用其内置的“延时恢复”或“定时任务”功能,无需在服务器端维护复杂的定时队列,即可实现精准的照明定时关闭/开启

涉及的核心产品:

  • 硬件: 芯步 智能墙壁开关1路(型号如:UNI-KG-C等)

  • 协议: HTTP/HTTPS。

  • 数据格式: JSON。

2. 准备工作:获取接口凭证与设备ID

在开始编码前,需在芯步控制台完成以下配置,获取必要的接入凭证:

步骤一:注册与登录前往芯步官网注册开发者账号,并登录控制台

步骤二:获取AppID与AppSecret在控制台的“开发设置”中,获取系统生成的AppID(应用唯一标识)和AppSecret(开发者密码)。这两个凭证用于接口调用时的身份验证。

步骤三:添加设备并获取Device ID确保智能墙壁开关已通电并连接至2.4G WiFi网络。在控制台的设备列表中,查看并记录目标设备的Device ID(设备ID),这是指令发送的目标地址

3. 核心技术:接口鉴权(签名计算)

为了防止接口被恶意调用,所有API请求均需携带动态生成的签名(Sign)。芯步采用 MD5(MD5(AppSecret) + ts) 的双重MD5加密方式。

签名生成逻辑:假设 AppSecret = “123456”ts = 当前Unix时间戳(秒)

  1. 先将 AppSecret 进行一次MD5加密:md5_str = md5(“123456”)

  2. 将上一步结果拼接时间戳:tmp_str = md5_str + str(ts)

  3. 对拼接后的字符串再次进行MD5加密,得到最终签名:sign = md5(tmp_str)

示例代码(伪代码):

4. 接口调用实现:控制开关

请求地址:POST https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

请求头(Headers):

  • Content-Type: application/json

请求体(Body):包含 device(设备ID)和 order(命令)两个字段

4.1 基础开关控制

最基础的定时方案是通过外部业务系统在指定时间触发接口。例如,每天晚上10点关闭灯光。

下发“关闭”命令示例:

下发“开启”命令示例:

4.2 利用硬件特性实现“一次性定时”(先通后断/先断后通)

如果业务场景是“开灯5分钟后自动关闭”(如:楼道灯、洗手间照明),无需在服务器设置定时任务,可直接利用设备内置的 “先通后断(Point)” 功能。

场景:按下按钮或调用接口开灯,2秒后自动关闭

此方案最适合实现倒计时自动关闭,极大减少了服务器开销并提高了响应速度。

4.3 实现状态锁定(防误触)

在特定场景(如办公区下班自动关灯)下,为了防止保洁人员或用户手动误开,可以使用 “状态保持(Keep)” 功能。下发指令后,即使用户物理按压开关试图开灯,设备也会在设定秒数后自动恢复到指定状态。

场景:强制关灯,即使用户手动打开,3秒后也会自动关闭。

5. 实战场景:实现“日落开灯,日出关灯”

假设业务需求为:每天晚上18:00打开照明,次日早上06:00关闭照明。

设计:由于设备本身不具备存储Cron表达式的能力(需依赖外部逻辑),在您的业务服务器中设置定时任务(如Linux Crontab、Windows Task Scheduler或Quartz框架),在指定时间点调用上述API。

实施方案:

  1. 定时任务配置(以Linux Crontab为例):

    • 0 18 * * * :每天下午6点触发。

    • 0 6 * * * :每天上午6点触发。

  2. 编写Shell脚本 control_light.sh

  3. 配置Crontab:

6. 总结

通过芯步的开放接口实现定时开关非常简单,主要依赖于标准的HTTP协议和MD5签名认证。开发者只需掌握 power1(通断)、point1(先通后断/定时关)和 keep(状态保持)这几个核心命令,即可构建从简单的“定时关灯”到复杂的“防误触逻辑”。这种方法无需复杂的MQTT协议配置,适合快速接入现有的Web或移动端项目。