芯步智能墙壁插座10A的HTTP接口设计很简洁——签名用双层MD5,控制命令直接POST JSON即可。以下是完整的接入方案,涵盖接口鉴权、通断控制、定时任务和代码示例。
解决方案:基于芯步开放接口接入智能墙壁插座10A实现电源通断控制
一、 概述
本方案的目标是指导开发者或系统集成商,利用芯步提供的开放HTTP接口,对智能墙壁插座10A(型号:UNI-QC-10A-P)进行二次开发。通过调用简单的API接口,实现对插座电源的远程开启、远程关闭、瞬间断电重启(先断后通)以及定时通断等核心控制功能。
该方案适用于任何支持HTTP请求的编程语言(如Java, Python, PHP, Node.js, C#等),可无缝集成至Web应用、移动APP、小程序或企业内部SaaS系统。
二、 核心准备工作
在开始开发前,请确保完成以下前置步骤:
硬件准备:
获取芯步 智能墙壁插座10A 设备,并完成配网(连接2.4G WiFi)。
记录设备的唯一标识 Device ID(设备ID),通常在设备标签或控制台可见。
接口凭证:
登录芯步开发者控制台,获取以下两个关键凭证:
AppId: 应用唯一标识。
AppSecret: 开发者密钥(用于生成签名,请勿泄露)。
三、 接口鉴权机制
为防止接口被恶意篡改,芯步接口采用动态签名鉴权。每次请求均需携带 sign(签名)和 ts(时间戳)。请求URL结构如下:
https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}签名算法(Signature)
为了保证请求的安全性,系统要求进行MD5双层加密。具体步骤如下:
将
AppSecret进行第一次MD5加密,得到Sign_A。获取当前的Unix时间戳(秒级)记为
ts。注:时间戳需与请求参数中的ts值一致。拼接字符串:
Sign_Str = Sign_A + ts。将
Sign_Str进行第二次MD5加密,得到最终的sign。
公式参考:yourSign = md5( md5(AppSecret) + ts )
四、 接口功能实现
芯步的指令下发通过HTTP POST请求完成,Content-Type 需设置为 application/json。核心指令均写在 order 参数中。
1. 基础电源通断控制
这是最常用的功能,用于直接开启或关闭插座插孔的供电。
开启插座(通电)
请求体参数:
"order": {"power": 1}
关闭插座(断电)
请求体参数:
"order": {"power": 0}
2. 高级功能:瞬间断电重启(网络重启)
在远程运维场景中,常需要对连接的路由器或服务器进行“重启”。该功能通过执行先断开,再接通的操作实现。
动作描述:立即断开电源,等待指定毫秒数后,自动重新接通电源。
命令示例
"order": {"reset": 3000}释义:切断电源,3秒(3000毫秒)后自动恢复通电。
3. 高级功能:临时通电(先通后断)
适用于门禁、电磁锁或需要临时供电的场景,确保供电一段时间后自动关闭,防止遗忘。
动作描述:立即接通电源,保持通电指定毫秒数,之后自动断开。
命令示例
"order": {"point": 5000}释义:接通电源,5秒后自动关闭。
4. 批量控制
如果需要对多个插座同时下达命令,device 参数支持传入多个ID。
命令示例
释义:同时关闭ID为820720、820721、820722的三个设备。
五、 实战代码示例
以下示例展示如何使用命令行(cURL)和Python语言调用接口,实现插座开启。
环境假设
AppId=test_appAppSecret=abc123Device ID=820720目标: 开启插座。
1. CURL 命令方式(Shell)
2. Python 实现方式
注:实际开发中请确保服务器时间与标准时间误差不宜过大,否则鉴权会因时间戳偏差而失败。
六、 方案优势与特点
架构简单:设备直连WiFi,无需购买额外的网关硬件,降低了项目初期成本。
响应迅速:接口下发至设备执行的平均响应时间为80-120毫秒,适用于需要即时反馈的交互场景。
部署灵活:接口支持公网调用,也支持私有化部署。如果业务系统与设备处于同一局域网,可选择局域网IP调用模式,不经过外网,提升数据传输的安全性与稳定性。
计量扩展:如果选用带“计量版”的插座,开发者还可以通过数据上行接口实时获取当前的电压、电流、功率数据,实现能耗监测功能。
七、 注意事项
安全限制:请请一定要在服务端计算签名,避免将
AppSecret硬编码在客户端(如手机APP)中,以防密钥泄露。负载功率:该插座额定电流为10A,最大负载功率为2200W。在控制大功率设备(如空调、取暖器)前,请确认负载功率是否在额定范围内,以防安全问题。