嫌一键关灯后电脑屏幕太亮,我在家鼓捣了好几天



前言

之前晚上睡觉关灯之后发现电脑屏幕还亮着,很晃眼,强迫症发作。

决心要实现关灯时连着电脑屏幕也关掉的效果。

所以这几天没时间上微博,一直在家鼓捣,用尽了各种奇技淫巧,踩了 n 个深坑,失败了 n++ 次,查阅了 n+=2 份资料,最后终于在 Homekit 上写出来了个开启/关闭电脑屏幕的开关。

晚上睡觉的时候眼睛终于不用被电脑屏幕晃了。

虽然这么个小东西历尽折磨,但最后终于成功的时候体内还是分泌出了一股又一股的浓浓的多巴胺…

话不多说,上教程。

注:目前只做了 Mac 版。

阅读约定

为了排版美观,减少理解错误,提高阅读效率,本文采用了一些自定的撰写规则。

请务必在阅读下文前在这里阅读本文章的 -> 阅读指南

定义区

  • pc_username = 你电脑的账户
  • pc_ip = 你电脑的 IP 地址

教程正文

  1. 首先要搞定 Hass 基础环境,确保可以运行。
  1. 在 Mac 上和树莓派的 Hass 做好无秘钥访问(只需做树莓派 -> 电脑)。
    我的是在 Docker 中装的,各位可能需要具体情况自行修改。
    放上方法供参考:
  • 在树莓派上进入 Hass Docker:
1
sudo docker exec -it homeassistant bash
  • 生成 rsa,生成时会出现提示,按三次回车即可,请根据实际情况替换以下代码块中的 pc_username 1
1
2
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub @pc_username
  • 然后输入你电脑的密码,稍后尝试下能否免密码登录。
  1. 搞定无密码访问之后,在 Configuration.yaml 的 Switch: 后添加以下内容,请根据实际情况替换以下代码块中的 pc_username 1 以及 pc_ip 2,并注意缩进。
1
2
3
4
5
- platform: command_line
switches:
mac:
command_on: ssh pc_username@pc_ip caffeinate -u -t 2
command_off: ssh pc_username@pc_ip pmset displaysleepnow

4、重启相关组件即可生效。

残留的问题

目前效果可以实现,但有个问题:重启 Hass 服务之后就要再做一次免密钥登录,有点麻烦,不知道为什么会丢失秘钥数据。

日后解决了会补上,如果你有解决办法,也请在底下留言,感谢。


  1. 1.pc_username = 你电脑的账户
  2. 2.pc_ip = 你电脑的 IP 地址
Sunbelife wechat