智能家居技能

直接从 CLI-JAW 控制您的物理环境。智能家居技能在您的 AI 助手与物联网设备之间架起桥梁,让您可以使用自然语言命令管理 Philips Hue 照明和 Spotify 音乐播放。

概述

CLI-JAW 内置了两个智能家居技能,通过各自的 API 连接到主流设备生态系统。两个技能均以 MCP(Model Context Protocol)服务器的形式实现,当代理检测到相关请求时按需加载。

技能目标设备协议认证方式说明
openhuePhilips Hue BridgeHue API v2 (REST)Bridge API key控制 Hue 网络上的灯光、房间、场景和定时任务
spotify-playerSpotifySpotify Web APIOAuth 2.0 PKCE播放、暂停、跳过、搜索、排队及管理 Spotify 音乐播放

openhue — Philips Hue 控制

openhue 技能与本地网络上的 Philips Hue Bridge 进行通信。它提供用于控制单个灯光、房间、区域和场景的 MCP 工具。

功能

工具说明示例
get_lights列出所有灯光及其当前状态获取亮度、颜色、开关状态
set_light控制单个灯光开灯、设置亮度、更改颜色
get_rooms列出 Bridge 上定义的房间客厅、卧室、办公室
set_room控制房间内的所有灯光关闭整个房间的灯、将亮度调至 30%
get_scenes列出可用的 Hue 场景Energize、Relax、Concentrate
set_scene激活预定义的场景将"Relax"场景应用到客厅

配置

将 openhue MCP 服务器添加到您的 CLI-JAW 设置中。需要提供 Bridge IP 地址和 API 密钥。

{
  "mcpServers": {
    "openhue": {
      "command": "npx",
      "args": ["-y", "@openhue/mcp-server"],
      "env": {
        "OPENHUE_BRIDGE_IP": "192.168.1.100",
        "OPENHUE_API_KEY": "your-hue-api-key"
      }
    }
  }
}

要获取 Hue API 密钥,请按下 Hue Bridge 上的物理链接按钮,然后运行:

curl -X POST http://192.168.1.100/api \
  -d '{"devicetype":"cli-jaw#instance"}'

自然语言示例

韩语(自然语言提示)
  • "거실 불 켜줘" — 打开客厅的灯
  • "방 불 다 꺼줘" — 关闭卧室所有的灯
  • "불 밝기 50%로 해줘" — 将亮度设置为 50%
  • "불 따뜻한 색으로 바꿔줘" — 将灯光切换为暖白色
  • "집중 모드로 불 바꿔줘" — 激活 Concentrate 场景
  • "릴렉스 씬 틀어줘" — 激活 Relax 场景
英语示例
  • "Turn on the office lights"
  • "Dim the living room to 30%"
  • "Set all lights to warm white"
  • "Activate the Relax scene in the bedroom"
  • "Turn off all the lights"

工作原理

当您说类似"불 켜줘"这样的话时,CLI-JAW 会通过其技能匹配系统路由请求:

  1. 代理识别出该意图是一个智能家居命令
  2. 加载 openhue MCP 服务器(如果尚未运行)
  3. 代理调用相应的工具(例如,set_room 并设置 on: true
  4. Hue Bridge 执行命令并返回更新后的状态
  5. 代理以自然语言确认操作结果

spotify-player — Spotify 控制

spotify-player 技能连接到 Spotify Web API,让 CLI-JAW 能够完全控制音乐播放。它支持搜索曲目、管理队列、控制播放以及浏览播放列表。

功能

工具说明示例
play开始或恢复播放播放曲目、专辑或播放列表
pause暂停当前播放暂停音乐
next跳到下一首曲目跳过当前歌曲
previous返回上一首曲目重新播放上一首歌曲
search搜索曲目、专辑、艺术家查找"Bohemian Rhapsody"
queue将曲目添加到播放队列将一首歌加入下一首播放
get_playback获取当前播放状态正在播放什么
set_volume调整播放音量将音量设置为 60%
get_playlists列出用户播放列表浏览已保存的播放列表
set_shuffle切换随机播放模式启用或禁用随机播放
set_repeat设置重复播放模式重复单曲、上下文或关闭

配置

添加 spotify-player MCP 服务器,并填入您的 Spotify OAuth 凭据。

{
  "mcpServers": {
    "spotify-player": {
      "command": "npx",
      "args": ["-y", "spotify-player-mcp"],
      "env": {
        "SPOTIFY_CLIENT_ID": "your-client-id",
        "SPOTIFY_CLIENT_SECRET": "your-client-secret",
        "SPOTIFY_REDIRECT_URI": "http://localhost:8888/callback"
      }
    }
  }
}

OAuth 设置

  1. 前往 Spotify Developer Dashboard
  2. 创建一个新应用,并将重定向 URI 设置为 http://localhost:8888/callback
  3. 将 Client ID 和 Client Secret 复制到您的配置文件中
  4. 首次使用时,CLI-JAW 将打开浏览器窗口进行 Spotify 授权
  5. 授权通过后,刷新令牌将缓存在本地,供后续会话使用

自然语言示例

韩语(自然语言提示)
  • "음악 틀어줘" — 恢复播放
  • "재즈 음악 틀어줘" — 搜索并播放爵士音乐
  • "다음 곡으로 넘겨줘" — 跳到下一首曲目
  • "볼륨 좀 줄여줘" — 降低音量
  • "지금 뭐 듣고 있어?" — 显示当前播放信息
  • "이 노래 반복 재생해줘" — 重复播放当前曲目
  • "셔플 켜줘" — 启用随机播放模式
  • "BTS 노래 틀어줘" — 搜索并播放 BTS
英语示例
  • "Play some lo-fi beats"
  • "What song is playing right now?"
  • "Skip this track"
  • "Add Blinding Lights to the queue"
  • "Set volume to 40%"
  • "Show my playlists"

组合工作流

当智能家居技能彼此结合使用,或与其他 CLI-JAW 功能搭配时,将变得更加强大。由于代理能够理解上下文,您可以自然地发出复合命令。

多技能示例
  • "영화 볼 준비 해줘" — 将灯光调暗至 20%,激活 Relax 场景,暂停 Spotify
  • "작업 모드로 바꿔줘" — 将灯光设置为 Concentrate 场景,以低音量播放 lo-fi 播放列表
  • "잘 준비 해줘" — 关闭所有灯光,停止音乐
  • "Set up movie night" — 同时调整灯光和音频设置
# Example: the agent interprets "영화 볼 준비 해줘" as:
1. openhue → set_room(room="Living Room", brightness=20)
2. openhue → set_scene(scene="Relax", room="Living Room")
3. spotify-player → pause()

故障排除

问题原因解决方案
找不到 Hue BridgeIP 地址错误或 Bridge 离线验证 OPENHUE_BRIDGE_IP 并确保 Bridge 与您在同一网络
API 密钥被拒绝密钥已过期或从未创建按下 Bridge 链接按钮并重新生成密钥
Spotify 认证失败凭据无效或重定向 URI 不匹配检查 Client ID/Secret 并确保重定向 URI 完全匹配
没有活跃设备Spotify 没有活跃的播放设备先在设备上打开 Spotify,然后重试命令
MCP 服务器无法启动找不到 npx 或网络问题确保已安装 Node.js 且 npx 在您的 PATH 中
灯光响应缓慢与 Bridge 的网络延迟如果可能,为 Hue Bridge 使用有线连接

环境变量参考

变量技能必填说明
OPENHUE_BRIDGE_IPopenhuePhilips Hue Bridge 的本地 IP 地址
OPENHUE_API_KEYopenhue通过 Bridge 链接按钮生成的 API 密钥
SPOTIFY_CLIENT_IDspotify-player来自 Spotify Developer Dashboard 的 OAuth Client ID
SPOTIFY_CLIENT_SECRETspotify-player来自 Spotify Developer Dashboard 的 OAuth Client Secret
SPOTIFY_REDIRECT_URIspotify-playerOAuth 重定向 URI(必须与 Dashboard 配置匹配)