把你的PS5接入Homebridge

起因刷到一条微博把 PS5 接入 HomeKit，感觉十分有趣，于是就在 GitHub 上面搜索到了一个现成（开源万岁）的实现方式，通过 PS5 的远程连接实现的唤醒 PS5。

准备

这里就不赘述 HomeBridge 的安装了，贴一个大佬的教程作为参考：

https://sspai.com/post/59636

然后以下是远程唤醒 PS5 的项目地址：

安装

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 的当前状态。

最后配置如下：

Copy
{
"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

参考资料

「 Homebridge Integration Guide 」

「 https://github.com/dhleong/playactor/issues/15 」