让小爱同学远程开电脑——米家联动HA零成本触发WOL
写在前面
电脑远程唤醒是一个很常见的需求,但能不能让小爱同学来帮忙唤醒或者通过米家来远程呢?
“小爱同学,打开电脑。”
“没问题”
本文提供了一种思路,通过米家联动 homeassistant 实现电脑开机自动化联动,将电脑远程开机接入米家生态智能家居中。
配置WOL
WOL 是“Wake On LAN”(网络唤醒)的缩写,这是一种通过网络信号来远程开启计算机的技术,它允许用户在计算机关闭的状态下,通过发送一个特定的数据包来启动计算机。
目前 Windows 电脑,只要不是老古董电脑 ,基本都能支持 WOL 网络唤醒
只需要做如下 3 个设置,即可支持 WOL:
配置BIOS
BIOS 比较简单,只要启动允许 WOL 的设置就行了,不同主板有不同的叫法

我用的华擎对应的是 PCIE Devices Power On,设置 Enabled 即可

另外还需要在的打开 Restore on AC/Power Loss,需改为 Power On
以解决电脑彻底断电了之后,无法通过 WOL 唤醒的问题

windows设置网卡
在 windows 开始菜单右键,选择设备管理器

在 网络适配器 中找到对应的有线网卡,我的是 Intel(R) I211 Gigabit Network Connection

在先在电源管理标签页中勾选这两个:
允许此设备唤醒计算机
只允许幻数据包唤醒计算机(避免被误唤醒)

然后再回到高级标签页,找到下面 3 个选项,确保都为 Enabled
Wake on Magic Packet
Wake on Pattern Match
Enable PME

windows设置电源选项
进入系统设置页面,搜索控制面板,打开控制面板
依次点击 电源选项 -> 选择电源按钮的功能

去掉 启用快速启动(推荐) 的勾选

目前用的 windows11 系统默认是启用快速启动的,而快速启动是不支持 WOL
更详细的说明可以参考 windows 官方文档说明:System power states

上文截图也提到说:
windows 只支持休眠、睡眠状态下的网络唤醒
而快速启动以及关机是不支持网络唤醒
这里其实是说的当仅依靠 windows 系统的场景,而实际上我们日常使用的网络唤醒,是需要配合主板 BIOS、网卡硬件的能力,才能实现网络唤醒的。
WOL配置接入Homeassisant
验证WOL
完成配置后,用 openwrt 的网络唤醒功能简单验证一下。
先获取到当前有线网卡的 Mac 地址,在系统托盘找到网卡图标,右键,选择 网络和Internet设置

点击属性,查看有线网卡的 MAC 地址,方便后续操作

对应有线网卡 MAC 地址如下:

然后先关机,再用手机进入到 openwrt 管理页面,找到 服务 -> 网络唤醒

目前有集成两种网路唤醒工具,这里我尝试 Etherwake 可以正常 WOL 唤醒我的 windows
网络接口需要选择对应路由的 LAN 口,然后通过 Mac 地址过滤选择,点击 唤醒主机
配置 Homeassistant
进入 设置 -> 设备与服务 页面

点击右下方的 添加集成,并输入 wake,就能搜索 Wake on LAN 集成

之后会弹出设置窗口,这里只需要输入前面获取到的 windows 有线网卡的 MAC 地址即可
其他两个选项不用填,默认即可

此时就已经完成 windows 电脑 WOL 设备的创建,可以选择区域,这里我选到书房

之后就是关机,使用手机打开 homeassistant 测试可以正常触发开机,这样 HA 就算配置完成

米家联动
这里其实简化下来就是要通过米家设备的触发来操作非米家设备:

需要选一个设备桥做状态,在 HA 上通过这个设备桥状态来做自动触发,类似之前提到的方案
这里我选了另外一个设备的指示灯作为状态反馈,这里我使用同个房间的 CP7pro 指示灯

同时在 HA 中也能识别状态

先在米家 APP 上新增一个手动控制“打开电脑”,识别语音后触发中枢网关虚拟机事件
执行时创建一个中枢网关虚拟事件,叫:windows电脑WOL开机
保存后,点击该手动控制的设置,进入小爱语音控制
增加其他自定义指令,把相近语义的指令都给添加进入

然后登录极客版创建自动化,这里我创建两个触发 WOL 的事件,分别是
小爱同学刚才设置的语音控制
特定的开关操作做触发
想通过其他什么事件触发都可以再添加事件,触发后把 CP7 Pro 的指示灯打开

然后再到 HA 上,监听到 CP7pro 指示灯亮起就触发 WOL 就可以

然后就可以使用前面定义的开关触发,来验证米家设备远程开机了。
测试验证
之后将电脑关机,然后通过小爱同学语音指令叫“打开电脑”

之后 HA 在接收到 CP7 pro 指示灯打开,就会触发 WOL 开机

另外,从上面两个平台的执行时间,可以看到
米家极客版上 CP7Pro 指示灯打开的事件是 15:02:19
而 HA 最终被触发的时间是 15:02:23,慢了 4 秒左右
因为目前使用的 Xiaomi Miot Auto 集成在与米家的状态同步是由延迟的
最差情况下可能要 10 来秒才能触发,后续可考虑换成米家的官方集成,理论上会更快一些。
写在后面
目前通过这种方式确实能达到将电脑开机这个操作通过米家配合 HA 实现远程控制。但还存在可以改进的:
Xiaomi Miot Auto 集成的状态同步延迟问题,改为 Xiaomi Home 集成应该能更快
没有判断电脑的状态,无脑触发 WOL,后续可考虑把电脑也给接入 HA 中支持状态联动
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

值友1885539413
校验提示文案
嘟嘟坚果墙
校验提示文案
于不服
校验提示文案
cqboy2003
校验提示文案
sunny毛毛毛
校验提示文案
值友3730835261
校验提示文案
老陆啊
校验提示文案
HALT
校验提示文案
七号情報員
校验提示文案
cqboy2003
校验提示文案
七号情報員
校验提示文案
HALT
校验提示文案
老陆啊
校验提示文案
于不服
校验提示文案
嘟嘟坚果墙
校验提示文案
值友3730835261
校验提示文案
sunny毛毛毛
校验提示文案
值友1885539413
校验提示文案