CATALOG

远程调节音柱音量的核心是利用其HTTP API接口发送{"volume":"x"}命令,关键在于正确的签名计算和设备ID获取。以下是完整的对接方案。

一、 准备工作与核心参数

在开始编码之前,你需要准备以下三个核心凭证。这些信息均可在芯步官方控制台的“开发设置”中找到

  1. AppID (应用ID):用于标识你的应用。

  2. AppSecret (应用密钥):用于生成签名,保障通信安全,请勿泄露

  3. Device ID (设备ID):智能音柱的唯一标识。你可以在控制台的设备列表中找到该20W音柱的ID

二、 接口协议与地址

芯步采用标准的HTTP POST请求进行控制,所有智能硬件(包括音柱)均通过统一入口下发指令

  • 请求地址https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • 请求方法POST

  • Content-Typeapplication/json

参数说明

  • {AppID}: 直接替换为你的应用ID。

  • {ts}: 当前Unix时间戳(秒),用于防止重放攻击。

  • {sign}: 接口签名,用于身份验证。

三、 签名生成规则

签名生成是对接的关键步骤。算法逻辑为:将AppSecret进行MD5哈希,然后拼接时间戳,再整体进行一次MD5

计算公式sign = md5( md5(AppSecret) + ts )

具体步骤拆解

  1. AppSecret 进行MD5加密,得到 hex_str

  2. hex_str 与时间戳 ts (注意是数字转字符串)直接拼接,得到 new_str

  3. new_str 再次进行MD5加密,得到最终的 sign

代码示例

  • Python:

  • Java: 逻辑同上,使用 MessageDigest.getInstance("MD5") 实现。

四、 控制音量的核心命令

根据产品手册,远程调节音量通过 order 参数中的 volume 字段实现

  • 取值范围09 (其中 0 通常代表静音,9 代表最大音量)。

  • 参数类型: 字符串或数字均可。

1. 调节音量指令示例

你想将音量调整到 5 (中等音量),JSON结构如下:

2. 完整的HTTP请求包示例

注意1878 仅为示例ID,请替换为实际的设备ID

五、 进阶:组合控制策略

在实际业务场景中,调节音量往往伴随着语音播报的需求。你可以将音量调节和文本播放在同一次请求中完成,无需分两次发送,以降低延迟。

场景示例:先确保音量为 6,然后播报“注意,车辆即将进入”。

若需要恢复默认设置或切换场景,也可以同时下发音量与音色

六、 各语言快速对接指引

除了上述的通用HTTP请求,你可以根据现有技术栈选择对应的语言进行集成:

  • Java:使用 OkHttpHttpURLConnection 构建POST请求,注意在URL中拼接签名参数

  • Go:利用 net/http 包,结构体序列化时注意大小写问题

  • Shell:可使用 curl 命令直接测试,非常适合运维脚本快速调试

七、 常见问题排查

1. 返回“签名错误”

  • 原因: 时间戳 ts 与服务器时间相差超过一定范围(通常是几分钟),或者MD5计算顺序有误。

  • 解决: 确保服务器时间同步(安装NTP服务),再次核对 md5(md5(secret)+ts) 的逻辑。

2. 音量修改后没有变化

  • 原因: 设备网络不稳定,未收到指令;或者指令格式错误导致被解析为字符串但设备固件未识别。

  • 解决: 检查设备控制台中的设备状态是否为“在线”。确认 order 内的 key 是小写的 volume

3. 是否支持局域网控制?

  • 支持: 该系列音柱支持私有化部署。如果你有局域网纯环境需求,可以联系芯步技术团队获取局域网SDK或自建MQTT服务器方案,此时API地址将变为你的内网服务器地址

总结

对接芯步的智能音柱实现远程音量调节,核心在于构造正确的签名使用标准的音量指令 {"volume":"x"} 。整个流程无复杂依赖,基于标准HTTP协议,可轻松集成到现有的Web、APP或SaaS平台中。