CATALOG

芯步的通断器模块开放了HTTP接口,这意味着你可以用自己的代码直接控制它,而不需要依赖官方App。下面我整理了一套方案,从签名计算到单设备控制,再到多设备联动(比如开门禁时自动关空调+开灯),一步步来。

一、我们能做什么?

说白了,芯步的这个智能通断器,本质上就是一个可以通过网络控制的开关。它的核心是一个继电器,你给它一个指令,它就闭合或者断开,从而控制电路的通断。

而芯步做得比较好的地方是,他们把接口开放得很彻底,提供了HTTP接口Websocket两种方式。这就意味着,你完全可以用自己熟悉的编程语言(Python、Java、PHP、Go,甚至Node-RED这种低代码工具)去控制它,不再局限于官方的App。

二次开发的终极目标,就是让这些原本孤立的开关"听懂"你的业务逻辑。比如:

  • 联动控制:A设备触发(如人体传感器感应到人),B设备动作(打开灯)。

  • 场景模式:按下一个键(或收到一个信号),一排排通断器按顺序动作(如影音模式:关主灯、开氛围灯、降幕布)。

二、核心准备工作

在动手写代码之前,我们需要拿到两样东西:

  1. 硬件ID:每个通断器模块都有一个唯一的设备ID(Device ID)。你可以通过芯步的控制台看到它

  2. 密钥对

    • AppID:你的应用ID。

    • AppSecret:你的应用密钥。

注意:所有的控制请求都是通过HTTPS发送的,所以你的电脑、服务器只要能上网,就能控制家里的设备,没有距离限制。

三、最核心的一步:搞定签名

芯步的接口为了保证安全,所有的请求都需要带一个动态签名(Sign)。这是很多新手容易卡住的地方,但其实弄懂了逻辑,就是几行代码的事。

签名的生成规则很简单(就是套娃)

Sign = MD5( MD5(AppSecret) + ts )

我们用大白话拆解一下:

  1. 先把你的AppSecret做一次MD5加密,得到一串字符S1

  2. 获取当前的时间戳(ts)(精确到秒)。

  3. S1ts拼在一起,变成一个新字符串S1ts

  4. 再把S1ts做一次MD5加密,出来的结果就是Sign

为什么要这样? 这样做是为了防止有人拦截了你的请求,拿着旧的链接去重复捣乱。因为时间戳每一秒都在变,签名也在变。

四、先拿单台设备练练手

我们先试一下最简单的动作:把一盏灯(连接着通断器)打开。

请求地址https://api.thingboot.com/{你的AppID}/device/control/

请求体(JSON格式)

如果你用Python写,脚本大概是这个样子(稍微口语化地解释一下)

注意:如果返回200,只代表云端收到了指令,并下发给了设备。如果设备当时离线,它可能收不到。所以如果是关键场景,需要留意设备的在线状态。

五、进阶玩法:如何实现多设备联动?

现在我们只控制一个设备没意思。多设备联动的本质是什么? 就是"事件驱动"比如:当门磁打开(事件A),触发关空调(动作B)和开灯(动作C)

方案一:最简单的批次控制

芯步的接口允许你一行代码控制多个设备。只要在device参数里用逗号隔开设备ID就行了

场景举例:下班了,一键关掉公司所有电源。

这种适合群控,不需要复杂的逻辑,一次性发一个POST请求就行。

方案二:基于业务逻辑的联动(编写中控脚本)

如果你想要更复杂的逻辑,比如"先关A,等5秒,再开B",或者"检测到A状态变化,然后执行B"。这时候你需要写一个中控脚本跑在你的服务器或者树莓派上。

联动设计

  1. 触发源:可能是你按下了一个虚拟按钮,可能是另一个传感器(非芯步品牌,但可以通过MQTT接入)报回来数据。

  2. 逻辑判断:你的Python/Node.js脚本收到触发信号。

  3. 动作执行:脚本依次调用芯步的HTTP接口。

举个例子:搭建一个"观影模式"当你喊一句"看电影",智能音箱触发一个Webhook到你的脚本,脚本执行以下动作:

  1. 发送指令:关掉主灯(通断器1,power=0)。

  2. time.sleep(1) 等待1秒。

  3. 发送指令:打开氛围灯(通断器2,power=1)。

  4. 发送指令:降下幕布(通断器3,用来控制电机正反转,可能需要发不同指令)。

方案三:利用分组功能(推荐)

芯步后台是支持设备分组

你可以把客厅的3个灯和2个插座拉到一个叫"客厅设备"的分组里。然后代码只需要针对Group ID发命令,不需要管这个组里有几个设备、ID是多少。

这样做的好处是,如果以后你换了设备或者增加了设备,只需要在后台修改分组配置,完全不用改你的代码

六、高级技巧:如何获取设备当前状态(反馈机制)

很多人在做联动时,只关心"发命令",不关心"有没有执行成功"。这在工业级或者严谨的场景下是不够的。比如你想实现:灯如果没关,就再关一次。

芯步提供了消息推送机制简单说,你不需要不停地问"灯关了没"。而是等灯关上的那一刻,云端主动打电话(HTTP请求)告诉你:灯已经关了

怎么用?你需要在后台设置一个URL(比如:http://你的服务器/api/callback)。当设备状态变化时(无论是你在APP点的,还是代码发的指令),芯步会把结果推送到这个URL。

收到的数据大概长这样

你的脚本收到这个通知后,就可以在日志里记录:"设备10001已确认关闭",这样你的系统就闭环了。

七、稍微口语化一点的避坑总结

  1. 别把Secret写在前端代码里:如果你是用Vue或HTML写网页,千万不要把AppSecret直接写在网页里。用户按F12就能看到你的密码,别人就能控制你的所有设备。一定要在后端(Java/Python/PHP)算好签名再发给前端

  2. 关于延时控制:如果你想让灯亮10分钟然后自动关,不需要自己写定时任务去发"关"指令。你可以直接发 {"power": 1, "reset": 600000},意思是"打开,并且600000毫秒(10分钟)后自动复位(关掉)"。这功能非常省心。

  3. 网络延迟:HTTP控制通常有80-200ms的延迟。如果你是用来做生产线上的急停或者精密仪器控制,可能要慎重。但如果是控制灯光、插座、电机、水泵,这个速度绰绰有余了。

  4. 调试神器:芯步后台自带"API调试工具"。如果你代码跑不通,先去后台手动发一条命令。如果后台能控制,你的代码不能,那100%是签名格式或者JSON格式写错了。

只要把HTTP请求封装成一个通用的函数,多设备联动其实就是多调用几次这个函数,或者稍微动动脑筋加个if else逻辑而已。

通断器产品方案:
创客项目电源控制场景:怎样把智能通断器模块接入到软件项目中
查看 >>
药店冷藏柜电源控制:怎样将6600W 智能限流开关接入到项目中
查看 >>
普通灯具系统交流控制:怎样将智能通断器AC1-10A对接到自己的项目中
查看 >>
怎么接入DC-10A 设备电源控制器以实现远程定时任务控制
查看 >>
怎样在共享茶室照明插座控制中集成智能设备以实现延时通断控制
查看 >>
联动场景方案:
怎么在创客工坊门禁管理中集成智能设备来实现门禁系统联动控制
查看 >>
如何二次开发壁挂式智能感应控制器来实现语音设备联动警示
查看 >>
如何二次开发3路智能照明开关以实现多设备联动控制
查看 >>
怎么二次开发双路智能墙壁控制开关以实现门禁与照明联动控制
查看 >>
怎样在活动现场人体感应与火灾预警中接入智能设备以实现消防预警联动
查看 >>
设备用途方案:
如何二次开发3路智能照明开关以实现多设备联动控制
查看 >>
如何接入智能人体存在传感器[壁挂]来实现设备电源开关控制
查看 >>
怎样在商业空间门禁照明联动控制中接入智能硬件来实现设备运行状态监控
查看 >>
怎样对接15W 语音播报壁挂音箱以实现多设备语音同步播报
查看 >>
如何接入15W 语音播报壁挂音箱以实现设备故障语音告警
查看 >>