起因是在微博刷到大佬 @ES_今天实验做出来了嘛 的一条微博把PS5接入HomeKit,感觉十分有趣,于是就在GitHub上面搜索到了一个现成(开源万岁)的实现方式,通过PS5的远程连接实现的唤醒PS5。
准备
这里就不赘述 HomeBridge 的安装了,贴一个大佬的教程作为参考:
然后以下是远程唤醒PS5的项目地址:
https://github.com/dhleong/playactor
安装
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