起因刷到一条微博把 PS5 接入 HomeKit,感觉十分有趣,于是就在 GitHub 上面搜索到了一个现成(开源万岁)的实现方式,通过 PS5 的远程连接实现的唤醒 PS5。
准备#
这里就不赘述 HomeBridge 的安装了,贴一个大佬的教程作为参考:
然后以下是远程唤醒 PS5 的项目地址:
play around with your playstation devices
安装#
a. 安装 playactor#
sudo npm install -g playactor
b. 配置连接 PS5#
i 获取机器的 id#
运行 playactor browse
可以查看当前网络中 PS5 设备:
这里我们可以获得我们 PS5 的 id : 00EXXXXXXXX0 。
ii 连接设备#
运行 playactor login --host-id 00EXXXXXXXX0 --no-open-urls
--no-open-urls
这个参数是由于我是用的树莓派无法直接打开浏览器进行后续认证,所以通过返回登陆链接来进行登陆。
此时将返回的连接在浏览器中打开:
后面就是登陆的操作,成功登陆后会看到一个页面写着 redirect,此时已经登陆成功了。将地址粘贴到终端然后回车绑定:
然后到 PS5 的设置 -> 主机 -> 远程游玩 -> 关联设备中获取验证码并输入终端中:
iii 控制 PS5#
登陆 playactor login --host-id XXXXXXXXXXXX
唤醒 playactor wake --host-id XXXXXXXXXXXX
待机 playactor standby --host-id XXXXXXXXXXXX
检查 PS5 当前状态 playactor check --host-id XXXXXXXXXXXX
要是只有一台设备的话可以不指定 host-id :
登陆 playactor login --ps5
唤醒 playactor wake --ps5
待机 playactor standby --ps5
检查 PS5 当前状态 playactor check --ps5
接入 Homebridge#
这个可以借助Homebridge 中的开关插件,下面几个应该都可以,大家个人喜好选择:
Homebridge-cmdaccessory
Homebridge-cmdswitch2
Homebridge-cmd4
Homebridge-cmdtriggerswitch
我自己用的是 Homebridge-cmdaccessory ,搜索安装即可:
原理是通过唤醒和待机命令作为开关,然后通过 playactor check --ps5 | grep -i '200 Ok'
轮询获取 PS5 的当前状态。
最后配置如下:
{
"platform": "cmdAccessory",
"name": "CMD Accessory",
"switches": [
{
"name": "PS5",
"on_cmd": "playactor wake --ps5",
"off_cmd": "playactor standby --ps5",
"state_cmd": "playactor check --ps5 | grep -i '200 Ok'",
"polling": true,
"interval": 120,
"manufacturer": "Sony",
"serial": "00EXXXXXXXX0",
"type": "Switch"
}
]
}
遇到的问题#
首次安装完毕后在Homebridge中唤醒 PS5 一直报错,但是直接在终端中输入命令时又可以成功执行,然后怀疑问题可能出在不同用户上,我的Homebridge安装创建了Homebridge的用户。当我切换到 homeBridge 时执行命令确实会报错,然后我重新进行绑定后就可以正常使用了。
后面查看一下 GitHub 中的 issue 发现首次绑定成功后会将配置写在当前用户目录下/home/homebridge/.config/playactor
,所以在Homebridge的 WebUI 上会调用失败。
最后#
一顿操作安装完毕后,发现其实这个功能使用频率真的很低很低😂。当你折腾好后给女朋友演示在手机的 Homekit 上打开了 PS5 后就变得索然无味了,但是折腾的过程还是十分有趣的。毕竟谁会不想把心爱的 PS5 接入 HoneKit 呢(doge