通过Home Assistant 远程唤醒和关闭家中电脑
安装软件:
Download Switch Off - Get latest official release | Airytec
安装后在设置中启用web界面,http://192.168.1.3:8000访问,即可看到如下的关机、重启等操作:
配置HA
其中将shutdown换成restart和sleep,可以变成重启或休眠。
switch:
- platform: wake_on_lan
name: "电脑的名称"
mac_address: "电脑的MAC"
host: "电脑的IP"
turn_off:
service: shell_command.turn_off_pc
shell_command:
turn_off_pc: 'curl -X GET http://电脑的IP:关机端口/?action=System.Shutdown'
如我的配置:
switch:
- platform: wake_on_lan
name: pc # 电脑别名
mac: "00:2f:3f:00:4f:f3" # 电脑MAC
host: "192.168.1.15" # 电脑IP
broadcast_address: "192.168.1.255"
broadcast_port: "9"
turn_off:
service: shell_command.turn_off_pc
- platform: wake_on_lan
name: nas
mac: "00:e0:6f:ae:4d:5d"
host: "192.168.1.2"
broadcast_address: "192.168.1.255"
broadcast_port: "9"
turn_off:
service: shell_command.turn_off_nas
shell_command:
turn_off_pc: 'curl -X GET http://192.168.1.15:8000/?action=System.Shutdown'
turn_off_nas: 'curl -X GET http://192.168.1.2:8000/?action=System.Shutdown'
二、重点来了
解决电脑开关状态不显示、关闭电脑服务不响应等问题。 配置好,网络唤醒电脑应该是没问题的,但开机后,有时按钮会变回关闭状态,想用HA开关关闭电脑成为不可能,而且单独调用shell_command服务没响应,只能手动关闭电脑,让人很抓狂。后来经过多次尝试,发现wake_on_lan这个组件判断电脑是否为开,是根据ping电脑的ip是否是通的,还有关闭电脑这一操作与ping无关,与电脑的防火墙有关,windows防火墙被禁和没设置好都会导致失败。针对以上两个问题,我提出以下解决方案:
1、确保HA设备与电脑能pink通,在电脑上设置允许其他电脑远程连接。 具体设置,百度知道有教程,我就不一一叙述了,设置完成后用HA设备ping电脑,如果出现下面结果,那就没问题。
2、如果关机命令没响应,大多数与windows的防火墙有关,我之前的防火墙被360强行禁用了,没有防火墙好像HA设备访问不了关机软件的网络远端,具体原因不明。解决方法是更新windows,开启防火墙,添加关机软件能通过防火墙,用其他设备的浏览器访问http://电脑的IP:关机端口。如果访问成功,则关机命令能够生效。 用其他设备登录关机软件的网络远端,看是否连接上。 如果还有问题,请在楼下回复,有时间就会解答。2019.6.22更新: 有人不知wol(网络唤醒)在计算机如何设置,今天就写个简易教程供大家参考。 1、设置主板 BIOS 在bios上找到类似wake on lan;resume on lan;power on PME;power on by PCI-E device; Power on by Onboard LAN 这些字眼,将其设为 Enabled,开启主板的网络唤醒功能。 2、设置网卡驱动 右击我的电脑——管理——设备管理器——右击电脑连接网络的网卡——属性——高级,将网络唤醒和魔术封包唤醒两项开启。 最后附上软件和代码 本帖隐藏的内容 开关机软件和代码.rar (208.45 KB, 下载次数: 484)
-
QQ截图20190622120744.png (49.56 KB, 下载次数: 2)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 vault@coolxy.cn