芯步的智能开关支持完整的HTTP API对接,核心是通过签名鉴权后向指定设备下发JSON命令。下面从接口原理、签名算法到不同开关类型的命令格式逐一说明。
一、 技术背景概述
芯步的智能硬件产品(如智能墙壁开关、智能照明控制器等)均开放了标准的HTTP API接口。这意味着你可以通过任何支持HTTP协议的编程语言(如Java, Python, PHP, Node-RED等)或工具(如Postman),向云端发送特定的POST请求,从而实现对物理照明线路的“开”与“关”。
核心逻辑控制端 -> HTTP POST (JSON命令) -> 芯步云平台 -> WiFi/4G -> 智能硬件设备 -> 继电器吸合/断开 -> 照明电源通/断。
二、 对接前的准备工作
在编写代码之前,你需要准备以下三个关键凭证,这些信息通常在你购买设备并注册芯步账号后,在“控制台” -> “开发设置”中获取:
AppID (应用ID):用于标识你是哪个开发者或应用。
AppSecret (开发者密码):用于生成签名,保障接口安全,请勿泄露。
Device ID (设备ID):你购买的硬件设备唯一标识,可以在控制台设备列表查看,通常是一串数字(如
1878或820720)。
三、 核心接口地址与鉴权机制
芯步的API接口安全性通过动态签名来保证,这意味着你每次请求都需要计算一个新的签名,防止请求被伪造。
请求地址
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}参数解析
{AppID}: 替换为你的应用ID。ts: 当前Unix时间戳(秒)。这是为了防止“重放攻击”,一般服务端会校验时间戳的有效期(如5分钟内)。sign: 签名。这是接入最核心的一步。
签名生成算法签名生成的公式为:
sign = MD5( MD5(AppSecret) + ts )*(注意:部分旧版文档可能没有“+”号,直接是字符串拼接,实际通常指将MD5后的结果与ts字符串直接拼接再MD5)*生成步骤:
将你的
AppSecret进行一次MD5加密,得到Secret_MD5。将
Secret_MD5与 时间戳ts拼接成一个新的字符串。将拼接后的字符串再次进行MD5加密,得到最终的
sign。
四、 请求体(Body)构造详解
接口采用 POST 方法,Content-Type 为 application/json。请求体(JSON格式)包含两个字段:
device: 设备ID。order: 指令对象。
根据你使用的设备类型不同(1路、2路、4路或多路控制器),order 里的命令也不同。
五、 针对“照明电源开关控制”的具体命令示例
针对芯步最常见的几类硬件,以下是具体的命令参考:
第一种场景:控制智能触摸墙壁开关(1路或2路)
适用于控制单个灯光回路的开闭,例如卧室主灯。
控制第1路开
order传值:{"power1": 1}(1代表开,0代表关)控制第2路关
order传值:{"power2": 0}
代码示例片段(JSON Body):
上述命令表示:让设备ID为1878的设备,打开第1路线路,即照明灯亮。
第二种场景:控制智能照明控制器(4路/8路/多路)
适用于需要集中控制多层楼、多个区域的照明,例如智能照明配电箱,支持同时控制多路。
并发控制多路
order传值:{"power1": 1, "power2": 0, "power3": 1}批量控制(使用batch字段)
order传值:{"batch": {"relay": [1,3,5], "power": 0}}(关闭第1、3、5路)
代码示例片段(JSON Body):
上述命令表示:打开第1、3路照明,关闭第2、4路照明。
第三种场景:复合控制(点动/延时控制)
有时候不仅仅需要简单的“开”或“关”,还需要“按一下,接通2秒后自动断开”(常用于门禁、警号或特定逻辑照明)。
先通后断
order传值:{"point1": 3000}(第1路先接通,3000毫秒后自动断开)先断后通
order传值:{"reset1": 2000}(第1路先断开,2000毫秒后自动接通)
六、 多语言对接逻辑示例
无论用什么语言,逻辑都是:计算签名 -> 拼接URL -> 发送POST(JSON)请求。
通用逻辑步骤:
定义变量:
AppID,AppSecret,DeviceID,ts(当前时间戳)。生成Sign:
sign = md5( md5(AppSecret) . ts )。请求URL:
https://api.thingboot.com/+AppID+/device/control/?sign=+sign+&ts=+ts。请求Header:
Content-Type: application/json。请求Body:
{"device": "DeviceID", "order": {"power1": 1}}。发送请求。
七、 故障排查与
签名校验失败 (401/403)
检查时间戳
ts是否为整数型的秒数,毫秒是错误的。检查MD5加密后的字符串是否全部为小写。
确认拼接顺序:
md5( md5(secret) + ts ),注意括号层级。
设备离线
命令请求成功返回并不代表设备执行。需要检查硬件是否通电且WiFi信号良好。芯步的控制台通常可以查看设备最后在线时间。
命令格式错误
注意
order标准格式是JSON对象,不是字符串。例如"order": {"power":1}是正确的,"order": "{\"power\":1}"是错误的。
局域网与私有化
如果对响应速度要求比较高(工业级),且不在乎公网依赖,芯步硬件支持局域网私有化部署,可以直接通过设备本地IP发送HTTP命令,无需经过云端。
通过以上方案,你可以快速完成从注册、鉴权到控制照明电源的完整逻辑对接。