用 OpenClaw 打造语音智能家居中枢

75次阅读

用 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 #语音控制

正文完