CATALOG

芯步的智能开关支持完整的HTTP API对接,核心是通过签名鉴权后向指定设备下发JSON命令。下面从接口原理、签名算法到不同开关类型的命令格式逐一说明。

一、 技术背景概述

芯步的智能硬件产品(如智能墙壁开关、智能照明控制器等)均开放了标准的HTTP API接口。这意味着你可以通过任何支持HTTP协议的编程语言(如Java, Python, PHP, Node-RED等)或工具(如Postman),向云端发送特定的POST请求,从而实现对物理照明线路的“开”与“关”。

核心逻辑控制端 -> HTTP POST (JSON命令) -> 芯步云平台 -> WiFi/4G -> 智能硬件设备 -> 继电器吸合/断开 -> 照明电源通/断

二、 对接前的准备工作

在编写代码之前,你需要准备以下三个关键凭证,这些信息通常在你购买设备并注册芯步账号后,在“控制台” -> “开发设置”中获取:

  1. AppID (应用ID):用于标识你是哪个开发者或应用。

  2. AppSecret (开发者密码):用于生成签名,保障接口安全,请勿泄露

  3. Device ID (设备ID):你购买的硬件设备唯一标识,可以在控制台设备列表查看,通常是一串数字(如 1878820720)。

三、 核心接口地址与鉴权机制

芯步的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)*

    生成步骤:

    1. 将你的 AppSecret 进行一次MD5加密,得到 Secret_MD5

    2. Secret_MD5 与 时间戳 ts 拼接成一个新的字符串。

    3. 将拼接后的字符串再次进行MD5加密,得到最终的 sign

四、 请求体(Body)构造详解

接口采用 POST 方法,Content-Typeapplication/json请求体(JSON格式)包含两个字段:

  1. device: 设备ID。

  2. 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)请求

通用逻辑步骤:

  1. 定义变量AppID, AppSecret, DeviceID, ts(当前时间戳)。

  2. 生成Signsign = md5( md5(AppSecret) . ts )

  3. 请求URLhttps://api.thingboot.com/ + AppID + /device/control/?sign= + sign + &ts= + ts

  4. 请求HeaderContent-Type: application/json

  5. 请求Body{"device": "DeviceID", "order": {"power1": 1}}

  6. 发送请求

七、 故障排查与

  1. 签名校验失败 (401/403)

    • 检查时间戳ts是否为整数型的秒数,毫秒是错误的。

    • 检查MD5加密后的字符串是否全部为小写。

    • 确认拼接顺序:md5( md5(secret) + ts ),注意括号层级。

  2. 设备离线

    • 命令请求成功返回并不代表设备执行。需要检查硬件是否通电且WiFi信号良好。芯步的控制台通常可以查看设备最后在线时间。

  3. 命令格式错误

    • 注意order标准格式是JSON对象,不是字符串。例如 "order": {"power":1} 是正确的,"order": "{\"power\":1}" 是错误的。

  4. 局域网与私有化

    • 如果对响应速度要求比较高(工业级),且不在乎公网依赖,芯步硬件支持局域网私有化部署,可以直接通过设备本地IP发送HTTP命令,无需经过云端

通过以上方案,你可以快速完成从注册、鉴权到控制照明电源的完整逻辑对接。