CATALOG

芯步的智能墙壁开关开放了完整的HTTP API接口,这意味着你完全可以把它当作一个“可编程的开关底座”,根据自己的需求定义每路按键的行为。下面这份方案会讲得比较白话,像朋友聊天一样聊聊怎么把它玩出花来。

1. 为啥要折腾二次开发?

市面上的智能开关,大多只能让你用手机 App 点一下“开/关”,最多设个定时。但对于咱们这种喜欢折腾、或者有特定需求的极客/开发者来说,这远远不够。你可能想要这样的体验:单击右键是阅读模式(关主灯,开氛围灯带);双击右键是观影模式(灯全关,留一点背景光);长按左键是离家模式(全屋断电)。

要实现这种 “一个按键,触发多种场景” 的效果,就必须用到芯步提供的 开放 HTTP API 接口

2. 二次开发的核心思路

这个方案的精髓在于:开关只负责触发指令,服务器负责逻辑判断

  • 硬件层: 芯步的双路墙壁开关。它负责联网,并捕捉你的“单击”、“双击”或“长按”动作(虽然硬件本身可能只支持状态变化,但我们可以利用状态的变化逻辑来模拟场景)。

  • 接口层: 利用其开放的 HTTP API。我们可以通过轮询设备状态,或者利用平台的消息推送机制,实时知道“哪个键被按了”。

  • 大脑层: 你的云服务器或家中跑的树莓派/NAS。一旦收到“按键事件”,服务器就根据预设的场景逻辑,去指挥这个开关(或者其他设备)该开哪一路、关哪一路、延时几秒。

简单说,就是用代码定义“按下去之后发生什么”

3. 准备工作(花十分钟搞定)

在写代码之前,先把环境跑通:

  1. 硬件接线: 把芯步的双路开关按说明书接好(记得断电操作)。一路接主灯,一路接电视背景灯带。确保开关连上了家里的 2.4G WiFi

  2. 注册开发者账号: 去芯步官网注册账号,进入“物联网控制台”。

  3. 获取密钥: 在后台找到你的 AppIDAppKey 以及设备的 DeviceID。这是你控制开关的“身份证”

  4. 测试接口: 用 Postman 或者浏览器测试一下接口,只要能成功控制第一路开灯,就算打通了经脉。

小提示: 官方接口地址通常是 https://api.thingboot.com/{AppID}/device/control/,记得要带上签名(Sign)和时间戳(Ts)

4. 接口调用的实战技巧(附白话解读)

这个开关的接口设计得比较人性化,传参很简单,核心就是 order 这个字段

A. 基础控制

这是最基础的,直接告诉开关“你给我开”或“你给我关”。

  • 开第一路(比如客厅主灯): 发个 {"power1":"1"} 过去。

  • 关第二路(比如背景灯): 发个 {"power2":"0"} 过去

B. 场景化的关键:“点动”与“互锁”

这是实现场景化控制的精髓所在。

  • 先通后断(点动/复位):这个功能特别实用。比如你按一下“观影键”,窗帘关上了,灯带需要亮一下就灭。你可以发命令:{"point2":"2000"}效果是: 第二路通电 2 秒,然后自动断开。这样灯带闪了一下,仪式感有了,但灯并不会一直亮着

  • 状态保持(场景锁定):有时候你不想让物理按键的人乱动。比如你在家开 Party,设定了“派对模式”,不希望别人随手把灯关了。可以用 {"power1":{"keep":"1","revert":"5"}}效果是: 强制第一路保持开。如果有人手贱去物理按关,开关会在 5 秒内自动又给你打开

5. 落地实操:三个典型的“照明场景化”案例

下面我们直接看看怎么用代码逻辑把上面的接口串起来,实现你想要的效果。

第一种场景:一键切换“会客模式” vs “独处模式”

需求: 客厅有两路筒灯。平时自己看,只开一路;来客人了,两路全开。实现逻辑:写一个简单的逻辑判断:获取当前第一路的状态。

  • 如果是 off:发送 {"power1":"1", "power2":"1"}(两路全开) -> 进入会客模式。

  • 如果是 on:发送 {"power2":"0"}(只关第二路) -> 进入独处模式。

第二种场景:魔法“延时关灯”功能

需求: 卧室床头开关,晚上看完书想闭眼就睡,不用再摸黑关灯,长按开关 3 秒,灯会在 10 分钟后自动关闭。实现逻辑:

  1. 服务器检测到第二路(床头灯)被长按触发的信号(通过轮询状态变化时长)。

  2. 服务器并不直接关灯,而是启动一个定时任务。

  3. 指令:先保持现状,10 分钟后发送 {"power2":"0"}

第三种场景:联动其他设备(打破单品限制)

需求: 关了走廊灯的同时,顺便把卧室的空调也打开(假设空调也接了另一个控制器)。实现逻辑:

  1. 用户按下双路开关的第一路(关灯)。

  2. 服务器接收到关灯事件 {"power1":"0"}

  3. 服务器不单单是把命令传给这一个开关,而是并行发出两条指令:

    • 开关A发:{"power1":"0"}

    • 空调控制器发:{"power":"1"}

  4. 这就实现了“关灯后自动开空调”的跨设备联动。

6. 不想折腾服务器?那就用“局域网”直连

如果你不想租云服务器,或者家里网断了就瘫痪,芯步的开关是支持局域网控制你可以在家里的树莓派或 NAS 上跑一个脚本。只要手机连着家里 WiFi,打开你写的小页面,直接通过内网 IP 给开关发指令,这速度比绕一圈外网快得多(官方数据大概是 80-120ms),几乎感受不到延迟。

7. 避坑指南(过来人的经验)

  1. WiFi 频段: 这开关比较“认生”,只认 2.4G WiFi。路由器开了双频合一的话,记得先关了给它连上,不然连不上网

  2. 签名算法: 调用接口时,sign 和 ts 是绑定的。写代码的时候记得把时间戳动态生成,不然过几分钟接口就失效了(这是为了安全)。

  3. 负载限制: 虽然是智能开关,但它里面还是有个继电器。一路最大支持 10A / 1200W(阻性负载)。如果你接的是超大功率的射灯组,最好加个交流接触器,别把开关烧了

总结

说白了,芯步的这个双路开关就是一个执行器。它的 API 给了你足够的自由度(支持开关、延时、自锁)。你把 “业务的脑子” 放在你自己写的代码里,让开关去感知你的操作,让接口去执行你的命令这样,那个 86 盒里的小小开关,就不再只是一个开关,而是你整个智能家居的控制中心了。