终于可以躺在床上让小爱同学帮我开关电脑了~

2022-12-23 20:54:49 17点赞 124收藏 38评论

我为什么要这么干

伪需求:万一我人在外面需要打开家里的电脑做点什么呢。

真需求:人已上床,床已暖,电脑没关...

终极·真需求:折腾。

先说说我没折腾这个之前的解决办法:

开机:前提是你已经开启了电脑的WOL功能,用的安装了WOL的OpenWRT,然后SSH到OpenWRT,用下面这条命令。

/usr/bin/etherwake -i br-lan MAC地址

关机:前提是你在电脑上安装了SSH服务器,然后也是SSH到你的电脑,然后就是Windows的关机命令了

shutdown -s -t 5

怎么说呢,用也是能用吧,就是感觉不舒服,正好这几天阳在家,就更不舒服了。于是就想有没有什么办法把以上步骤整合在一起,只需要点一下就执行了。

果然是有的,IOS的捷径可以通过SSH来运行脚本,手持安卓的我骂骂咧咧放下手机,测了个温平复下心情。

测了温心情更不平静之后,先搜了搜小米有没有类似捷径的东西,嘿还真有,看了之后的结论是你还不如别有。

最后才把算盘打到小爱同学身上,于是就有了这篇折腾记录。

参考

https://blog.csdn.net/cgy233/article/details/127407571

在折腾过程中,主要参考了上面这篇文章。其它类似的要么需要单片机要么其它设备,只有这篇文章的办法正好适合我。

涉及的东西

1、内网一个7*24小时运行的Linux系统(Windows应该也行,主要用的是Python),OpenWRT也算,我是All in Boom,先在OpenWRT上没干起,于是新建了个CentOS的虚拟机才搞定。

终于可以躺在床上让小爱同学帮我开关电脑了~

2、小爱同学、米家。

思路

小爱控制米家设备,米家对接巴法云平台,内网Linux服务器连接巴法云,最终由Linux来发送开机或者关机的指令到电脑。

PS:这篇折腾记录里我不会写的太详细,主要还是记录一些比较重要和坑的地方。

巴法云

https://cloud.bemfa.com/

首先是去巴法云注册个账号,话说好久没见到过注册这么清爽的站了,不用验证码不用微信,梦回曾经。

记录下私钥,一会儿要用。

私钥私钥

新建一个MQTT的主题。

主题主题

这里只有一个需要注意的地方,主题名称的后三位必须是001-009,前面随意,不同的编号在米家代表不同的设备。如下图

编号对应编号对应

巴法云这里就完事了。

开启WOL

这个就直接到BIOS里去找类似wake on lan之类的选项,启用就行,找不到就按照主板型号网上搜吧。

安装OpenSSH服务器

直接在Windows的可选功能里安装就行。

openSSHopenSSH

SSH免密登录

这一步的意思是从你的Linux服务器SSH到windows的时候不需要输密码,做法就是在LInux上生成一个公钥,然后把这个公钥复制到windows这边,这样Linux过来的时候双方就不用对暗号,而是直接对证件,windows这边有linux的证件就直接让它进了。

Linux上运行

ssh-keygen -t rsa

公钥公钥

把上图中的id_rsa.pub文件复制到windows的C:Users用户名.ssh目录下,重命名为authorized_keys,如果没有.ssh文件夹就新建。

然后到打开C:ProgramDatasshsshd_config这个文件,按照下面的说明设置一下

确保以下3条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no

确保以下2条有注释掉
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

然后windows这边在服务里重启一下OpenSSH SSH Server。

试试从Linux那边

ssh 你的windows用户名@你的windowsIP

如果没让输密码就连上了的话就说明成功了。

Linux端安装Python3、安装依赖、安装WOL、拉取项目

安装Python3我就不写了,网上直接找吧,我在这里遇到第一个大问题,OpenWRT上安装的python始终有问题,测个抗原冷静(个屁)下来后放弃了从新装个的想法,直接放弃它,新建了个Centos的虚拟机,反正大家都是linux,大差不差。

我这里装的python3.8.0版本,如果是在centos上装python的话主要是要注意centos自带有一个2.7.5的python,安装完python3后需要把python/python3/pip/pip3这几个命令都指向新装的3.8.0.

指向指向

MQTT Python依赖包安装

pip3 install -i https://pypi.doubanio.com/simple paho-mqtt

安装WOL

直接安装WOL会提示找不到,所以先

yum install -y epel-release

yum install -y wol

拉取GitHub项目

项目地址自己搜吧…

cd EthanHome-WOL

这里需要注意你的EthanHome-WOL文件夹在哪里,一般在哪个目录运行的拉取命令就是在哪个文件夹下。

配置项目参数

主要配置两个文件,wol_config.ini(你的电脑IP和MAC)和wol_mq.py(MQTT平台的主题名称和私钥)。

主题名称和私钥主题名称和私钥

这里我卡了很久,配置好后MQTT平台是能连接的,但是控制不了,相当于是我告诉小爱开机或关机,小爱发到巴法平台了,平台也发给linux了,卡在了linux发送指令到电脑开关机这里。

没办法只有硬着头皮去翻这个项目里的几个文件写了啥,还好不多。

文件列表文件列表

大概意思是wol_mq.py这个是长期后台运行,当接收到开机命令的时候,调用执行wol.py,IP和MAC从wol_config.ini里获取;接收到关机指令的时候直接执行wol_mq.py里的一行指令。

开和关开和关

关机看来是根本没调用到wol_config.ini里的IP,主要是用户名也没地儿调用啊,这个就简单了,直接把上图关机那部分的用户名和IP改成自己的就行了,于是关机成功实现终于可以躺在床上让小爱同学帮我开关电脑了~

开机这里又卡了很久,再硬一次头皮去看wol.py的内容,不是程序员实在是脑壳痛没进展。

吃个饭消杀一下继续磕开机的问题。

也许是84的味道让我醍醐灌顶了,再看上面关于开机的内容,灵关一闪,我死磕wol.py干嘛,直接替换成开机命令不就行了吗。

修改后修改后

完美解决终于可以躺在床上让小爱同学帮我开关电脑了~

如果是OpenWRT,命令应该需要改成

/usr/bin/etherwake -i br-lan MAC地址

后台运行

最后,添加个后台运行

nohup python3 /home/WOL/EthanHome-WOL/wol_mq.py > /home/WOL/EthanHome-WOL/wol_mq.log 2>&1 &

记得把路径改成你自己的。

米家以及小爱添加设备

这里就不详述了,不早了。

米家--我的--其它平台设备--巴法--登录你的巴法账号,就有个灯的设备同步过来了,为什么是灯呢,因为在巴法平台上002代表的就是灯。

小爱音箱--更多--小爱训练--个人训练。分别添加开机和关机就完事。

手机上暂时没去找在哪里添加,应该都差不多。

总结

就是折腾~

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

159元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

106元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

308元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

106元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

279元起

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

Microsoft 微软 到手18.2元/月 微软office365家庭版microsoft365增强版15个月

279元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

249元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

676.4元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

国行版 Switch体感游戏套装 《健身环大冒险》

国行版 Switch体感游戏套装 《健身环大冒险》

439元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

198元起

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

Microsoft 微软 活动6天 office365家庭版microsoft365订阅密钥

239元起
38评论

  • 精彩
  • 最新
  • 小爱会查你电脑的内容吗

    校验提示文案

    提交
    小爱只对接MQTT平台,它甚至都没有跟你的电脑产生连接。

    校验提示文案

    提交
    收起所有回复
  • 太复杂了。。。

    校验提示文案

    提交
    这不就是折腾的乐趣嘛

    校验提示文案

    提交
    收起所有回复
  • 后台进程一直在,但是过一天左右,巴法上就显示离线了,这就比较蛋疼了

    校验提示文案

    提交
    我也是这个问题,奈何对linux不熟,对MQTT也不懂,只有先搁置了,再说兴趣也已经过去 [亲亲]

    校验提示文案

    提交
    我也是啊,逼着搞cron,每10分钟运行一次,都不行。明天凌晨1点,他自己停了,靠

    校验提示文案

    提交
    收起所有回复
  • 请教一下,连接不上mqtt平台,报错无效的主机名,不懂代码,实在不知道啥原因了 [喜极而泣]

    校验提示文案

    提交
    连接mqtt只有两个主要参数的嘛,你再确认下?主题和密钥

    校验提示文案

    提交
    收起所有回复
  • 我这倒有个简单点的办法,买个小米插座,设置电脑来电启动,喊一声就开机了。

    校验提示文案

    提交
    哪里简单?简直粗暴啊!如此直接,我喜欢 [击掌]

    校验提示文案

    提交
    我一直都是这样

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 有没有考虑过,买个连入米家的插排呢?直接关电源。天天忘关的话,定时关机。不保存文件设置定时保存。你电脑要是特别重要,比如连入CNMD(中国国家导弹防御系统)那种,那建议配俩机要秘书。折腾,是为了实现目的,拿个耳挖勺吃饭不叫折腾,叫锻炼。

    校验提示文案

    提交
  • 哈,这设计思路✓残疾人友好!

    校验提示文案

    提交
  • 牛的,我会用wol开但不会关,干脆上了个连接小爱的继电器给电脑的开机键,反正windows开关机都是按开机键就可以操控

    校验提示文案

    提交
  • 装个todesk

    校验提示文案

    提交
  • 有个更简单的方法,win 运行 Python cgi web服务器,通过浏览器或 curl 命令就能运行 win 的脚本。

    校验提示文案

    提交
  • 开机十几秒的事情,哈哈

    校验提示文案

    提交
  • 唤醒小爱同学暖床服务

    校验提示文案

    提交
  • 时间与成本不成正比,时间太多了

    校验提示文案

    提交
  • 🌝🌝 要是小爱跟苹果一样原生支持ssh多好,这样我就能直接连上我的树莓派发送启动脚本了

    校验提示文案

    提交
  • ???这不是一个购物平台么 [高兴]

    校验提示文案

    提交
  • 以前该给小爱提过意见,加上wol功能,也没人理我

    校验提示文案

    提交
  • 我的方案是淘宝上的开机卡,直接把电源跳线转接过去,本质上是个ESP32连WiFi然后mqtt,供电走pcie x1,也挺方便的,有接入小爱,iOS上可以通过post发送命令,也有微信公众号可以控制,开关机可以消息提醒;智能插座来电自起我怕一个不小心把电给断了,wol我曾遇到过出门在外叫不醒的坑爹情况,所以最后还是用了开机卡

    校验提示文案

    提交
  • 太费劲了,不如装个手机版的RDP远程桌面,几秒搞定。

    校验提示文案

    提交
  • 挺好的文章,评论区也够吊,硬关机软关机傻傻分不清,嘈杂声盖过了文章本身的声音

    校验提示文案

    提交
  • 对。我就是这样做的

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
124
扫一下,分享更方便,购买更轻松