CATALOG

芯步的智能硬件开放接口用的是标准HTTP协议,意味着任何能发HTTP请求的语言(Python、PHP、Java、Node.js,甚至Shell脚本)都能调用。下面直接上干货。

适用产品:芯步智能墙壁开关2路(型号:UNI-KG-2 / 智能触摸墙壁开关2路)

一、开篇闲聊:为什么要这么干?

现在智能家居很普及了,但市面上很多成品 App 的定时功能要么太死板(只能几点开几点关),要么得依赖厂家的云服务器。

如果你是集成商,想给客户做个“下午5点自动开楼道灯,晚上11点自动关”的功能;或者是极客爱好者,想把家里的灯接入 HomeAssistant 或者自己写个小程序来控制。那么,二次开发这条路就非常有必要走一趟了。

芯步这玩意儿有个最大的好处:开放 HTTP 接口。说白了,就是只要你会敲代码,能发个网络请求,就能指挥它干活。不需要买额外的网关,只要有 WiFi 就行。

下面咱们就一步步来看,怎么利用这个接口,让你的开关变得“长脑子”,学会到点自动开关灯。

二、准备工作:把家伙事儿备齐

动手之前,咱得先把这几样东西准备好:

  1. 硬件设备:芯步 2路智能墙壁开关(已经装上墙,且通电了)。

  2. 网络环境:2.4G WiFi 信号(5G不行哦,这个得注意)。

  3. 账号与密钥

    • 去芯步官网注册个开发者账号。

    • 登录控制台,找到你的 AppIDAppSecret(也就是开发者密码)。这俩东西相当于你家的“小区门禁卡”,等下签名要用

  4. 设备ID:在控制台把你要控制的那个开关的 Device ID(设备ID)复制下来。如果记不住,可以先给设备配个网。

小贴士:怎么配网?芯步的开关配网挺简单,不需要什么复杂的 SmartConfig。你可以在电脑端的“物联网控制台”或者用微信小程序,把家里的 WiFi 名和密码输入进去,它就能连上了。连上网,它在云端就是“在线”状态了。

三、核心技术:读懂它的“黑话”(接口协议)

要控制它,你得学会跟它说话。芯步的接口格式很规整,不用怕。

1. 请求地址(URL)

注意,这里有个 {你的AppID} 要换成你自己的一串字母数字。

2. 签名算法(Sign)

为了防止别人乱动你的灯,每次发命令都得带上一个动态的“验证码”(Sign)。算法其实很简单,就是套娃式加密:第一步:把 AppSecret 做一次 MD5 加密,得到 Secret_md5第二步:把 Secret_md5 拼上当前的时间戳(ts),得到一个新字符串。第三步:把这个新字符串再做一次 MD5 加密。

用人话翻译一下就是把你的密码 MD5 一下,然后加上当前的时间,再 MD5 一次

3. 核心命令(Order)

针对我们的 2路开关,控制的精髓就在 order 这个参数里

功能描述命令格式(JSON)解释
打开第1路{"power1":1}1代表开
关闭第1路{"power1":0}0代表关
打开第2路{"power2":1}-
关闭第2路{"power2":0}-
临时接通模式{"point1":"2000"}第1路先通电,2秒后自动断电(适合排风扇、门铃)
定时断开模式{"reset2":"5000"}第2路先断电,5秒后自动恢复通电

四、动手实战:用代码让灯“定时”亮起来

既然接口有了,我们就来实现 “定时开关”。这里不用写什么死循环,我们是去调用云端的 “定时任务” 接口,让服务器到点去发命令,这样你的电脑关了灯也会自己动。

下面我分别用 Shell脚本(适合Linux服务器/路由器)和 Python(适合大部分后端开发者)来演示。

场景设定

  • 任务A:每天 19:00(晚上7点),打开 第1路(客厅灯)。

  • 任务B:每天 23:00(晚上11点),关闭 第1路(客厅灯)。

  • 任务C:现在立刻让 第2路 通电 3秒 后关闭(用来测试门禁或门铃)。

方案一:用 Shell 脚本 + Crontab(最简单,适合放路由器里跑)

我们可以写一个脚本 ctrl_light.sh,然后在群晖或者路由器里设置定时任务。

1. 编写脚本 ctrl_light.sh

2. 给脚本执行权限

3. 设置定时任务(Crontab)输入 crontab -e 编辑定时任务,加入以下几行:

搞定!只要你的路由器或树莓派不关机,到点灯就会自动开关。

方案二:用 Python (如果要做 Web 后台)

如果你在用 Django 或 Flask 写后台,可以这样封装一个函数。

五、进阶玩法:设备主动反馈(Webhook)

如果你不仅仅是想控制,还想知道谁按了开关?

比如半夜孩子去厨房,按了开关,你想让服务器马上知道这个动作。这时候就需要用到 上行消息

在芯步的控制台里,可以设置一个 “数据接收URL” (也就是 Webhook)。当有人用手触摸开关时,设备会主动给这个 URL 发一条消息

收到这个消息,你就能干很多事,比如:发个通知到手机上——“客厅灯被打开了”。

六、避坑指南

  1. 时间戳同步:签名的 ts 是秒为单位(Unix时间戳)。如果你的服务器时间跟标准时间差太多,接口会报错。记得同步一下系统时间。

  2. 设备ID格式:虽然代码里我写的是字符串,但在实际请求的 JSON 里,有时候它是数字(不加引号),有时候是字符串。为了保险,看官方文档或直接照抄示例[1]里 "device":1878 (无引号)的方式。

  3. 双控开关:如果你接的是那种“保持状态”的场景,比如不用 power1,而用 {"power1":{"keep":"1","revert":"3"}},这表示:强制保持开,如果谁手贱关掉了,3秒后自动又打开。这在一些公共场所的消杀人像灯里非常实用

  4. 局域网控制(私有化):如果你不想经过外网,只在内网环境(比如工厂车间)用,芯步支持私有化部署。你只需要把请求地址改成自建服务器的 IP 就行了,代码逻辑完全不用变

总结

用芯步的2路开关做二次开发,核心就是搞定 签名(Sign)命令(Order)。一旦你把签名算法封装好了,剩下的就跟调普通的网页 API 一模一样。

不管是配合 Crontab 做定时,还是接个温湿度传感器做联动(温度高了自动开排风扇),这套方案都能轻松搞定,也不需要太复杂的编程知识。