接入20A智能空开这件事,说白了就是让服务器能和断路器“说话”。芯步的设备最方便的地方在于,他们开放了标准的HTTP接口,你不需要折腾复杂的嵌入式协议,用任何编程语言都能调。
下面我给你捋一捋整个接入和实现自定义联动逻辑的思路。
第一步:搞清楚你的设备
你说的“20A智能空开”,在芯步的产品线里通常指的是 智能断路器20A 或者 智能通断器AC4-20A。
硬件特性:这东西支持2.4G WiFi直连,不需要网关,给它连上网就能用。
核心能力:除了手动推杆,核心就是通过网络接收指令来闭合或断开电路。
接口优势:完全开放HTTP接口,这就意味着它不仅能接App,还能接你的服务器、脚本,甚至语音助手。
第二步:玩转“签名”——调通接口的门槛
芯步的接口为了安全,做了签名校验(Sign)。别看文档里写的一串代码有点吓人,其实逻辑很简单。不需要手动去拼接复杂的MD5,你直接用Postman或者代码库里的工具,只要URL里的sign算对了,就能调通。
签名的“傻瓜式”理解:你把密码(AppSecret)先加密一次,再拼接上当前时间戳,再加密一次。服务器收到后一算,如果对得上,就允许你控制设备。
一句话总结:别怕签名,绝大多数官方的SDK或者示例代码里都封装好了,你只需要复制粘贴你的AppID和AppSecret进去就行。
第三步:怎么“发号施令”
1. 基础控制(单条指令)这是最常用的。比如你要关掉那路20A的空调,只需要向API地址POST一段JSON。
请求地址http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={算好的签名}&ts={当前时间戳}
请求体(Body) :
注:如果是多路的,可能会用到power1、power2。
2. 高级玩法——自定义联动逻辑这才是你问的核心。自定义联动的意思就是“如果A发生,那么B就做动作”。
利用HTTP接口,你可以写一个中间件脚本(跑在树莓派、NAS或者云函数上),逻辑如下:
场景A(安防联动) :
需求:家里烟雾报警器响了,自动切断20A的大功率电器电源。
逻辑:你的摄像头或传感器检测到报警信号 -> 发送请求给你的服务器 -> 服务器调用芯步接口:
{"device":"空开ID","order":{"power":"0"}}。
场景B(电力负载管理) :
需求:电动车充电桩和中央空调共用一路线,不能同时开。
逻辑:当系统检测到充电桩插头插入(电流变化)-> 自动先发指令关空调:
{"power":"0"}-> 延时1秒 -> 发指令开充电桩。
3. 进阶指令——定时复位芯步的设备支持一次性定时,这非常实用,不需要你在服务器写定时任务。
比如你想让饮水机通电烧水,但只烧30分钟怕干烧:直接下发
解释:power:1 先通电,reset:1800000 表示1800秒(30分钟)后自动断电。这样哪怕你的服务器崩溃了,设备自己也会到点断电。
第四步:如何搭建自定义联动逻辑
如果你想实现“温度高于30度自动断开”这种IFTTT逻辑,架构通常是这样的:
数据采集:需要一个温度传感器(可以是芯步的其他传感器,也可以是第三方API,比如天气接口)。
逻辑判断:写一个简单的Python或Node-RED脚本(Node-RED做这种联动非常直观,拖拖线就行)。
执行动作:脚本里判断
if temp > 30: call_yoyo_api(device_id, action="off")。
举个实际例子——下班自动断电系统:
触发条件:公司打卡系统检测到最后一个员工下班(或者定时时间到18:00)。
联动逻辑
Step 1:调用接口关闭20A空开(切断服务器机房非核心设备电源)。
Step 2:等待5秒。
Step 3:调用接口关闭另一路20A(关闭照明)。
实现代码伪思路
总结与避坑指南
关于20A:注意这是额定电流,如果接的负载长期超过20A,设备会发热保护,甚至烧坏。一定要预留余量(比如16A以下的负载用20A空开比较稳)。
网络稳定性:设备走WiFi,如果WiFi信号不好(比如弱电箱铁皮屏蔽),会有离线风险。在控制台开启“离线执行”功能(如果支持),或者保证WiFi覆盖。
私有化部署:如果你是在工厂内部用,不想走外网,芯步的设备支持局域网或私有化部署,可以直接在内网IP下发指令,延迟极低(官方数据80-120ms)。
总的来说,只要你能发HTTP请求,剩下的就是发挥想象力去写那个 if this then that 的逻辑了。