告别繁琐!无需 Node-RED / 巴法云 / 额外硬件,仅用 HA 自动化实现小爱音箱直接控制 PVE 主机。

市面上常见的方案(音箱+HA+Node-RED / 巴法云 / 小米中枢网关)略显复杂。本文将分享一种仅依赖 Home Assistant (HA) 自动化的简洁方案,安全高效地实现小爱同学语音控制 PVE 宿主机唤醒/关机以及虚拟机启动/停止。

🛠 前置要求

  1. Home Assistant (HA): 已安装并正常运行。

  2. Xiaomi Miot Auto 集成

    • 安装并配置好 Xiaomi Miot Auto 集成。

    • 为什么不用官方 xiaomihome 因为官方集成通常不提供音箱的 播放控制 conversation 实体,而 Xiaomi Miot Auto 会提供此关键实体。

  3. PVE 集成

    • 确保你的 PVE 宿主机和虚拟机已通过合适的集成(如 Proxmox VE 集成)接入 HA。

    • 必须创建以下实体(名称根据你的实际配置调整):

      • button.node_home_wake_on_lan - 宿主机唤醒 (Wake-on-LAN)

      • button.node_home_shutdown - 宿主机正常关机

      • button.qemu_windows11_100_start - 虚拟机开机 (示例:Windows 11, VMID 100)

      • button.qemu_windows11_100_stop - 虚拟机关机 (示例:Windows 11, VMID 100)

📝 步骤一:创建核心自动化

我们需要创建 4 个自动化,分别对应 4 个语音指令控制 4 个操作。

自动化示例:唤醒 PVE 宿主机

  1. 创建新自动化: 在 HA 的 设置 -> 自动化与场景 -> 创建自动化

  2. 触发条件 (When)

    • 类型:实体 - 状态

    • 实体:选择你的小爱音箱对应的 播放控制 conversation 实体(例如 Mi AI Speaker Pro 播放控制 conversation)。如有多个音箱,可添加多个触发实体。

    • 属性:Content

    • 从:空白 (留空不填)

    • 变为:输入你的语音指令文本,例如 唤醒PVE (注意与小爱训练时一致)。

  3. 条件 (If): (可选)

    • 如需要特定时间、设备状态等限制条件可在此添加。初学者可不加。

  4. 执行动作 (Then)

    • 类型:按钮

    • 服务:按下

    • 目标:选择宿主机唤醒按钮实体 button.node_home_wake_on_lan

  5. 保存: 给自动化命名,例如 语音 - 唤醒PVE宿主机,然后保存。

🔁 创建其余三个自动化

  • 重复上述步骤 1-5,修改触发条件的语音指令和执行的按钮实体

    • 宿主机关机

      • 触发:语音指令变为 关闭PVE (或其他你设定的指令)。

      • 动作:按 button.node_home_shutdown

      • 自动化名:语音 - 关闭PVE宿主机

    • 虚拟机开机

      • 触发:语音指令变为 启动虚拟机 (或其他指令)。

      • 动作:按 button.qemu_windows11_100_start (替换为你的虚拟机开机按钮)。

      • 自动化名:语音 - 启动Windows11虚拟机

    • 虚拟机关机

      • 触发:语音指令变为 关闭虚拟机 (或其他指令)。

      • 动作:按 button.qemu_windows11_100_stop (替换为你的虚拟机关机按钮)。

      • 自动化名:语音 - 关闭Windows11虚拟机

至此,核心功能已完成! 对小爱说出指令(如“唤醒PVE”),它应该能正确执行对应的 HA 按钮操作(如发送 Wake-on-LAN 包唤醒宿主机)。但小爱同学会回复默认的“好的,已操作XXX”等多次语音,体验不佳。 下一步解决这个问题。

🗣 步骤二:训练小爱同学(优化语音反馈)

为了让小爱只回复一句你指定的、简洁的确认语,需要在 小米音箱 App 中进行训练:

  1. 打开 小米音箱 App

  2. 进入:首页 -> 更多 -> 小爱训练 -> 个人训练 -> 右下+

  3. 训练设置

    • 对小爱说:输入你在 HA 自动化中设定的 精确 语音指令(例如 唤醒PVE)。

    • 小爱会执行

      • 选择 一句话:

      • 输入你希望小爱回复的确认语(例如 好呀!已经唤醒了)。

    • 其他设置

      • 生效设备:选择 同类设备(音箱)

      • 响应方式:选择 全部执行

      • 关键! 取消勾选 静默执行(确保小爱说出你设定的回复语)。

  4. 保存

  5. 重复训练

    • 为其他三个语音指令(关闭PVE, 启动虚拟机, 关闭虚拟机)分别创建训练。

    • 修改 当对小爱说一句话: 的内容为对应的指令和回复语(例如 关闭虚拟机 -> 好的,虚拟机正在关闭)。

语音反馈优化完成! 现在对小爱说出指令,它会执行 HA 操作,并只回复你设定的那一句确认语,体验更佳。

📱 步骤三(可选):在米家 App 创建手动控制按钮

如果你希望在 米家 App 内或 安卓桌面小部件 上也能方便地点击按钮控制,可以创建手动场景:

  1. 打开 米家 App

  2. 进入:智能 -> 右上角 + -> 手动控制

  3. 创建手动场景

    • 名称:输入场景名称(例如 唤醒PVE)。

    • 执行动作 -> 添加设备 -> 找到并选择你的 小爱音箱 Pro(或你使用的音箱)。

    • 执行动作:选择 自定义指令

    • 内容:输入你在 HA 自动化中设定的 精确 语音指令(例如 唤醒pve)。注意大小写通常不敏感,但建议与训练一致。

    • 关键! 开启 静默执行(确保执行指令时小爱音箱 不会 发出任何语音反馈,只执行后台指令)。

    • 保存场景。

  4. 重复创建

    • 为其他三个操作(宿主机、虚拟机的关机/开机)创建对应的手动场景。

    • 修改 名称自定义指令 内容(例如 关闭虚拟机 -> 指令内容 关闭虚拟机)。

可选步骤完成! 现在在米家 App 的“智能”页签或安卓桌面小部件(添加“米家智能”小部件)中,你可以看到并点击这些按钮来触发对应的语音指令(静默执行),实现手动控制。

🎉 大功告成!

经过以上三步配置,你的小爱同学已经能够:

  1. 完美响应语音指令: 唤醒/关闭 PVE 宿主机、启动/停止指定虚拟机。

  2. 提供简洁友好的语音反馈

  3. (可选)提供米家 App 内的手动控制按钮

享受无缝、高效的语音控制体验吧!