芯步16A插座提供完整的HTTP API接口,支持远程通断控制和状态查询。以下方案涵盖接口协议、签名算法、核心命令及多语言代码示例,帮助你快速完成对接。
1. 产品概述与准备
1.1 适用产品
本方案适用于芯步以下16A规格的智能插座/墙壁插座,这些设备均支持HTTP接口远程控制
智能墙壁插座16A(86型,替换墙壁插座)
智能插座16A(插墙式,即插即用)
两种均分为不带计量版和带功率计量版
1.2 核心参数
额定功率:MAX 3500W(适用于2匹空调、热水器等大功率设备)
工作电压:100-250V AC
网络连接:仅支持2.4GHz WiFi,无需网关
控制方式:HTTP API(支持公网/局域网)
1.3 准备事项
在开始开发前,需要准备以下三项信息:
| 准备项 | 获取方式 | 用途 |
|---|---|---|
| AppID | 登录芯步开发者后台,在“控制台”创建应用后获取 | 标识应用,拼接URL路径 |
| AppSecret | 应用创建成功后生成 | 用于生成签名鉴权 |
| Device ID | 设备配网后在后台显示,或通过设备列表接口拉取 | 指定要控制的设备 |
2. 接口协议与鉴权
2.1 请求概览
请求地址
http(s)://api.thingboot.com/{AppId}/device/control/请求方式
POST数据格式
application/x-www-form-urlencoded或JSON鉴权方式:URL参数签名(
Sign)和 时间戳(ts)
2.2 签名算法
为防止接口被篡改,每次请求需在URL中携带签名。算法步骤如下:
将
AppSecret进行第一次MD5加密得到encoded_secret。获取当前Unix时间戳(秒级)作为
ts。拼接字符串
temp = encoded_secret + ts。将
temp进行第二次MD5加密,得到最终的sign。
公式
sign = MD5( MD5(AppSecret) + ts )
2.3 URL 拼接示例
假设 AppId = “abc123”, 计算出的 sign = “ABC123DEF”, ts = “1715678900”,则最终的请求URL为:https://api.thingboot.com/abc123/device/control/?sign=ABC123DEF&ts=1715678900
3. 远程控制命令详解
通过 order 参数下发指令,支持三种核心控制模式,需要特别注意参数是字符串还是数字。
3.1 即时通断(基本开关)
直接控制插座的通电或断电,是最常用的功能
注:部分设备或文档中为字符串类型,如 {"power":"1"},通常兼容性均可,优先使用数字格式。
3.2 先通后断(点动模式)
常用于需要临时供电(如控制电控锁、设备重启、避免涌流冲击)的场景。执行顺序:立即通电 -> 保持通电 -> 自动断电,参数单位为毫秒
3.3 先断后通(重启模式)
适用于网络设备远程重启(如路由器、NAS)。执行顺序:立即断电 -> 保持断电 -> 自动通电
如果设备是16A计量版,还可以通过接口获取当前的电压、电流、功率等实时数据,具体可在官方文档《功率计量版产品手册》中查阅。
4. 开发实战示例
以下分别演示在命令行、Python和NodeJS环境下如何控制插座关闭。
4.1 cURL 命令行示例
适用于Shell脚本或直接测试:
4.2 Python 代码示例
使用 requests 库实现,逻辑清晰,适合集成到自动化流程中
4.3 NodeJS 代码示例
适用于服务端或物联网网关开发
5. 常见问题和需要注意的点
网络配置
设备仅支持 2.4GHz WiFi,不支持5G频段。
如果你的系统部署在局域网内,设备与服务器在同一网段下,控制响应速度将更快(约80-120ms),且不依赖外网。
设备状态同步
HTTP请求是“指令下发”,若需确认插座是否真的断电,有两种方式:一是查询接口获取设备状态,二是利用设备的“实时状态上报”功能——设备状态变化时会主动推送消息到你的服务器。
返回值判断
通常情况下,HTTP状态码
200仅代表指令接收成功。具体的执行结果(如设备离线、命令错误)请查看返回包体内的code和msg字段。
安全性
请一定要在服务器端计算签名,避免将
AppSecret硬编码在客户端(如手机APP)中,以防泄露。
6. 典型应用场景示例
机房/弱电箱远程重启:将路由器或光猫电源插入16A插座,当网络故障时,调用
{"reset": 10000}(断电10秒后重启),无需人工前往现场。大功率设备定时控制:结合定时任务,每天早上8点调用
{"power":1}开启热水器,晚上10点调用{"power":0}关闭,节能省电。工业环境联动:在厂房中,传感器检测到温度过高时,系统自动调用
{"power":0}切断大功率散热风扇电源进行紧急停机。