🟢唤醒:远程唤醒群晖(Wake-on-LAN)
🔴关机:远程关机群晖(SSH)
📋 Dashboard 卡片操作界面(Lovelace)
✅ 一、远程唤醒群晖
1. 群晖 NAS 支持 并启用WOL
群晖 NAS 的网卡通常支持 WOL,但需要手动启用:
- 登录群晖 DSM
- 打开浏览器,进入群晖 DSM 管理界面。
- 进入 控制面板 > 硬件和电源 > 常规。
- 勾选 启用 WOL(局域网唤醒)。
- 如果有多个网口,确保启用了连接到网络的网口的 WOL 功能。
- 在 控制面板 > 信息中心 > 网络 中,找到使用的网卡,记录其 MAC 地址(格式如 AA:BB:CC:DD:EE:FF)。
- 同时记录群晖的 固定 IP 地址(如 10.10.10.167),以便后续配置。
2. 确保网络环境支持 WOL
路由器配置
- 确保路由器支持 WOL 数据包的广播。大多数路由器默认支持,但某些高级路由器可能需要启用 IP Helper 或 广播转发 功能。
- 如果群晖和 Home Assistant 不在同一子网,可能需要配置路由器以转发 WOL 的魔法数据包(Magic Packet)。
网络连接
- 群晖 NAS 必须通过有线网络(以太网)连接到路由器,因为 WOL 通常不支持 Wi-Fi。
测试 WOL 功能
- 使用其他 WOL 工具(如istoreos openwrt 网络唤醒 应)测试群晖是否能被唤醒。
- 如果无法唤醒,检查群晖的 BIOS 或网卡设置,确保 WOL 功能已正确启用。
3. 配置 Home Assistant
在 Home Assistant 中配置 WOL 集成,以通过界面或自动化唤醒群晖 NAS。
1. 编辑 Home Assistant 配置文件**
访问 configuration.yaml
- 登录 Home Assistant,打开 文件编辑器(需安装 File Editor 插件,或通过 SSH 访问 /config/configuration.yaml)。
添加 WOL 配置
- 在 configuration.yaml 文件中添加以下内容,替换 mac 和 host 为群晖的实际 MAC 地址和 IP 地址:
单个项目switch:
switch:
- platform: wake_on_lan
name: "唤醒我的电脑" # ← name:开关的显示名称,可自定义
mac_address: "AA:BB:CC:DD:EE:FF" # ← 替换为群晖设备的 MAC 地址
host: 10.10.10.167 # ← 可选,用于检测设备是否在线(ping)
broadcast_address: "10.10.10.255" # ← 网络广播地址,通常为子网的广播地址(例如,子网 10.10.10.0/24 的广播地址为 10.10.10.255)
broadcast_port: 9 # ← WOL 默认端口为 9,通常无需修改。多个项合并到一个 switch 块下:
switch:
- platform: wake_on_lan
name: "唤醒我的电脑"
mac: "AA:BB:CC:DD:EE:FF"
host: 10.10.10.100
- platform: wake_on_lan
name: "唤醒群晖"
mac: "11:22:33:44:55:66"
host: 10.10.10.167- 保存并检查配置:
- 保存文件后,在 Home Assistant 的 开发者工具 > 检查配置 中验证 YAML 配置是否正确。
- 重启 Home Assistant:
- 在 设置 > 系统 > 重启 中重启 Home Assistant,以应用配置。
2. 添加到 Home Assistant 仪表板,重启 Home Assistant 并测试
- 保存配置后,点击 设置 → 系统 → 检查配置;
- 无误后,点击 重启;
- 回到仪表板,添加实体卡片
switch.唤醒我的电脑; - 点击“开”即可发送 WoL 魔术包唤醒设备。
✅ 二、远程关机群晖
DSM 默认不允许外部关机,但可以用 SSH + 命令远程实现。
1. .ssh 密钥生成脚本(用于宿主机或 Home Assistant 容器)
在终端运行以下命令生成 SSH 密钥:
# 切换到 Home Assistant 配置目录
cd /path/to/homeassistant/config
# 创建 .ssh 文件夹(如果不存在)
mkdir -p .ssh
chmod 700 .ssh
# 生成 RSA 密钥对(不要设置密码)
ssh-keygen -t rsa -b 2048 -f .ssh/id_rsa -N ""公钥保存在:/config/.ssh/id_rsa.pub
私钥保存在:/config/.ssh/id_rsa
2. 将公钥配置到群晖 DSM
手动配置 SSH 公钥(适用于 DSM 7)
假设你在群晖上启用了 SSH,接下来操作如下:
- 打开终端,复制公钥到群晖
# 进入 Home Assistant 配置目录(你有 id_rsa.pub)
cat /config/.ssh/id_rsa.pub复制输出的整行内容,例如:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAz... yourname@host- 使用密码登录群晖,把公钥写入用户
.ssh/authorized_keys
ssh your_admin_user@10.10.10.167 -p 50022一旦登录成功,执行:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "(粘贴你刚复制的公钥)" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys也可以用 SCP 拷贝:
scp -P 50022 /config/.ssh/id_rsa.pub admin@192.168.1.10:/tmp/
# 然后登录群晖,把它追加进 ~/.ssh/authorized_keys- 验证是否免密成功
回到 Home Assistant 宿主机或终端中执行:
ssh -i /config/.ssh/id_rsa -p 50022 admin@10.10.10.167如果可以不输入密码就登录成功,说明配置成功 ✅
3. 配置免密码执行关机
群晖 DSM 支持在 /etc/sudoers.d/ 目录下添加用户特定的 sudo 配置文件,不使用 visudo,避免直接编辑主 sudoers 文件的风险。步骤如下:
- 使用 SSH 登录群晖 NAS
使用您的管理员账户通过 SSH 登录到群晖 NAS。 - 创建 sudoers 配置文件
执行以下命令创建一个新的 sudoers 配置文件(以myhome用户为例):表示用户myhome可以在不输入密码的情况下执行/sbin/poweroff命令
echo 'myhome ALL=(ALL) NOPASSWD: /sbin/poweroff' | sudo tee /etc/sudoers.d/myhome_shutdown如果您的系统未安装 sudo,可以使用 su 切换到 root 用户后执行:
sudo -i
echo 'myhome ALL=(ALL) NOPASSWD: /sbin/poweroff' > /etc/sudoers.d/myhome_shutdown- 设置正确的权限
确保新创建的文件权限为 0440,以防止未经授权的修改:
chmod 0440 /etc/sudoers.d/myhome_shutdown- 验证配置是否生效
尝试使用以下命令测试免密码关机是否成功:
sudo /sbin/poweroff如果系统未提示输入密码并成功执行关机,说明配置已生效。
4. configuration.yaml 内容整合
wake_on_lan:
switch:
- platform: wake_on_lan
name: "唤醒群晖"
mac: "00:11:22:33:44:55"
host: 10.10.10.167
shell_command:
shutdown_nas: "ssh -i /config/.ssh/id_rsa admin@10.10.10.167 'sudo /sbin/poweroff'"5. Lovelace Dashboard 按钮配置
type: vertical-stack
cards:
- type: button
name: 唤醒群晖
icon: mdi:power
tap_action:
action: toggle
entity: switch.唤醒群晖
- type: button
name: 关闭群晖
icon: mdi:power-off
tap_action:
action: call-service
service: shell_command.shutdown_nas6. 状态传感器显示群晖是否在线(基于 ping)
binary_sensor:
- platform: ping
name: 群晖在线状态
host: 10.10.10.167
count: 2
scan_interval: 30然后你可以在 Dashboard 中添加一个实体状态卡片,显示是否在线。
✅ 示例:两台群晖配置完整写法
configuration.yaml 配置
wake_on_lan:
switch:
- platform: wake_on_lan
name: "唤醒群晖1号"
mac: "00:11:22:33:44:55"
host: 10.10.10.167
- platform: wake_on_lan
name: "唤醒群晖2号"
mac: "66:77:88:99:AA:BB"
host: 10.10.10.168
shell_command:
shutdown_nas_1: "ssh -i /config/.ssh/id_rsa admin@10.10.10.167 'sudo /sbin/poweroff'"
shutdown_nas_2: "ssh -i /config/.ssh/id_rsa admin@10.10.10.168 'sudo /sbin/poweroff'"⚠️ 注意:如果两台群晖使用不同用户,请复制密钥到每台设备的对应用户并更改
admin@IP。
Dashboard 按钮卡片
type: vertical-stack
cards:
- type: button
name: 唤醒群晖 1
icon: mdi:nas
tap_action:
action: toggle
entity: switch.唤醒群晖1号
- type: button
name: 关闭群晖 1
icon: mdi:power-off
tap_action:
action: call-service
service: shell_command.shutdown_nas_1
- type: button
name: 唤醒群晖 2
icon: mdi:nas
tap_action:
action: toggle
entity: switch.唤醒群晖2号
- type: button
name: 关闭群晖 2
icon: mdi:power-off
tap_action:
action: call-service
service: shell_command.shutdown_nas_2群晖在线状态检测(可选)
binary_sensor:
- platform: ping
name: 群晖1在线
host: 10.10.10.167
count: 2
scan_interval: 30
- platform: ping
name: 群晖2在线
host: 10.10.10.168
count: 2
scan_interval: 30自动化
如,只要有人回家就唤醒两台群晖
automation:
- alias: 回家自动唤醒群晖
trigger:
- platform: state
entity_id: person.your_name
to: 'home'
action:
- service: switch.turn_on
entity_id: switch.唤醒群晖1号
- service: switch.turn_on
entity_id: switch.唤醒群晖2号








