Home Assistant控制群晖DSM远程开机和关闭 | 您所在的位置:网站首页 › 快捷指令打开米家设备权限怎么关闭 › Home Assistant控制群晖DSM远程开机和关闭 |
前提
Home Assistant并非运行在群晖上,本例为HA运行在单独的树莓派上。
群晖开启了SSH,端口不限,默认22就可以。
远程开机的实现方式是wake on lan,需要群晖主板支持。如果是黑裙,可以特别注意一下。
远程关机是通过ssh登录执行poweroff命令,由于群晖本身限制和poweroff命令权限,需要使用root账户执行。
远程开机
请通过以下方式确认并开启wake on lan功能。 BIOS 设置开机进入BIOS将WOL的Disabled改为Enabled 。 如果BIOS开启了ErP Ready,需要改为Disabled关闭。 进入群晖的管理界面,控制面板-硬件和电源,开启局域网唤醒。 至此群晖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" 远程关闭以下内容更新于:2020-03-24 16:14:17 如果你运行的是hass.io,请先跳转到文章底部查看说明。 主要参考文章: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用户。 修改ssh文件,允许直接使用root用户登录群晖DSM。 sudo vim /etc/ssh/sshd_config在文件开头增加如下内容并保存。 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitRootLogin yes创建相关目录和文件并设置权限 mkdir /root/.ssh touch /root/.ssh/authorized_keys chmod 755 /root修改root的密码,建议和admin一致。 synouser --setpw root xxx #xxx为你admin的密码将刚才备份的pub文件(公钥)内容,复制到上面新创建的authorized_keys中。 你可以直接文本复制粘贴,或在树莓派执行scp命令 # cat ~/.ssh/id_rsa.pub | ssh root@群晖的地址 'cat >> .ssh/authorized_keys' cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/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 [email protected] poweroff 2> /home/homeassistant/.homeassistant/command.log &" Hass.io的特殊设置从hassbian切换到hass.io后,发现上面的设置方法失效了。 症状是在SSH中登录是不需要密码的,但通过Home Assistant执行就会报认证错误。 怀疑是密钥文件出了问题,这里不得不说下,hass.io的本质其实是运行docker,这就造成了环境的隔离。实话说,我自己也比较乱,但找到了解决方法。 整体方法还是如上,但通过ssh连接到hass.io后(不是那个端口是22222的host os),创建文件夹 $ mkdir /config/.ssh生成密钥,注意不能生成在默认文件夹 $ ssh-keygen -t rsa储存位置输入刚才新建的目录 /config/.ssh/id_rsa再将生成的密钥添加到群晖DSM,这里需要注意路径有调整。 # cat /config/.ssh/id_rsa.pub | ssh root@群晖的地址 'cat >> .ssh/authorized_keys' cat /config/.ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'配置文件中的shell_command改为: shell_command: turn_off_nas: "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] poweroff 2> /config/command.log &"相关文章: 树莓派3B安装Hass.io避坑指南 Hassos 更新遇到 Can’t fetch versions 问题的3种解决方法 命令行查询树莓派硬件型号 黑群晖快速恢复系统保留数据 |
CopyRight 2018-2019 实验室设备网 版权所有 |