电脑接入米家远程开关机

Kxhubs Svip1

想要实现米家控制PC,前期准备:

  1. 拥有支持运行Docker并且可以访问互联网的、可以访问要开机电脑的设备,可以是NAS/树莓派/云主机,用来执行开关机操作
  2. 电脑支持Wake on Lan(即可以从PXE或网卡启动,基本上电脑都支持)
  3. 拥有小爱音箱(由于采用第三方平台连接,只能用小爱音箱进行控制)

一、配置电脑远程开机(Wake on Lan)

:配置方式可以参考:远程开机_网络唤醒设置方法 (WOL, Wake on Lan) - 简书 (jianshu.com)

需要注意的是:

  1. 如果使用公网IP访问:
    1. 建议路由器配置DDNS,使用固定域名进行访问
    2. 路由器需要配置虚拟服务器或端口映射配置9和5985端口
    3. 不要使用DMZ主机,DMZ主机无法转发唤醒数据包
    4. 路由器还需要配置IP-MAC绑定,这样才能在电脑关机情况下,转发唤醒数据包
  2. 网卡中开启只允许幻数据包唤醒计算机可以避免一些意外开机的情况
  3. 要在电源管理中关闭Windows的快速启动,否则WOL可能无法生效
  4. 如果路由器支持尽量配置静态地址分配,避免电脑内网IP变了的问题

配置完成后,可以进行远程开机测试,端口使用9

使用DDNS域名或公网IP测试:PHP远程开机 (huangguofeng.com)

使用内网IP测试,可以用这个工具:WakeOnLAN Sender下载 - WakeOnLAN Sender 2.0.12 汉化绿色版 - 微当下载 (weidown.com)


二、注册巴法平台,接入米家

打开巴法科技&巴法云-巴法设备云-巴法物联网云平台 (bemfa.com) ,点击注册,使用邮箱和密码注册后

点击控制台-MQTT设备云,记住其中的私钥,后面会用

然后新建主题-命名为PC001

pAneUkq.png

新建完成后可以在下面看见设备,点击设置中的昵称,可以修改设备昵称,这个昵称就是后面在米家中控制的名称

pAneUkq.png

打开米家-我的-连接其他平台-选择巴法-登录巴法账号-同步设备

pAnK4IA.jpg
pAnK2rD.jpg
pAnKRqe.jpg

此时已经可以使用小爱同学控制了,但是想要在房间中添加卡片,可以在房间中新增手动控制,执行动作选设备-小爱音箱-自定义指令

自定义指令为打开电脑(巴法中的设备昵称)、关闭电脑

pAn3hC9.jpg
pAnKhad.jpg
pAn3hC9.jpg

三、电脑配置WinRM,支持远程关机

如果只想支持远程开机,不需要远程关机,这一章节可以忽略。

使用管理员运行PowerShell,并执行以下命令:

1
2
3
4
5
6
7
8
9
10
11
#开启WinRM远程管理
Enable-PSRemoting –force

#设置WinRM自启动
Set-Service WinRM -StartMode Automatic

#对WinRM服务进行快速配置,包括开启WinRM和开启防火墙异常检测,默认的5985端口
winrm quickconfig -q

#关闭Kerberos认证,提高安全性
winrm set winrm/config/service/auth '@{Kerberos="false"}'
pAnec7R.png
pAneynJ.png

由于Win11或Win10使用微软帐户登录,无法使用远程WinRM,所以还需要建立专门的WinRM帐户:

打开计算机管理-系统工具-本地用户和组-用户-新建用户,用户名为winrm,并设置密码,并且需要将winrm用户加入Administrators组

pAne2A1.png
pAne6B9.png
pAneRtx.png

另外最好设置下组策略,禁止winrm用户登录,提高安全性

pAneWh6.png
pAnKB5R.png
pAnK0a9.png

四、运行执行程序,达成最后一步!

在可以运行Docker并且可以访问互联网的,并且可以访问需要开机的电脑的设备上执行:

1
2
3
4
5
6
7
8
9
10
docker run -d \
-e "MW_MQTT_CLIENT_ID=巴法Client ID" \
-e "MW_MQTT_TOPIC=巴法主题名称" \
-e "MW_WOL_ADDRESS=电脑内网IP或公网IP或动态域名" \
-e "MW_WOL_MAC_ADDRESS=电脑MAC地址" \
-e "MW_WINRM_ADDRESS=电脑内网IP或公网IP或动态域名" \
-e "MW_WINRM_USERNAME=winrm" \
-e "MW_WINRM_PASSWORD=winrm账户的密码" \
--network=host
--name mqtt-wol kxhubs/mqtt-wol:1.1.2

Windows 10/11 查看MAC地址

  • 打开“开始”菜单,搜索“命令提示符”或“cmd”,然后打开它。
  • 在命令提示符窗口中,输入以下命令并按回车键:
    1
    ipconfig /all
  • 这将显示所有网络适配器的详细信息,包括MAC地址。通常,它被标记为“物理地址”。

Linux/macOS 查看MAC地址

1
ifconfig
  • 查找你的网络接口(通常是en0/1或eth0/1),然后找到“ether”后面的地址,那就是MAC地址。**

具体的其他配置可以参考:kxhubs/mqtt-wol

最后只需要在米家上点击开机关机测试就可以啦!️


代码开源地址:kxhubs/mqtt-wol: Receive MQTT messages and invoke WOL

  • Title: 电脑接入米家远程开关机
  • Author: Kxhubs
  • Created at : 2024-09-12 11:15:15
  • Updated at : 2024-10-21 08:11:40
  • Link: https://blog.kxhubs.com/2024/09/12/电脑接入米家远程开关机/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments
On this page
电脑接入米家远程开关机