芯步的智能开关开放HTTP接口,这意味着你只要会发网络请求,就能用自己的服务器、App甚至脚本直接控制它。下面我以“1路智能墙壁触摸开关”为例,说说怎么实现延时通断——这个功能常见于排气扇延时关、走廊灯点亮一段时间后自动熄灭等场景。
一、准备工作
在动手写代码之前,你需要先搞定三样东西:
1. 硬件设备就是芯步的“智能墙壁触摸开关1路”(UNI-KG-CM-KC这个型号)。安装很简单,标准86底盒直接替换家里的老开关就行,接好零火线,给开关通上电。
2. AppID 和 AppSecret你需要去芯步的控制台注册一下,创建一个应用。系统会给你生成一串 AppID 和 AppSecret,这俩相当于你的“身份证”和“密码”,后面每次发命令都要带上。
3. 设备ID开关联网后,在控制台就能看到它的设备ID(就是一串数字,比如 820720)。你要控制哪个开关,就把哪个的ID记下来。
二、搞清楚接口怎么调
芯步的接口设计得挺直白的,就是标准的 HTTP POST 请求。
请求地址(稍微解释一下里面的参数):https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
AppID:就是上面说的,直接填你那一串。
ts:当前的时间戳(单位是秒)。这个主要是为了防止别人重放攻击。
sign:签名。需要把 AppSecret 先 MD5 加密一次,然后拼上 ts,再整体 MD5 一次。
公式:sign = md5( md5(AppSecret) + ts )
请求体(Body):格式是 application/x-www-form-urlencoded 或者 application/json 都行。主要是两个字段:
device:填你的设备ID。
order:这是一个 JSON 字符串,写具体的指令。
三、重点:延时通断怎么实现?
要实现“延时通断”,其实就是让开关在“开”了之后,自动延时“关”,或者反过来。芯步的接口直接内置了这几种模式,不用你自己写定时器:
| 功能模式 | 命令格式(order参数) | 效果说明 |
|---|---|---|
| 先通后断 | {"point1":"2000"} | 立即打开,保持2000毫秒(2秒)后自动关闭。 |
| 先断后通 | {"reset1":"3000"} | 立即关闭,保持3000毫秒(3秒)后自动打开。 |
| 状态保持 | {"power1":{"keep":"1","revert":"10"}} | 强制开,用户如果在面板上关了,10秒后会自动再打开。 |
这个 point 和 reset 就是专门干这个活的。 单位是毫秒,2000 就是两秒。
四、实战演练
假设我现在有一个开关,设备ID是 820720,想让它控制的灯点亮 5秒钟 然后自动熄灭。逻辑是“先通后断”,用 Java 代码大概就是这样写的:
如果你用的是Python,那就更简单了,用 requests 库几行搞定:
五、可能会踩的小坑(温馨提醒)
注意是
point1还是point如果你用的是 1路开关,就用
point1控制这一路。如果是2路开关,控制第一路是
point1,第二路是point2,以此类推。如果是4路控制器这种,命令格式可能略有不同(比如
{"point":{"relay":[1,3],"interval":1000}}),需要仔细看一眼对应产品的说明书。
单位别搞错:这里是 毫秒。写
1000是一秒,写60是 0.06 秒,千万别把秒直接填进去(比如想延时