type
status
date
slug
summary
tags
category
icon
password
😀
Wake On LAN,一个挺简单的功能,可是小爱音箱不支持,为了每天少伸一次手,于是有了这篇文章。

📝 前提

安装Home Assistant

连接米家

电脑启用WOL

💻 开机

https://pkgs.org/搜索etherwake
下载对应系统架构的软件包,解压出软件包中的data.tar,在bin或sbin中找到etherwake
或者直接用我提供的软件包
在homeassistant容器中创建目录/config/custom_components/wol
将etherwake程序放进去
chmod +x etherwake
-i指定网络接口,后接MAC或IP,测试执行:
etherwake -D -i br-lan A0:B1:C2:D3:E4:F5
修改homeassistant配置文件在configuration.yaml末尾添加:

创建自动化

添加触发条件>实体-状态
实体:Mi AI Speaker Pro Play Control conversation
属性:Content
变为:开机
notion image
添加动作>调用服务
服务:Shell Command: wake_on_etherwake
notion image
官方提供更简单的方法,但对我无效,可以尝试看看
notion image
 

📴 关机

Windows安装OpenSSH服务器
notion image
创建SSH密钥对
ssh-keygen -t ed25519 -f myssh
得到公钥myssh.pub和私钥myssh
将myssh.pub重命名为 administrators_authorized_keys,放入C:\ProgramData\ssh\目录下
myssh复制到homeassistant的/config/.ssh目录下
打开C:\ProgramData\ssh\sshd_config
找到PubkeyAuthentication yes取消注释
设置服务启动类型为自动,并启动服务
notion image
进入homeassistant
docker exec -it homeassistant bash
修改私钥权限
chmod 600 /config/.ssh/myssh
运行下面的命令测试连接,用户名和IP自行修改
ssh -i /config/.ssh/myssh username@192.168.x.x
修改configuration.yaml,在shell_command后面添加:
turn_off_pc: "ssh -o 'StrictHostKeyChecking no' -i /config/.ssh/myssh username@192.168.x.x 'shutdown -s -t 60'"
同样的,还可以添加取消关机命令。
cancel_turn_off_pc: "ssh -o 'StrictHostKeyChecking no' -i /config/.ssh/myssh username@192.168.x.x 'shutdown -a'"
重启homeassistant
notion image

创建自动化

触发条件同上,内容修改为关机
创建动作将conversation的值清空,可以连续触发并且避免意外误触发
notion image
服务Shell Command: turn_off_pc
Shell Command可以通过响应变量获得执行结果:
notion image
notion image

📑 以YAML编辑

下面是yaml格式的自动化,将实体ID替换成自己的。

🧰 Shell命令调试

如果遇到命令执行失败,可启用 shell_command 的调试日志记录,然后再次进行测试。它将为您提供有关系统日志中出现问题的更多详细信息。
转到开发人员工具>服务
notion image

📎 参考文章

 
提升Unraid终端体验安装JumpServer开源堡垒机
Loading...
Biliko
Biliko
吃饱了🍚
最新发布
Docker 按需启动
2024-11-22
UnRAID 自动续期SSL证书
2024-10-12
Linux 删除文件
2024-8-5
UnRAID 安装Windows Server 2022虚拟机
2024-8-5
Traefik 篇二:前期准备
2024-8-5
Traefik 篇一:Home Server的反向代理,总体架构介绍
2024-8-5
公告
🎉祝你每天快乐!🎉