CATALOG

芯步的智能分体控制箱开放了HTTP接口,二次开发的核心就是调用这些接口来下发指令。下面我整理了两种实现定时控制的方案——如果你的场景不复杂,用设备自带的“定时任务”功能最省事;如果需要灵活的动态调度,就自己写脚本调用控制接口。两种方案我都写了具体步骤和代码示例,你可以按实际情况选。

一、我们有什么“武器”?

首先,我们要搞清楚能操控这个分体控制箱的几种方式。

这个分体控制箱说白了就是一个带有WiFi模块的继电器组。芯步给它开放了非常友好的HTTP API接口。这意味着,只要你懂一点编程(比如Python、PHP、Shell,甚至是低代码平台的HTTP请求组件),就可以给他发送指令。

它主要支持以下几种“玩法”:

  1. 单路控制:单独控制第1路到第8路的“开”或“关”。命令格式例如 {"power1":1}(开启第1路)或 {"power3":0}(关闭第3路)

  2. 批量控制:一键全开全关,或者只开其中的某几路。

  3. 定时任务:这是实现今天主题的核心功能。设备内置了时钟,我们可以通过接口去创建、修改、删除定时任务,也可以随时暂停或恢复任务

小贴士:这个设备是走网络的,响应非常快,通常在80-120毫秒左右,所以基本感觉不到延迟

二、动手前的一点点准备(二次开发基础)

在写代码之前,你需要去芯步的开放平台拿到两把钥匙:AppIDAppSecret

这就好比你要登录一个软件,需要账号密码一样。在每一次给设备下命令的时候,都需要用这两个东西生成一个动态的签名,防止别人随便乱动你的设备

签名的生成规则是(稍微有一丢丢绕,但代码实现很简单):YourSign = md5( md5(AppSecret) + 当前时间戳 )

大白话解释:

  1. 先把你的密码(AppSecret)进行MD5加密一次。

  2. 把加密后的结果后面拼上当前的时间(比如 1678888888)。

  3. 把拼接后的这串字符再MD5加密一次,得到的乱码就是签名。

虽然听起来复杂,但你只要复制下面的代码模板,把 AppSecret 换掉就行,不用自己手算。

三、方案一:利用云平台定时任务(最稳定、推荐)

这是最简单的办法,适合固定时间、固定模式的场景(比如:每天早上8点开灯,下午5点关灯)。

逻辑: 我们直接调用芯步的API,去服务器里设置一个“闹钟”。时间一到,云服务器会自动给设备发指令,即使你的电脑关机了,它照样执行。

步骤:

  1. 创建定时任务:调用 /task/create 接口。

  2. 设定参数:告诉服务器几点几分,去控制哪个设备的第几路,是开还是关。

  3. 启停管理:如果临时想取消,调用 /task/control 接口,传入 oper=stop 即可暂停该任务;想恢复就传 oper=start

假如我想实现:周一到周五,早上9:00开启第1路,晚上18:00关闭第1路。

这时候你需要写一点代码来创建这两个任务。以最简单的 Python 为例(你也可以用PHP、Java,逻辑完全一样):

注意:上面代码里 crontab 的写法是标准的Linux Cron表达式。如果你觉得写这个有点晕,可以先在芯步的控制台网页上手动点一下创建定时任务,看看生成的参数是什么,再复制到代码里。

四、方案二:脚本配合系统定时器(灵活、适合折腾)

如果你不想用云平台的任务功能,或者你的业务逻辑非常复杂(比如需要判断天气、人数再决定是否开启),你可以选择自己写脚本,结合你电脑/服务器的计划任务来搞。

核心逻辑:

  1. 你写一个脚本,里面只有一句控制代码:控制第几路开/关。

  2. 你去设置你电脑的 Cron(Linux/Mac)计划任务(Windows),让它每天在固定时间自动运行这个脚本。

优点: 代码极少,不用学Cron表达式怎么写,完全由你的服务器控制。缺点: 你的电脑必须24小时不关机。

具体脚本代码(这里展示Shell + CURL,极其简单粗暴):

  1. 新建一个文件,比如叫 light_on.sh,内容如下:

  1. 赋予执行权限:chmod +x light_on.sh

  2. 配置Cron:输入 crontab -e ,加入一行:

五、高阶玩法:按个按钮触发(联动功能)

除了定时,这个接口还能做更有意思的事情。因为分体控制箱也支持输入(比如接一个门磁,或者一个物理按键)。

场景: 当你按下一个外接的物理按钮(接在输入1口),自动开启第1路到第5路,并延时30分钟后自动关闭。

实现思路:你可以写一个服务(Server),订阅平台的上行消息。当设备检测到按钮被按下,平台会推送一条消息给你的服务器。你的服务器接收到这条“有人按按钮”的消息后,立刻通过控制接口,发送 {"power1":1, "power2":1...} 和定时延时关闭的命令

总结

针对“定时启停”这个需求:

  • 如果你求稳、不想写太多代码:直接用方案一,去芯步后台查看接口文档,重点看 task/createtask/control 这两个接口。创建好任务后,甚至可以用手机随时调用 task/control 去暂停它。

  • 如果你喜欢自己控制一切:用方案二,写个Shell/Python脚本,配合你电脑的定时任务去运行。

你需要的核心动作其实就两个:“发指令”“定闹钟” ,芯步的Open API都已经给你封装好了,剩下就是根据你的业务场景,把具体的逻辑串起来就行了。

如果你需要具体的某一种编程语言的完整代码包,可以去他们的开放平台社区下载Demo,或者直接联系他们的技术支持,回复还挺快的