芯步的35A联动控制智能空开支持通过HTTP接口远程控制通断,接口签名机制采用双层MD5加密保障安全性。以下方案涵盖从前期准备、签名算法到多语言代码实现的完整对接流程。
1. 解决概述
目标:通过芯步开放平台,使用HTTP POST请求对型号为UNI-DLQ-35A的智能空开进行远程合闸(通电)与分闸(断电)操作。
核心资源
目标设备:芯步 UNI-DLQ-35A 系列(含WiFi版及4G版)。
接口地址
http(s)://api.thingboot.com/{AppId}/device/control/请求方法:POST (Application/json)
鉴权方式:动态签名(Sign) + 时间戳(Ts)。
响应指标:指令下发到设备执行延迟约为 80-120ms。
2. 对接前准备与参数获取
在开始编码前,请确保完成以下准备:
注册开发者账号:登录芯步开放平台。
获取密钥:在控制台获取
AppId和AppSecret(开发者密码),这将用于生成签名。添加设备:将35A智能空开添加至平台,并在设备列表中获取该设备的唯一标识
DeviceId(通常为数字串)。
3. 接口鉴权与核心请求机制
芯步的接口采用双层MD5加密进行鉴权,无需在Header中传递Token,所有鉴权信息包含在URL参数中。
3.1 签名算法
sign = md5( md5(AppSecret) + ts )
AppSecret:开发者密码。
ts:Unix时间戳(秒级),例如:
1746000000。逻辑说明:先将
AppSecret进行一次MD5加密得到字符串A,将字符串A与时间戳拼接,再进行一次MD5得到最终的sign。
需要注意:部分旧版文档可能提及md5(md5(AppSecret)+ts),但在实际对接4G设备时,请确保时间戳同步,避免因设备与服务器时间差导致签名失效。
3.2 URL拼接示例
假设:
AppId=YOUR_APP_IDDeviceId=123456789ts=1746000000sign=CALCULATED_SIGN
则完整的请求URL为:
https://api.thingboot.com/YOUR_APP_ID/device/control/?sign=CALCULATED_SIGN&ts=1746000000
4. 远程控制指令集
针对“35A联动控制智能空开”,由于其为单路大功率控制设备,无需像4路控制器那样指定power1或power2,通常使用基础指令 power 来控制总闸。
| 操作行为 | 指令参数 (Order) | Json格式示例 | 说明 |
|---|---|---|---|
| 开启/合闸 | {"power":1} | {"device":"123456","order":{"power":1}} | 继电器吸合,电路导通 |
| 关闭/分闸 | {"power":0} | {"device":"123456","order":{"power":0}} | 继电器断开,电路切断 |
| 定时关/点动 | {"reset":5000} | {"device":"123456","order":{"reset":5000}} | 立即合闸,5秒(5000毫秒)后自动断开 |
| 定时开 | {"point":10000} | {"device":"123456","order":{"point":10000}} | 立即分闸,10秒后自动合闸 |
5. 代码对接实现示例
以下提供几种主流语言的对接代码核心片段。
5.1 Python (Requests库)
5.2 Java (Unirest)
5.3 Shell (cURL)
6. 常见异常与排错指南
在对接过程中,若遇到响应错误,可通过以下信息进行排查:
报错:签名错误
原因:时间戳
ts偏差过大,或sign计算逻辑顺序错误。解决:请检查服务器时间是否标准,并核对双层MD5的计算顺序。
报错:设备不在线
原因:35A空开未连接WiFi或4G信号不稳定。
解决:35A空开支持WiFi和4G两种联网方式,请确认设备的WiFi密码未变更或4G卡未欠费。
指令下发成功但空开不动作
原因:使用了错误的
order指令格式,例如使用了多路控制器专用的power1。解决:35A为单路控制,请统一使用
{"power":0}或{"power":1}。
负载过大保护
注意:该空开虽然额定电流为35A,阻性负载可达7000W,但如果用于电机、LED灯等感性或容性负载,功率需降至1100W以下,否则可能触发保护或损坏设备。
通过以上步骤,你可快速实现后台系统对35A智能空开的远程通断控制,并将其集成至现有的工单系统、能源管理系统或智慧楼宇平台中。