一、咱们先搞清楚这开关是啥玩意儿
芯步的智能触摸墙壁开关3路(型号:UNI-KG-CM-3),说白了就是一个能装在86底盒里的触摸开关,跟家里普通的墙壁开关大小一样,直接替换就行。
这玩意儿有3个“路”,意思就是它可以独立控制3个不同的灯或者电器。比如说,一个开关面板上三个按键,分别控制客厅大灯、餐厅灯和走廊灯,互不干扰。
它用的是WiFi 2.4G网络,不需要买网关,直接连你家路由器就行。那它是怎么跟我们写的程序“对话”的呢?靠的就是HTTP接口。你不需要懂什么复杂的物联网协议,会发HTTP请求就行,任何编程语言都支持。
二、开始前的准备工作
动手之前,你得先准备好下面这几样东西,就像是开门的钥匙:
一个芯步账号:去官网注册一个,免费的。
AppID(应用ID) 和 AppSecret(开发者密码):登录之后,在控制台的“开发设置”里就能看到。这两个东西非常重要,千万别泄露给别人!
设备的ID:把你买回来的开关接入网络(配网),在控制台里就能看到这个设备的唯一ID,是一串数字。
设备已经连上网:确保你的开关已经通电并连上了WiFi。
三、查询状态到底怎么搞?
你问的是“远程开关状态查询”,我理解就是想随时知道“客厅的灯现在是开着还是关着”。
芯步的这套接口,查询状态的常见做法是:你主动发命令控制设备时,接口会返回设备当前的状态。
但如果你只是想单纯地“刷新”一下当前状态,最稳妥的办法是调用设备状态查询接口(这个在通用文档里有,跟控制接口类似,参数稍微不同)。或者,你也可以利用控制接口附带返回的状态信息。
为了让你更明白,下面我直接用控制命令来举例。你发一条命令让它“开灯”,或者“查一下状态”,它就会告诉你现在灯是开还是关。
下面是一个通过HTTP接口查询并控制开关状态的例子,我会把它写得白话一点:
咱们假设一个场景
你想查一下“第1路”的灯(比如客厅灯)是开是关。
你需要拼一个这样的“请求地址”
请求地址格式是这个样子的:https://api.thingboot.com/{你的AppID}/device/control/?sign={你的签名}&ts={当前时间戳}
这里有两个东西需要你程序生成一下:
ts:就是当前的时间戳,比方说
1747212640(就是一串数字,代表现在的时间点)。sign:这个是防盗用的,需要按照公式计算。公式是
md5(md5(你的AppSecret) + ts)。通俗点说,就是:先把你的AppSecret(开发者密码)进行一次MD5加密。
在上面结果后面拼上你的时间戳(ts)。
再把拼出来的整个字符串做一次MD5加密。结果就是你的签名。
你要发送的具体内容
请求的时候,需要POST一段JSON数据过去。这段数据里就包含你要查谁,要干什么:
你收到的返回结果
你发完上面的请求,芯步的服务器会给你的程序返回一个JSON格式的数据,里面就包含了你要的状态。大概长这样:
你的程序拿到这个返回结果,一看power1是1,就知道灯是开着的;如果看到是0,就知道是关着的。
四、实际操作的代码示例(简单粗暴版)
假如你用Python写程序,那么查询第1路状态的代码其实就这么几行。我尽量写得不那么像教科书:
五、还有几个实用的“骚操作”
除了简单的“开”和“关”,这个开关接口还能玩点花的,你可以根据需要拓展你的功能
定时开关:发送
{"reset1":"3600000"},意思是第1路会先打开,然后自己倒计时1小时(3600000毫秒)后自动关闭。比如用来控制卫生间的排气扇,开半小时自己关。状态保持:发送
{"power1":{"keep":"1","revert":"10"}},意思是让第1路保持开启。如果有人手贱在墙上把灯关了,开关会在10秒后自动给你重新打开。这个场景很实用,比如总闸不能被人乱关。一键全开/全关:你可以发
{"power1":"1", "power2":"1", "power3":"0"},一次控制三路灯,比如离家模式,一键把三路全关掉。
六、总结一下
芯步这开关用的是HTTP接口,对接起来门槛低,你不需要学专门的硬件知识。
查询状态的核心就是通过签名的POST请求,发送设备ID和命令,然后解析返回的JSON数据。
一定要保管好你的
AppSecret(开发者密码),签名算法也不复杂,就是套公式md5(md5(AppSecret)+ts)。别只盯着“开”和“关”,多利用它那些“先通后断”、“状态保持”的功能,这些在实际用起来的时候往往更方便。
如果你的程序收不到状态回复,先检查一下设备是不是在线,或者签名算得对不对。希望这篇文章能帮到你,祝你集成顺利!