用 OpenClaw 打造语音智能家居中枢
想一句话控制灯光、音响、音乐?OpenClaw 集成 Sonos、Hue、Spotify 等技能,让你用语音或消息就能操控全屋设备。本文带你搭建智能家居自动化中枢。
01 智能家居自动化是什么?
智能家居自动化 是指通过 OpenClaw 集成各类智能设备,实现灯光、音响、音乐等设备的统一控制和自动化场景编排。
核心能力: – 🔊 音响控制 — Sonos 音响播放、分组、音量调节 – 💡 灯光管理 — Hue 灯光开关、亮度、色温、场景 – 🎵 音乐播放 — Spotify 搜索、播放、设备切换 – 🤖 场景编排 — 多设备联动,一键执行
02 为什么选 OpenClaw 做智能家居?
传统智能家居的痛点:
OpenClaw 优势:
-
🔊 Sonos — 音响控制、分组播放
-
💡 Hue — 灯光调节、场景切换
-
🎵 Spotify — 音乐播放、歌单管理
-
🤖 AI 集成 — 语音指令、智能推荐
03 环境准备
安装依赖
# 1. Sonos CLI
go install github.com/steipete/sonoscli/cmd/sonos@latest
# 2. OpenHue CLI
brew install openhue/cli/openhue-cli
# 3. Spotify CLI (spogo)
brew install steipete/tap/spogo
# 4. 验证安装
sonos --version
openhue --version
spogo --version
初始配置
Sonos:
# 发现音响
sonos discover
# 查看状态
sonos status --name "Living Room"
Hue:
# 首次配对(需按 Hue Bridge 按钮)openhue get light
# 查看房间
openhue get room
# 查看场景
openhue get scene
Spotify:
# 导入浏览器 Cookie
spogo auth import --browser chrome
# 查看设备
spogo device list
04 基础控制
Sonos 音响控制
# 播放 / 暂停
sonos play --name "Kitchen"
sonos pause --name "Kitchen"
# 调节音量
sonos volume set 20 --name "Kitchen"
sonos volume up 5 --name "Kitchen"
# 分组播放(全屋派对模式)sonos group party
# 取消分组
sonos group solo
# 播放收藏
sonos favorites open "My Playlist"
Hue 灯光控制
# 开关灯
openhue set light "Bedroom Lamp" --on
openhue set light "Bedroom Lamp" --off
# 调节亮度(0-100)openhue set light "Living Room" --on --brightness 50
# 调节色温(暖到冷:153-500)openhue set light "Living Room" --on --temperature 300
# 设置颜色
openhue set light "Bedroom Lamp" --on --color red
openhue set light "Bedroom Lamp" --on --rgb "#FF5500"
# 控制整个房间
openhue set room "Bedroom" --on --brightness 30
# 激活场景
openhue set scene "Relax" --room "Bedroom"
Spotify 音乐控制
# 播放 / 暂停
spogo play
spogo pause
# 下一首 / 上一首
spogo next
spogo prev
# 搜索音乐
spogo search track "Bohemian Rhapsody"
spogo search album "Abbey Road"
# 播放歌单
spogo play --uri "spotify:playlist:xxx"
# 如何获取 Spotify URI:# 1. 在 Spotify App 中右键点击歌单 / 专辑 / 歌曲
# 2. 选择 " 分享 " -> " 复制 Spotify 链接 "
# 3. 或使用 " 分享 " -> " 复制 URI"(开发菜单中)# 4. 链接格式:spotify:playlist:xxxxx 或 https://open.spotify.com/playlist/xxxxx
# 切换设备
spogo device set "Living Room Speaker"
# 查看状态
spogo status
05 实战演示
案例 1:语音控制”晚安模式”
场景: 一句话关闭所有灯光、降低音量、播放白噪音
#!/bin/bash
# goodnight.sh
echo "🌙 启动晚安模式..."
# 1. 调暗卧室灯光
openhue set room "Bedroom" --on --brightness 10 --temperature 450
# 2. 关闭其他房间灯光
openhue set room "Living Room" --off
openhue set room "Kitchen" --off
# 3. 降低音响音量
sonos volume set 15 --name "Bedroom"
# 4. 播放白噪音歌单
spogo play --uri "spotify:playlist:xxx" # 替换为你的白噪音歌单 URI
echo "✅ 晚安模式已激活 "
语音触发:
# 通过 OpenClaw 语音输入
tts " 晚安模式已启动,祝你好梦 "
案例 2:‘回家模式’自动触发
场景: 检测到手机连上家庭 WiFi,自动开灯、播放音乐
#!/bin/bash
# welcome-home.sh
# 检查是否在家(通过路由器检测手机 MAC)PHONE_MAC="xx:xx:xx:xx:xx:xx" # 替换为你的手机 MAC 地址
IS_HOME=$(arp -a | grep -i "$PHONE_MAC")
if [-n "$IS_HOME"]; then
echo "🏠 欢迎回家!"
# 1. 开灯
openhue set room "Living Room" --on --brightness 80 --temperature 300
openhue set room "Kitchen" --on --brightness 60
# 2. 播放欢迎音乐
sonos play --name "Living Room"
sonos volume set 30 --name "Living Room"
# 3. 语音欢迎
tts " 欢迎回家!已为你打开灯光和音乐 "
else
echo " 未检测到设备 "
fi
配合 cron 定时检测:
# 每 5 分钟检测一次
*/5 * * * * /path/to/welcome-home.sh
注意: 脚本中使用
PHONE_MAC等变量需要在脚本内定义,或使用source /path/to/config.sh加载配置文件。
案例 3:‘电影模式’一键切换
场景: 看电影时自动调暗灯光、切换音响输入
#!/bin/bash
# movie-mode.sh
echo "🎬 启动电影模式..."
# 1. 调暗客厅灯光
openhue set room "Living Room" --on --brightness 5
# 2. 关闭其他灯光
openhue set room "Kitchen" --off
openhue set room "Bedroom" --off
# 3. 音响分组(全屋同步)sonos group join "Living Room" "Kitchen"
# 4. 播放电影配乐
spogo search playlist "Epic Soundtracks"
spogo play
# 5. 设置音量
sonos volume set 40 --name "Living Room"
echo "✅ 电影模式就绪 "
案例 4:定时场景切换
场景: 根据时间自动调整家居状态
#!/bin/bash
# auto-scenes.sh
# 从命令行参数获取小时,默认为当前小时
HOUR="${1:-$(date +%H)}"
case $HOUR in
07)
echo "☀️ 早安模式 "
openhue set room "Bedroom" --on --brightness 50 --temperature 250
sonos play --name "Kitchen"
spogo play --uri "spotify:playlist:morning" # 替换为你的早晨歌单 URI
;;
12)
echo "🍽️ 午餐模式 "
openhue set room "Kitchen" --on --brightness 100
sonos pause --name "Living Room"
;;
18)
echo "🌆 晚餐模式 "
openhue set room "Dining" --on --brightness 70 --temperature 350
openhue set scene "Warm Dinner" --room "Dining"
;;
22)
echo "🌙 晚安模式 "
./goodnight.sh
;;
esac
Cron 配置(支持直接调用):
# 每小时执行一次,自动根据当前小时触发对应场景
0 * * * * /path/to/auto-scenes.sh
# 或者指定小时触发特定场景
0 7 * * * /path/to/auto-scenes.sh 07
0 12 * * * /path/to/auto-scenes.sh 12
0 18 * * * /path/to/auto-scenes.sh 18
0 22 * * * /path/to/auto-scenes.sh 22
案例 5:语音点歌系统
场景: 语音说”播放周杰伦的歌”,自动搜索并播放
#!/bin/bash
# voice-music.sh
QUERY="$1"
echo "🎵 搜索: $QUERY"
# 搜索并播放
spogo search track "$QUERY"
spogo play
# 语音反馈
sonos status --name "Living Room" | grep "Track" | while read line; do
TRACK=$(echo $line | cut -d: -f2)
tts " 正在播放: $TRACK"
done
使用:
./voice-music.sh " 晴天 "
06 进阶技巧
技巧 1:结合传感器自动化
#!/bin/bash
# motion-light.sh
# 读取运动传感器(通过 Home Assistant API)MOTION=$(curl -s http://homeassistant:8123/api/states/binary_sensor.living_room_motion \
-H "Authorization: Bearer $HA_TOKEN" | jq -r '.state')
if ["$MOTION" = "on"]; then
# 有人移动,开灯
openhue set room "Living Room" --on --brightness 80
else
# 无人,关灯
openhue set room "Living Room" --off
fi
技巧 2:多房间同步控制
#!/bin/bash
# multi-room.sh
# 同时控制多个房间
for room in "Living Room" "Kitchen" "Bedroom"; do
sonos volume set 30 --name "$room" &
done
wait
echo " 所有房间音量已同步 "
技巧 3:场景记忆与恢复
#!/bin/bash
# scene-memory.sh
ACTION="$1" # save 或 restore
if ["$ACTION" = "save"]; then
# 保存当前状态
sonos status --name "Living Room" > ~/.config/home-scene/sonos.state
openhue get light > ~/.config/home-scene/hue.state
echo " 场景已保存 "
elif ["$ACTION" = "restore"]; then
# 恢复之前的状态
# 解析保存的状态并恢复
echo " 恢复场景中..."
fi
技巧 4:音乐闹钟
#!/bin/bash
# music-alarm.sh
# 设置闹钟时间
ALARM_TIME="07:00"
while true; do
CURRENT=$(date +%H:%M)
if ["$CURRENT" = "$ALARM_TIME"]; then
# 渐亮灯光
for i in {1..10}; do
BRIGHTNESS=$((i * 10))
openhue set room "Bedroom" --on --brightness $BRIGHTNESS
sleep 30
done
# 播放音乐
sonos volume set 20 --name "Bedroom"
sonos play --name "Bedroom"
spogo play --uri "spotify:playlist:gentle-wake" # 替换为你的唤醒歌单 URI
# 语音播报
tts " 早上好!现在是 $(date +%H) 点 $(date +%M) 分 "
break
fi
sleep 30
done
07 常见问题
Q1: Sonos 发现不了设备
解决:
# 指定 IP
sonos discover --ip 192.168.1.100
# 检查网络权限(macOS)# 设置 -> 隐私与安全 -> 本地网络 -> 允许 Terminal/Node
Q2: Hue 首次配对失败
解决: 1. 确保 Hue Bridge 和电脑在同一网络 2. 按 Hue Bridge 上的圆形按钮 3. 30 秒内运行 openhue get light
Q3: Spotify 播放失败
解决:
# 重新导入 Cookie
spogo auth import --browser chrome
# 检查 Premium 账户
spogo status
Q4: 如何实现更复杂的自动化?
建议: 结合 Home Assistant
# OpenClaw 调用 Home Assistant API
curl -X POST http://homeassistant:8123/api/services/light/turn_on \
-H "Authorization: Bearer $TOKEN" \
-d '{"entity_id": "light.living_room", "brightness": 200}'
08 总结
下一步: – 结合语音输入实现完整语音控制 – 探索与手机节点联动(远程控制)– 搭建 Home Assistant + OpenClaw 混合中枢
本文是 OpenClaw 进阶技能系列第 7 篇,下一篇:《OpenClaw + 飞书:企业自动化完全指南》
#OpenClaw #智能家居 #Sonos #Hue #Spotify #语音控制 onos #Hue #Spotify #语音控制 �控制)– 搭建 Home Assistant + OpenClaw 混合中枢
本文是 OpenClaw 进阶技能系列第 7 篇,下一篇:《OpenClaw + 飞书:企业自动化完全指南》
#OpenClaw #智能家居 #Sonos #Hue #Spotify #语音控制 �《OpenClaw + 飞书:企业自动化完全指南》*
#OpenClaw #智能家居 #Sonos #Hue #Spotify #语音控制 #Hue #Spotify #语音控制 �控制)– 搭建 Home Assistant + OpenClaw 混合中枢
本文是 OpenClaw 进阶技能系列第 7 篇,下一篇:《OpenClaw + 飞书:企业自动化完全指南》
#OpenClaw #智能家居 #Sonos #Hue #Spotify #语音控制 �《OpenClaw + 飞书:企业自动化完全指南》*
#OpenClaw #智能家居 #Sonos #Hue #Spotify #语音控制