Sony PlayStation 4
Sony PlayStation 4 集成可让你控制 Sony PlayStation 4 主机。
要求
设置
- 下载 Second Screen App,并确认你可以正常发现并控制 PlayStation 4。
:::important 继续之前,请先阅读下方“授予端口访问权限”部分。
:::
-
前往
Settings -> Integrations,点击右下角的加号按钮,并从集成列表中选择PlayStation 4。 -
按照界面提示生成用户凭据。当出现包含多个字段的表单时,即表示此步骤已完成。
-
在 PS4 上前往 Settings / Mobile App Connection Settings / Add Device,此时会显示一个 PIN 码。
-
使用上一步中的 PIN 码填写表单字段,将 Home Assistant 与 PlayStation 4 配对。
- 注意: 要找到正确的地区,请参阅 Regions 部分。
授予端口访问权限
PlayStation 4 集成在配置期间需要使用特权端口才能正常工作,具体为 UDP 987 端口和 TCP 997 端口。根据你的 Home Assistant 实例所运行的操作系统,可能需要手动允许使用这些特权端口。
不要为了实现这一点而将 Home Assistant Core 实例本身以 root 或带有 root/sudo 权限 的方式运行。这会给宿主系统带来安全风险。
::: 具体实现方式因运行 Home Assistant 的操作系统而异。准确来说,需要让运行 Home Assistant 实例的 Python 解释器 能访问上述端口。
Docker
使用 Docker 运行 Home Assistant 时,请确保 PS4 能发现 Home Assistant 容器。通常可以通过让 Home Assistant 容器使用 host 网络驱动来实现(创建容器时传入 --net=host,或在使用 docker-compose 时向 compose 文件添加 network_mode: "host")。
配置
:::note
PlayStation 4 集成不使用 configuration.yaml 中的条目。你必须通过 Integrations 来配置此集成。
地区
根据你的地区,某些标题在 PlayStation Store 数据库中会有不同的 SKU。你必须在设置时选择具体地区,才能正确获取这些标题的封面图。如果找不到,集成会尝试在其他数据库中搜索正确的标题。
:::important 以下地区没有可用数据库,因此此集成无法使用: 中国、菲律宾、塞尔维亚、越南。
:::
媒体数据
PlayStation 4 集成会从你所在地区的 PlayStation Store 数据库中获取当前正在运行的游戏或应用信息。
有时该集成可能无法获取数据,或获取到错误数据。为解决此问题,集成允许你使用任意文本编辑器进行手动编辑。
格式
当集成从 PlayStation Store 获取数据后,会将其存储到与 "configuration.yaml" 所在目录相同位置的 .ps4-games.json 文件中。文件第一行为 {,最后一行为 }。在这两行之间,会为集成找到的每个游戏或应用写入缩进条目。请参见下方示例和表格:
示例中的数据包含 2 个条目。
每个条目都以该标题的 SKU ID 开头,例如 CUSA00000,并带有名为 locked 的字段,其值为 true 或 false。每个条目的默认值均为 false。如果 locked 为 true,集成将不会覆盖该游戏或应用对应的数据。
media_image_url 的值可以是任意有效 URL,也包括 Home Assistant 实例中的 local directory。示例中的第一个条目指向位于 config/www/ 目录下名为 image.jpg 的文件。
使用文本编辑器编辑
:::warning
继续之前,请先备份一份 .ps4-games.json 文件。如果格式有误,文件可能会被删除。
::: 编辑时,只需用文本编辑器打开该文件,找到你想修改的游戏或应用,修改相应的值后保存即可。下次你在主机上运行该游戏或应用时,更改就会生效。
动作
动作 select_source
打开新的应用/游戏,并关闭当前运行的应用/游戏。该游戏或应用必须位于实体的 source 列表中。你正常打开游戏时,它们会自动被添加。
动作 send_command
模拟在 PlayStation 4 上按下按钮。这里模拟的是 PS4 Second Screen App 可用的命令,不要与 DualShock 4 手柄按键混淆。
可用命令
支持命令的完整列表。
故障排查
封面图问题
如果你在 PS4 上运行的游戏/标题没有显示封面,或显示了错误封面,请在这里提交 issue。
请务必包含以下信息:
- 你的国家/地区
以及你 PS4 实体状态中以下属性的准确值:
- media_title
- media_content_id
高级用法
端口
该集成在运行时使用 UDP 1987 端口作为源端口;在配置期间,源端口为 UDP 1988。这些端口分配可用于配置防火墙规则。
如果这些端口无法使用,则会回退到随机端口。

