索尼 PlayStation 4

ps4 集成允许您控制一个 索尼 PlayStation 4 游戏机

要求

  • Android 或 iOS 设备
  • 在设备上安装 PS4 第二屏幕应用程序 AndroidiOS

设置

  1. 下载第二屏幕应用程序,并确保您能够正常找到和控制 PlayStation 4。

Important

在继续之前,请阅读下面的“授予端口访问”部分。

  1. 导航到 设置 -> 集成,然后按右下角的加号按钮。从集成列表中选择 PlayStation 4

  2. 按照提示生成用户凭证。您会知道此步骤完成,当出现包含字段的表单时。

  3. 在 PS4 上,转到 设置 / 移动应用连接设置 / 添加设备,将显示一个 PIN。

  4. 通过填写上述步骤中的 PIN 来将 Home Assistant 与您的 PlayStation 4 配对。

  • 注意: 要找到您正确的区域,请参阅 区域 部分

授予端口访问

PlayStation 4 集成在配置期间需要使用特权端口,以正确工作,特别是 UDP 端口 987 和 TCP 端口 997。根据您的 Home Assistant 实例的操作系统,您可能需要手动允许使用特权端口。

Warning

不要以root 或带有root/sudo 权限 的身份运行您的 Home Assistant Core 实例来实现此目标。这将给您的主机系统带来安全风险。

根据您运行 Home Assistant 的操作系统,有不同的方法来执行此操作。具体而言,运行您的 Home Assistant 实例的 Python 解释器 需要访问上述端口。

Note

仅 Home Assistant Core 用户 在 Docker 上运行时需要额外配置。

基于 Debian 的

在 Debian 类型的操作系统上安装的 Home Assistant 可能需要配置。本节适用于但不限于以下操作系统:

  • Debian
  • Raspbian
  • Armbian
  • Ubuntu

在终端中运行以下命令:

sudo setcap 'cap_net_bind_service=+ep' <python>

<python> 替换为正在运行 Home Assistant 的 系统路径 到 Python,或是如果使用了虚拟环境,则替换为虚拟环境路径。该路径 不应符号链接在虚拟环境内部

示例:

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.5

要找到您的系统 Python 路径:

  • 系统健康 集成添加到您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 中。在网页浏览器中访问您的前端并导航到“关于/日志”页面 “http:///developer-tools/info)”。在系统健康框中,找到项 python_version 并记下显示的值。然后在终端中运行:

    whereis python<version>
    

    <version> 替换为在系统健康框中显示的 python_version 的值。

    示例:

    whereis python3.5.3
    

    输出包含目录 /bin/ 的内容很可能是您的系统 Python 路径,应该类似于 /usr/bin/python3.5

  • 如果 Home Assistant 安装在虚拟环境中,使用终端 cd 到您的环境的根/顶级目录并运行:

    readlink -f bin/python3
    

    readlink -f bin/python
    

    输出将是您的系统 Python 路径。

Docker

在使用 Docker 运行 Home Assistant 时,请确保 Home Assistant 容器可以被 PS4 发现。这可以通过确保 Home Assistant 容器使用 host 网络驱动程序来实现(在创建容器时传递 --net=host,或在使用 docker-compose 时将 network_mode: "host" 添加到您的构建文件)。

配置

Note

PlayStation 4 集成不使用 configuration.yaml 的条目。您必须通过使用 集成 来配置此集成。

区域

某些标题在 PlayStation Store 数据库中的 SKU 会根据您的 区域 而有所不同。您必须在设置中选择特定区域,以正确获取这些标题的封面艺术。如果找不到该标题,集成将尝试在其他数据库中搜索正确的标题。

Important

以下区域没有数据库,无法被集成使用: 中国,菲律宾,塞尔维亚,越南。

媒体数据

PlayStation 4 集成将从您所在区域的 PlayStation Store 数据库获取当前正在运行的游戏或应用的信息。

有时,集成可能会完全无法获取数据,或者获取的数据可能不正确。为了解决此问题,集成允许通过任何文本编辑器进行手动编辑。

格式

当集成从 PlayStation Store 检索数据时,会将其存储在名为 .ps4-games.json 的 JSON 文件中,该文件位于您的 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 文件所在的同一目录中。文件的第一行将是 {,最后一行将是 }。在这两行之间,有每个游戏或应用的缩进条目,集成所找到的。见以下示例和表:

{
    "CUSA00129": {
        "locked": true,
        "media_content_type": "app",
        "media_image_url": "http://localhost:8123/local/image.jpg",
        "media_title": "某个应用"
    },
    "CUSA00123": {
        "locked": false,
        "media_content_type": "game",
        "media_image_url": "https://somerandomurl.com/image.jpg",
        "media_title": "某个游戏"
    }
}
字段 描述
locked boolean 必须为 truefalse
media_content_type string 必须为 gameapp
media_image_url string 任何有效的图像 URL
media_title string 游戏或应用的标题

示例中的数据显示了 2 个条目。

每个条目将以标题的 SKU ID 开头,例如 CUSA00000,并且将有一个名为 locked 的字段,其值为 truefalse。每个条目的默认值将为 false。如果 lockedtrue,则集成将不会覆盖与该游戏或应用相关的数据。

media_image_url 的值可以是任何有效的 URL。这包括您 Home Assistant 实例的 local directory。示例中的第一个条目指向 config/www/ 目录中的一个名为 image.jpg 的文件。

使用文本编辑器编辑

Warning

在继续之前,请备份您的 .ps4-games.json 文件。如果格式中存在错误,您的文件可能会被删除。

要编辑,只需在文本编辑器中打开文件,找到您想要编辑的游戏或应用,并编辑您希望更改的值,然后保存文件。更改将在您下次在控制台上播放该游戏或应用时显示。

操作

操作 select_source

打开新应用/游戏并关闭当前正在运行的应用/游戏。游戏/应用必须在实体的源列表中。游戏在您正常打开时将自动添加。

数据属性 可选 示例 描述
entity_id media_player.ps4 您的 PlayStation 4 的实体 ID。
source 某个游戏CUSA00123 您想要打开的游戏/应用。您可以使用标题或 SKU ID。使用 SKU ID 将是最可靠的。

操作 send_command

模拟 PlayStation 4 上的按钮按下。这模拟 PS4 第二屏幕应用可用的命令。这与 DualShock 4 控制器按钮不同。

数据属性 可选 示例 描述
entity_id media_player.ps4 您的 PlayStation 4 的实体 ID。
command ps 您想要发送的命令。

可用命令

支持命令的完整列表。

命令 模拟按钮
ps PS (PlayStation)
ps_hold PS Hold/Long Press
option 选项
enter 输入
back 返回
up 向上滑动
down 向下滑动
left 向左滑动
right 向右滑动

故障排除

封面艺术问题

如果您在 PS4 上运行的游戏/标题未显示封面或显示错误的封面,请在 这里 发布问题。

请务必包括以下信息:

  • 您的国家

以及您的 PS4 实体状态中找到的以下属性的确切值。

  • media_title
  • media_content_id

高级使用

端口

此集成在运行时使用 UDP 端口 1987 作为源端口。在配置期间,源端口将是 UDP 端口 1988。这些端口分配可用于配置防火墙规则。

如果这些端口无法使用,将回退到随机端口。