芯步的开放接口走的是标准的HTTP/MQTT协议,一通百通。下面直接讲怎么把这些硬件串起来,实现“人到家灯亮、人走电断”这种联动效果。
一、 核心思路:把谁和谁连起来?
所谓的“场景联动”,简单说就是: “如果A设备发生了某事,就让B设备去做某个动作”。
在电源控制这个场景里,我们主要关注两类设备:
触发者(传感器/开关): 比如智能门磁、人体红外传感器,或者你手机上的定位(GPS) 。它们是眼睛。
执行者(电源控制器): 比如芯步的4路智能控制器、智能墙壁插座、墙壁开关。它们是手。
我们的目标是:当“眼睛”看到了情况,就让“手”去接通或切断电源。
二、 准备阶段:拿到“遥控器”的钥匙
要对硬件发号施令,得先拿到芯步开放平台给的权限。你需要先拿到三样东西:
AppID(应用凭证):相当于你在芯步平台的“用户名”,用来标识是你的应用在调用接口。
设备ID(设备身份证):每个硬件在云端的唯一编号。你可以在芯步的后台控制台找到,一般在设备外壳上也有标签。
Sign签名(安全钥匙):为了防止别人乱开你家的灯,每次发指令都需要用密钥生成一个签名,证明是你本人在操作。
这里稍微直白点解释:你可以把开放平台当成一个快递系统。AppID是你的寄件人ID,设备ID是收货地址,Sign是快递单上的防伪码。你要控制电源,就是发一个“包裹”(指令)给快递系统,让它派送到对应的设备。
三、 实操环节:如何动手搭联动
这里不写复杂的代码,主要是讲逻辑。你可以用任何方式(小程序后台、Python脚本、甚至Node-RED)来发HTTP请求。芯步的接口支持 HTTP GET/POST 和 MQTT 两种方式。
第一种场景:人来灯亮(人体感应触发插座通电)
需求:阳台晚上有人经过,自动亮灯(灯接在智能插座上)。方案
硬件:一个芯步人红外传感器 + 一个芯步智能墙壁插座(10/16A均可)。
逻辑链路:红外传感器检测到人 -> 云端回调你的服务器 -> 你的服务器下发指令给插座 -> 插座闭合通电。
接口调试当你的服务器收到“有人”的消息后,需要向芯步平台发送一个控制请求。
请求地址
http(s)://api.thingboot.com/{你的AppID}/device/control/关键参数
device:填那个智能墙壁插座的设备ID。order:填{"power":1}(这里的power是属性名,1代表开,0代表关)。
直白解释:就是你后台写一行代码,对着芯步的API喊一声:“把那个插座(device ID)给我打开(order)!”。
第二种场景:离家一键全关(场景控制)
需求:出门按一下墙上的场景开关,或者手机点一下“离家模式”,全屋的灯和电器断电,但冰箱保留。方案
触发:手机APP发送“离家模式”指令。
批量控制:芯步的开放接口支持一次指令控制多台设备。你可以在
device参数里用逗号连接多个设备ID。指令示例
device=插座ID1,插座ID2,插座ID3&order={"power":0}。注意:官方文档一次最多控制100台,且这些设备必须有相同的指令(比如都是关)。
第三种场景:设备间的本地联动(进阶)
如果你不想经过云端服务器(为了更快更稳),可以利用有的网关设备具备的边缘计算能力。但这通常需要你买一个网关(比如智能音箱或特定的边缘网关),在本地局域网里写规则。比如,在网关里设置:“如果门磁打开,则1号继电器闭合”。这个逻辑直接在网关里跑,断了外网也能用。
四、 避坑指南:写在最后的叮嘱
在实际开发中,有几个点大家容易踩坑,尤其要注意:
状态反馈问题(异步确认)痛点:你发了
开灯指令,平台返回200,这只代表指令平台收到了,不代表灯真的亮了(可能灯坏了或离线了)。解法:如果需要确认是否真的通电了,你得去接收芯步平台的消息推送(Callback)。当设备状态真正改变时(比如继电器真的吸合了),平台会主动推一个消息给你,告诉你“成功”或“失败”。或者你直接调接口去查询设备状态。“保持”指令(点动模式)痛点:有些场景(比如控制电机、卷帘门)需要“按一下转3秒停”,而不是一直通电。解法:芯步的一些开关设备支持指令中的
keep参数。如果你发给墙壁开关指令:{"power1":{"keep":"1","revert":"3"}},意思是“打开电路1,保持3秒后自动关闭”。这对于控制门锁、水泵等非常有用。网络延迟走云端控制一般会有零点几秒的延迟,如果对实时性要求比较高(像工厂急停),用MQTT协议维持长连接,或者依赖边缘计算在局域网内直接发指令。
总结这张图
如果不写代码:你可以在芯步的SaaS后台直接配置“智能联动”,把传感器和执行器绑定,连代码都不用写。
如果要自己开发系统:记住这个三步走 ——
看:接收设备上报的消息(比如传感器触发了)。
想:根据你的业务逻辑判断(比如是否处于离家模式)。
动:调用
/device/control/接口,把{"power":1}发给对应的电源设备。