芯步的10A86型智能插座开放了HTTP API接口,这意味着你可以把它接入自己的系统,而不是只能用它官方的App。下面聊聊怎么基于这套接口做二次开发,实现自定义的联动控制。
让你的插座“活”起来,想怎么联就怎么联
一、咱们能折腾出啥花样?
先说说这玩意儿能干啥。你买了芯步的10A86型智能墙壁插座,装了官方App,手机控制开关、定时啥的都没问题。但咱是有追求的人,对不对?
通过二次开发,你可以:
第一种场景:人来灯亮,人走灯灭把插座和人体传感器联动起来。卫生间、过道这种地方,再也不用摸黑找开关了。
第二种场景:鱼缸智能管家鱼缸加热棒搭配温度传感器。水温低了自动通电加热,高了自动断电。养鱼再也不用担心煮鱼汤了。
第三种场景:用电安全监护接上电暖器、热水壶这种大功率设备,一旦检测到功率超过2200W,立马自动断电,保你家里平安。
场景四:远程一键全关出门时按一下,所有插座同时断电,强迫症患者的福音。
这些都是通过二次开发,利用芯步开放的HTTP接口实现的自定义联动。
二、先认识一下咱们的“主角”——10A86插座
在动手之前,先熟悉一下这个插座的情况。
产品规格速览
| 项目 | 说明 |
|---|---|
| 型号 | UNI-QC-10A(不带计量)/ UNI-QC-10A-P(带计量) |
| 安装方式 | 标准86型底盒,直接替换家里的墙插 |
| 额定功率 | 2200W(阻性负载) |
| 无线连接 | 2.4GHz WiFi |
| 核心功能 | 远程通断、定时任务、自定义联动 |
| 特色功能(计量版) | 电压、电流、功率实时上报 |
小提示:如果你需要做联动判断(比如功率超过多少自动断电),买带功率计量的版本。如果只是简单的开关控制,普通版就够了。
插座支持的控制命令
插座主要是通过下面这几个命令来控制的:
| 命令 | 功能说明 | 调用示例 |
|---|---|---|
power | 控制线路通断 | {"power":1} 开启,{"power":0}关闭 |
point | 先通后断(点动模式) | {"point":3000} 接通3秒后自动断开 |
reset | 先断后通 | {"reset":3000} 断开3秒后自动接通 |
三、核心玩法:HTTP接口怎么调?
芯步的开放接口采用的是HTTP API方式,说白了就是发HTTP请求。任何能发HTTP请求的编程语言——Python、Java、Go、JavaScript、Shell脚本——都能玩得转。
1. 接口基本信息
请求地址
http(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}请求方式:POST
数据格式:JSON
灵魂三要素:AppID、AppSecret、设备ID
2. 鉴权签名(这步很多人卡住)
芯步的接口用了签名验证,简单来说就是为了防止别人乱调你的设备。签名生成规则是这样的
sign = md5( md5(AppSecret) + ts )
白话翻译:
把你拿到的AppSecret先做一次MD5加密
把当前时间戳(秒)拼到加密结果后面
把拼起来的结果再做一次MD5
举个栗子(Shell版):
3. 控制插座通断(最基础的操作)
有了签名,剩下的就简单了。直接上代码:
Python版(简单易懂):
Java版(企业级应用常用)
4. 获取传感器数据(计量版)
如果你买的是带功率计量的版本(UNI-QC-10A-P),插座会实时上报电压、电流、功率数据。
这些数据怎么收?两种方式:
方式一:芯步平台会推送数据到你配置的服务器地址(Webhook)
方式二:通过查询接口主动拉取(具体接口看官方文档)
收到数据大概长这样
四、重头戏:自定义场景联动怎么搞?
好了,基础操作学会了,现在来点硬核的。自定义联动的核心思路其实就一句话:
"当A条件满足时,让B设备执行C动作"
实现方式有两种:自己搭服务器,或者用现成的平台。
方案一:自建联动服务(完全可控,推荐)
这个方案适合有服务器、想完全掌控数据的用户。
架构示意
实操步骤
第一步:在芯步控制台配置消息推送地址(Webhook),把传感器数据和计量数据都推到你自己的服务器。
第二步:在你服务器上写个服务来接收数据,判断逻辑。用Flask框架几行代码就能搞定:
第三步:运行服务,把服务器地址填到芯步平台的消息推送配置里。
方案二:走云端API轮询(简单低成本)
如果不想搭Webhook接收服务,也可以用定时轮询的方式。写个定时任务(比如每分钟执行一次),去查询传感器状态或功率数据,然后决定要不要控制插座。
这种方式的优点是简单,不用配置Webhook;缺点是实时性稍差(取决于轮询间隔),对服务器压力略大。
五、进阶玩法:点动模式
有时候你需要让设备只通电几秒钟(比如控制门禁电插锁、给设备复位),这时候可以用point命令。
用Python实现:
这个功能相当实用。比如智能门禁,刷卡后给门锁通电5秒让门打开;或者给鱼缸喂食器通电3秒让它转一圈出食。
六、避坑指南
1. 签名生成的坑
很多朋友第一次调接口失败,99%是签名算错了。注意这两个细节:
时间戳是秒不是毫秒
System.currentTimeMillis() / 1000,不是直接用毫秒md5结果要小写:芯步的签名md5结果是32位小写十六进制字符串
2. 设备ID从哪找
设备ID可以在芯步控制台的设备列表里看到,也可以通过接口拉取。一般在设备外壳上也能找到。
3. 离线问题
接口返回200不代表插座真的执行了命令。200只是平台收到了你的指令并尝试下发。如果插座WiFi断了,那还是白搭。
所以关键业务场景(比如功率超载断电)配合异步消息推送来确认执行结果。
4. 局域网控制
芯步也支持局域网私有化部署,适合对响应速度要求高或者不想走公网的场景。具体可以看他们的私有化方案文档。
七、写在最后
芯步的10A86插座开放了HTTP接口,让二次开发变得非常简单。无论你是想实现家庭自动化、办公室节能管理,还是做个智能鱼缸,这套方案都能搞定。
核心就是三步:
拿到AppID、AppSecret、设备ID
学会调用控制接口(记住签名规则)
写逻辑把“条件”和“动作”串起来
剩下的就看你脑洞有多大了。
等你折腾出好玩的场景,记得回来分享!