sonoscli¶
Skill 简介¶
Sonos 是全球知名的无线智能音响系统品牌,凭借其出色的音质和便捷的连接能力,广受音乐爱好者和家庭用户的喜爱。然而,在日常使用中,通过手机应用或物理遥控器控制 Sonos 音箱虽然直观,但在一些场景下,例如需要批量操作或远程管理时,传统的控制方式可能显得繁琐。
sonoscli 是一个基于命令行的 Sonos 控制工具,它通过开源项目 OpenClaw Skill 集成,为开发者提供了一个便捷、高效的接口,用于管理和控制本地网络中的 Sonos 音箱。该工具旨在解决传统控制方式在批量操作、远程管理及脚本自动化方面的不足,让用户能够通过简单的命令行指令实现对 Sonos 音箱的全面控制。
无论你是需要在家庭自动化系统中集成音箱控制,还是希望通过脚本实现更复杂的音频播放逻辑,sonoscli 都能提供强大的支持。作为一个开源工具,它不仅易于集成,还支持高度自定义,帮助开发者根据自身需求灵活调整功能。
主要功能¶
1. 音箱发现与管理
通过 sonos discover 命令,用户可以快速扫描本地网络中的所有 Sonos 音箱,并获取其详细信息,如 IP 地址、设备名称、当前状态等。这为后续对特定音箱进行操作提供了基础。
2. 播放控制
sonoscli 支持对音箱的播放状态进行直接控制,包括播放 (sonos play)、暂停 (sonos pause) 和停止 (sonos stop) 等。例如:
sonos play --name "Kitchen"
这将立即开始播放指定名称为 "Kitchen" 的音箱。
3. 音量调节
用户可以通过 sonos volume set 命令调整音箱的音量。例如:
sonos volume set 15 --name "Kitchen"
这将把 "Kitchen" 音箱的音量设置为 15。
4. 音箱分组管理
sonoscli 支持对音箱进行分组操作,包括查看分组状态 (sonos group status)、加入分组 (sonos group join)、退出分组 (sonos group unjoin)、创建派对模式 (sonos group party) 和单独播放 (sonos group solo) 等。例如:
sonos group join "Kitchen" "Living Room"
这将把 "Kitchen" 和 "Living Room" 两个音箱加入同一个分组。
5. 播放队列管理
用户可以查看当前播放队列 (sonos queue list)、播放指定队列 (sonos queue play) 以及清空队列 (sonos queue clear) 等。例如:
sonos queue list
这将显示当前播放队列中的所有曲目。
6. 媒体服务集成
sonoscli 支持通过 SMAPI 集成 Spotify 等媒体服务,用户可以通过命令行搜索并播放 Spotify 上的音乐。例如:
sonos smapi search --service "Spotify" --category tracks "query"
这将搜索 Spotify 上与 "query" 相关的曲目。
使用场景¶
1. 家庭自动化系统集成
在家庭自动化系统中,sonoscli 可以作为音箱控制的核心组件,通过脚本或自动化规则实现对音箱的智能控制。例如,根据时间、天气或用户位置自动调整音箱的播放状态和音量。
2. 批量操作与管理
对于拥有多个 Sonos 音箱的用户,sonoscli 提供了便捷的批量操作功能。用户可以一次性对多个音箱进行播放、暂停、音量调节等操作,极大地提高了管理效率。
3. 远程控制与管理
通过将 sonoscli 集成到远程服务器或云平台,用户可以实现对家中 Sonos 音箱的远程控制和管理。无论身处何地,只要有网络连接,用户都可以通过命令行指令控制音箱。
4. 脚本自动化
开发者可以利用 sonoscli 提供的命令行接口,编写自定义脚本,实现更复杂的音频播放逻辑。例如,根据特定事件触发播放特定音乐,或根据时间表自动调整播放列表。
5. 媒体服务集成
通过 sonoscli 的 SMAPI 接口,用户可以轻松地将 Spotify 等媒体服务集成到自己的应用中,实现更丰富的音频内容管理和播放。
如何使用¶
安装¶
sonoscli 的安装非常简单,用户可以通过以下命令使用 Go 语言安装最新版本:
go install github.com/steipete/sonoscli/cmd/sonos@latest
配置¶
在首次使用前,建议用户先运行 sonos discover 命令以扫描本地网络中的 Sonos 音箱:
sonos discover
前置条件¶
- 确保 Sonos 音箱与运行
sonoscli的设备处于同一局域网内。 - 如果 SSDP 发现失败,可以尝试指定音箱的 IP 地址:
bash sonos discover --ip <speaker-ip> - 如果使用 Spotify 搜索功能,需要配置
SPOTIFY_CLIENT_ID和SPOTIFY_CLIENT_SECRET环境变量。
示例¶
示例 1:基本控制¶
# 扫描网络中的 Sonos 音箱
sonos discover
# 查看音箱状态
sonos status --name "Kitchen"
# 播放音乐
sonos play --name "Kitchen"
# 暂停音乐
sonos pause --name "Kitchen"
# 设置音量
sonos volume set 20 --name "Kitchen"
示例 2:分组管理¶
# 查看分组状态
sonos group status
# 将 "Kitchen" 和 "Living Room" 加入同一个分组
sonos group join "Kitchen" "Living Room"
# 退出分组
sonos group unjoin "Kitchen"
# 创建派对模式
sonos group party
# 单独播放
sonos group solo "Kitchen"
总结¶
sonoscli 是一个功能强大且易于使用的 Sonos 控制工具,通过命令行接口为开发者提供了丰富的音箱控制功能。它不仅适用于家庭自动化系统集成,还能满足批量操作、远程控制、脚本自动化等多种需求。对于那些希望通过编程方式控制 Sonos 音箱的开发者来说,sonoscli 是一个理想的选择。
通过 sonoscli,用户可以更高效地管理 Sonos 音箱,实现更智能、更个性化的音频体验。无论是家庭用户还是专业开发者,都能从中受益。