CATALOG

芯步这款1路开关的开放接口挺直接的,就是标准的HTTP API,不用折腾复杂的SDK。下面我围绕“怎么自己动手做定时管控”来写,从接口原理到代码实现都过一遍,你可以根据实际需求调整细节。

解决方案:利用芯步API二次开发,实现1路智能开关的定时用电管控

1. 为啥要自己搞二次开发?

咱们之所以要费劲搞二次开发,而不是用App里现成的定时,主要是为了灵活联动

  • 第一种场景(精细管理):你想让热水器在“每天19:00-20:30”且“家里有人”的情况下才通电。标准App只能定死时间,但你自己写逻辑就能加上各种条件。

  • 第二种场景(系统集成):你有一套企业能源管理系统,需要把电表的读数、空调的功率和这个墙壁开关统一管理。只有通过开放接口,才能把硬件数据拉进你的大屏里。

  • 第三种场景(私有化部署):有些工厂或办公室为了安全,设备不能联网外网。芯步支持局域网控制,这时候就必须自己开发本地控制程序了。

2. 准备工作:你得有啥?

  • 硬件:已经装好的“芯步1路智能墙壁触摸开关”(通电、连网正常)。

  • 账号:在芯步官网注册开发者账号,登录控制台

  • 钥匙:在控制台的“开发设置”里找到你的 AppIDAppSecret(相当于用户名和密码)

  • 设备ID:在控制台找到你那个开关的 Device ID(设备唯一编号)

3. 核心思路:其实就两步

说白了,就是用代码模拟App点按钮的动作。

  1. 算签名:为了防止别人乱发指令,每次发命令都要带一个动态的“暗号”(MD5加密签名)。

  2. 发指令:往指定的网址(URL)丢一个HTTP请求,告诉它“把那个开关打开”或者“关上”。

4. 实操教程:从“开关”到“定时”

第一步:搞定开关控制(热身)

我们先写点代码,实现最基本的“开”和“关”。

核心API地址(看官方手册整理):

  • 接口地址https://api.thingboot.com/{你的AppID}/device/control/

  • 请求方式: POST

  • 必须参数

    • device: 你的设备ID

    • order: 控制指令,这里1路开关的控制对象是线路1,所以用 power1

  • 签名算法Sign = md5( md5(AppSecret) + ts ) (看着晕?直接复制下面的代码即可)

代码示例(Python版,最方便写定时任务):假设你想在电脑上跑一个脚本,这个脚本能让开关开一下。

如果看不懂Python也没事,官方支持 curlPHPJava 甚至是 Shell脚本。例如在Linux终端里,可以直接用 curl 命令来控制,本质都是一样的

第二步:实现“定时管控”(重头戏)

既然能控制了,定时就好办了。我们不需要去修改开关的固件,只需要操控电脑/服务器在指定时间去调用上面的代码就行。

方案A:轻量级(适合办公室/家里)—— 用电脑的定时任务比如你想让饮水机每天早上8点半开,晚上6点关。

  • 如果是Windows电脑

    1. 把上面的Python代码保存为 control_light.py

    2. 打开“任务计划程序”,创建两个基本任务。

    3. 一个任务在 08:30 触发,启动程序填 python,参数填 control_light.py(脚本里改成开)。

    4. 另一个任务在 18:00 触发,启动程序填 python,参数填另一个关灯的脚本。

  • 如果是Linux服务器crontab -e 编辑定时任务:

方案B:企业级(适合集群/大规模)—— 用程序逻辑控制如果你有几百个开关,或者逻辑很复杂(比如“周一三五开,周二四六关”),就需要写个常驻服务。

  • 数据库定时扫描:把每个开关的开关机时间表存在MySQL里。

  • 写一个循环脚本

第三步:进阶玩法(不只是定时的“管控”)

芯步的接口还挺丰富的,除了简单的开/关,这个1路开关还有几个特殊的“命令模式”,特别适合用电管控:

1. “防赖床/节能”模式(先通后断 / 先断后通)比如你要控制电热毯,或者给电动车充电,想让通电2小时后自动断电。

这样你只需要发一次指令,开关自己会倒计时关,不需要你的电脑一直开着计时,即使断网了时间到了它也会自己关

2. “防误触”模式(状态保持)比如工厂里的警示灯,或者展厅的射灯,你怕现场有人不小心按了物理开关给关了。

这就叫“锁定状态”,物理按键都失效,只有你的程序发关指令才管用

5. 写在最后的技术提醒

在开发过程中,有几点小可以参考:

  1. 关于局域网:如果你对延迟要求比较高(比如生产线急停),可以把 api.thingboot.com 换成设备在局域网里的IP地址。官方支持局域网发现和控制,速度能达到毫秒级,完全不依赖外网

  2. 关于签名:那个MD5签名的算法看着是有点绕,但它其实只是为了保证数据安全。如果不想写代码,可以先用 Postman 这样的工具把 sign 算出来发一次试试,通了再写代码。

  3. 关于反馈:上面的代码只管“发命令”,不管设备“有没有执行”。如果你需要确认是不是真的执行了,可以用“查询设备状态”的接口,或者订阅官方平台的“设备上下线”推送消息。

你可以先按上面的Python脚本跑一下,只要能把灯点亮,剩下的定时逻辑其实就是普通的编程问题了。