CATALOG

芯步的开放接口基于HTTP/MQTT协议,采用JSON命令体,非常适合实现自定义情景模式。以下方案围绕“呼吸/闪烁/流水”三种模式的切换,给出了完整的接口调用逻辑、参数设计和核心代码示例。

1. 解决概述

在智能家居场景中,通常由传感器(如人体传感器、门磁)或定时任务触发情景联动。本方案的核心逻辑是:您的云端服务器(或本地服务器)接收触发事件,然后通过调用芯步的开放接口 device/control,向指定的灯带设备下发包含特定参数的 JSON 命令,从而改变灯光效果。

适用场景:客厅观影模式(呼吸灯)、安防报警(红色闪烁)、派对模式(彩色流水)。

2. 核心技术路径

芯步开放接口支持两种调用方式,针对情景模式切换这种实时性要求较高的场景,推荐以下两种方案:

  • HTTP API 调用(推荐用于逻辑联动):您的服务器作为调用方,在事件触发时向 api.thingboot.com 发送 POST 请求

  • MQTT 直连(推荐用于低延迟或局域网):您的服务器作为 MQTT Client,直接向设备发布控制指令,响应速度更快(约 80-120ms)

本方案以 HTTP API 调用为例进行详细说明。

3. 接口接入准备

在开始编码前,您需要准备以下三个核心要素:

  1. AppID 与 AppSecret:登录芯步控制台,在“开发设置”中获取,用于生成接口签名(Sign)

  2. 设备ID:即灯带产品的 Device ID。您可以在控制台的设备列表中找到,或者在设备配网成功后通过回调获取

  3. 签名算法:芯步采用双重 MD5 加密:

    • 公式Sign = md5( md5(AppSecret) + ts )

    • 说明ts 为当前 Unix 时间戳(秒)。先将 AppSecret 进行一次 MD5 加密,然后拼接上时间戳,再对整个字符串进行一次 MD5 加密

4. “呼吸/闪烁/流水”模式的物模型设计

要实现这几种模式,通常需要控制灯带的三个维度:开关状态模式编号颜色/速度参数。假设您对接的是一款可编程全彩灯带,其支持的字段如下:

字段名类型说明对应模式的值示例
powerint电源开关1 (开启)
modeint灯光效果模式1(呼吸), 2(闪烁/警报), 3(流水/跑马)
colorstringRGB 颜色值#FF0000 (红), #00FF00 (绿)
speedint变化速度1-100 区间

注:具体参数名称请以您持有的灯带产品手册为准,您可以在芯步官网的“产品手册”或“控制台”的“功能定义”中查看。

5. 接口调用详细实现

假设您的灯带设备 ID 为 1234567,AppId 为 YOUR_APP_ID

5.1 签名与请求头构建 (示例逻辑)

在发起请求前,需要动态生成 tssign

步骤 1:获取时间戳与计算签名

步骤 2:组合请求 URL

5.2 情景 1:切换至“呼吸模式”

“呼吸模式”通常模拟人呼吸的节奏,灯光渐亮渐灭,氛围柔和。通常用于入睡模式或影院模式。

  • 命令逻辑:开启设备,设置模式为呼吸(mode=1),设置颜色为暖黄(#FFAA00),速度设置为中速(30)。

注意:根据芯步文档,order 内容需要是 JSON 对象

5.3 情景 2:切换至“闪烁模式”

“闪烁模式”通常用于警示(配合门磁报警)或节奏感较强的场景。

  • 命令逻辑:开启设备,设置为闪烁模式(mode=2),颜色为红色(#FF0000),速度设置为最快(100)以产生急促感。

5.4 情景 3:切换至“流水模式”

“流水模式”(跑马灯)通常用于派对或迎宾场景,灯光在灯带上流动。

  • 命令逻辑:开启设备,设置为流水模式(mode=3),颜色为彩色渐变(具体取决于设备对彩色的定义,通常是动态效果),速度设置为高速(80)。

5.4 关键 HTTP 请求代码示例 (Python requests)

6. 情景联动触发逻辑配置

要实现“对接”,您需要编写一个业务逻辑服务(例如使用 Node-RED, HomeAssistant 脚本,或自建 Python 服务),逻辑如下:

  1. 监听触发源

    • 场景 A:您的人体传感器检测到无人移动 -> 触发“呼吸模式”(省电/待机)。

    • 场景 B:您的烟雾报警器报警 -> 触发“闪烁模式”(红色高速闪)。

    • 场景 C:您的门磁检测到打开(回家模式)-> 触发“流水模式”(欢迎效果)。

  2. 条件判断:编写代码判断传感器状态。

  3. 执行动作:调用上述第 4 节中的 HTTP 请求,切换对应灯带的模式。

7. 常见问题与优化

  1. 反馈确认机制芯步的 device/control 接口返回 HTTP 200 仅代表云端收到了指令,并不保证设备因离线或故障未执行。在关键场景(如安防闪烁)中,您开启“消息推送”功能,订阅设备的状态变更回调,确认 mode 字段确实已变为目标值

  2. 多设备群控如果您有多个灯带(例如客厅灯带和电视背景灯带),希望在切换情景模式时同步变化,可以在请求的 device 参数中使用逗号 , 拼接多个设备 ID,例如 "device": "1234567,2345678"注意:多设备必须属于同一产品类别且命令格式完全相同

  3. 局域网与公网切换如果您对延迟极其敏感(如音乐律动流水效果),方案采用 MQTT 局域网模式。芯步设备支持私有化部署,在局域网内直接通过 MQTT 协议控制,可摆脱外网延迟

通过以上步骤,您可以利用芯步的开放接口轻松实现“呼吸/闪烁/流水”模式的智能情景联动。