芯步2路智能墙壁开关支持通过HTTP接口进行远程控制和定时任务设置。以下是基于其开放API实现定时开关照明的完整解决方案,涵盖签名认证、单次定时、周期任务及状态保持等核心场景。
解决方案:基于芯步2路智能墙壁开关实现照明设备定时开关
1. 概述
本方案的目标是指导开发者如何利用芯步开放的 HTTP API 接口,对 UNI-KG-2 型号的2路智能墙壁开关进行二次开发,实现照明设备的定时开关控制。该方案适用于办公室照明自动化、家庭起床/入睡模式、商铺招牌定时控制等场景。
核心优势:
标准API:基于HTTP协议,无需考虑编程语言类型,无论是Web、App还是后端服务均可接入 。
高精度:支持秒级定时任务,延迟低。
本地联动:支持“状态保持”功能,可将物理按键操作与云端定时逻辑解耦。
2. 对接准备
在开发前,请确保完成以下准备工作:
硬件准备:安装好芯步2路智能墙壁开关(型号:UNI-KG-2),并确保其WiFi在线(绿灯常亮)。
平台准备
登录芯步开发者控制台。
获取 AppID 和 AppSecret(开发者密码)。
获取 Device ID(设备唯一ID,可在控制台设备列表查看)。
3. API 接口鉴权说明
芯步的接口采用 动态签名 机制,所有控制命令都需要通过签名验证。
请求地址https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
签名算法签名 sign 的计算方式为:MD5( MD5(AppSecret) + ts )
AppSecret:开发者密码。ts:当前Unix时间戳(秒)。+:字符串拼接。
示例流程
假设
AppSecret = "abc123",计算md5("abc123") = "e99a18c428cb38d5f22e03"。当前时间戳
ts = 1715678900。拼接字符串:
"e99a18c428cb38d5f22e03" + "1715678900"。再次MD5得到最终的
sign。
4. 实现定时开关的三种方案
针对2路开关的特性,我们提供以下三种实现定时开关的技术路径:
方案一:业务层定时任务(推荐,最灵活)
通过你的服务器(如Cron Job、Windows Task Scheduler 或 Linux Crontab)定时调用API。
应用场景:每天早上8点开灯,下午6点关灯;或者复杂的循环逻辑(如每周末特定时间)。
操作步骤
在你的服务器数据库中建立定时任务表,存储设备ID、执行时间、执行的线路和动作。
编写一个定时执行脚本(例如每分钟扫描一次数据库)。
当系统时间匹配,脚本构造命令并发送HTTP请求。
命令示例(针对2路开关)
打开第1路(例如:客厅灯) :
order参数为:{"power1":1}。关闭第2路(例如:卧室灯) :
order参数为:{"power2":0}。
方案二:硬件指令级定时(最精准)
利用设备自带的 “先断后通”(Reset)或“先通后断”(Point) 命令,实现单次定时。这种方式无需服务器维护任务队列,只需要调用一次API,设备内部计时。
应用场景:过道灯(人过灯亮后自动熄灭)、排风扇定时关闭、鱼缸灯光定时开关。
延时关闭(开灯后一段时间关) :需求:打开2路开关,让楼梯亮起,2分钟后自动关闭。命令:
{"point2":"120000"}(单位:毫秒。注意:这是先接通,延时后断开)。延时开启(关灯后一段时间开) :需求:关闭1路开关,让设备断电,但5分钟后重新启动(适用于路由器重启或设备重置)。命令:
{"reset1":"300000"}(单位:毫秒。先断开,延时后接通)。
方案三:状态保持模式(防手动物理干预)
在定时任务场景下,常遇到用户手动按了开关导致定时逻辑失效。2路开关支持 “状态保持” 功能,强制开关在用户操作后恢复云端预设状态。
应用场景:公共场所灯光定时锁定(如下班后即便保安按开灯,也会自动关)、儿童房灯光锁定。
实现方法下发带有 keep 和 revert 参数的指令。
keep:1(保持开启状态) / 0(保持关闭状态)。revert:恢复时间(秒)。
示例:你需要强制关闭1路照明,并锁定。即使用户手动按了1路开关打开灯,3秒后系统也会自动把它关掉 。order 参数为:{"power1":{"keep":"0","revert":"3"}}
5. 代码实现示例(Python)
以下是一个 定时关灯 的完整逻辑示例,程序将在指定时间(例如22:00)关闭2路开关中的第二路灯光。
6. 常见问题排查
设备离线:2路开关仅支持2.4GHz WiFi。请检查家中路由器是否为双频合一,关闭双频合一或单独连接2.4G频段 。
签名错误:注意
ts是秒级时间戳,且服务器时间与标准时间误差不能太大。负载异常:如果接LED灯,请确保单路功率不要过小(或有电容匹配),否则可能导致开关“幽灵闪烁”或无法关断。LED负载小于300W/路 。
局域网控制:如果你是内网应用,且不需要云端控制,可以联系芯步技术支持获取局域网(本地)API文档,这样即使外网断开,定时任务也能在内网环境下执行 。