Home Assistant控制群晖DSM远程开机和关闭

前提

  1. Home Assistant并非运行在群晖上,本例为HA运行在单独的树莓派上。
  2. 群晖开启了SSH,端口不限,默认22就可以。
  3. 远程开机的实现方式是wake on lan,需要群晖主板支持。如果是黑裙,可以特别注意一下。
  4. 远程关机是通过ssh登录执行poweroff命令,由于群晖本身限制和poweroff命令权限,需要使用root账户执行。

远程开机

请通过以下方式确认并开启wake on lan功能。

BIOS 设置

开机进入BIOS将WOL的Disabled改为Enabled 。

Home Assistant控制群晖DSM远程开机和关闭

如果BIOS开启了ErP Ready,需要改为Disabled关闭。

群晖DSM设置

进入群晖的管理界面,控制面板-硬件和电源,开启局域网唤醒。

Home Assistant控制群晖DSM远程开机和关闭

至此群晖DSM的wake on lan远程开机就设置完成了。可以通过DSM的固定IP或MAC地址,通过路由器在局域网内唤醒测试。

以下是Home Assistant配置文件中的唤醒部分,请将mac和ip更换为你的:

switch:
# NAS的WOL
– platform: wake_on_lan
name: NAS
mac: “00:11:32:A9:D6:00”
host: “192.168.1.101”

远程关闭

主要参考文章:https://blog.aaronlenoir.com/2018/05/06/ssh-into-synology-nas-with-ssh-key/

原理是通过树莓派以root身份登录到群晖DSM,执行poweroff命令。但由于是系统执行,所以无法保存或输入密码,因此需要使用ssh key登录。

首先通过ssh连接树莓派,并键入sudo -i,切换为root用户。

使用ssh-keygen生成ssh秘钥,记录pub文件的地址,并使用vi命令打开,拷贝其中内容备用。

然后通过ssh连接群晖DSM,并键入sudo -i,切换为root用户。

创建相关目录和文件并设置权限

mkdir /var/services/homes/root/.ssh
touch /var/services/homes/root/.ssh/authorized_keys
chmod 755 /var/services/homes/root

将刚才备份的pub文件(公钥)内容,复制到上面新创建的authorized_keys中。

至此,在树莓派执行ssh root@你DSM的ip,就可以免密码登录到DSM了。

以下为完整Home Assistant配置:

switch:
# NAS的WOL
– platform: wake_on_lan
name: NAS
mac: “00:11:32:A9:D6:00”
host: “192.168.1.101”
turn_off:
service: shell_command.turn_off_nas

# 命令
shell_command:
turn_off_nas: “ssh root@192.168.1.101 poweroff 2> /home/homeassistant/.homeassistant/command.log &”

发表评论

电子邮件地址不会被公开。 必填项已用*标注