PlayStation 5 Command Line Sensor Help - Command Failed/Empty JSON

Sure. I made a feature request for a new integration. I think the ps4 integration could just be ported basically.

Could you show an example of use?

$ ./ps5.py --help
usage: ps5.py [-h] [-b] host

Query a PS5 for state. Prints ON/STANDBY/OFF (Unreachable host = OFF)

positional arguments:
  host

optional arguments:
  -h, --help         show this help message and exit
  -b, --binary-mode  Report standby as OFF
$ ./ps5.py 192.168.0.37
STANDBY
$ ./ps5.py -b 192.168.0.37
OFF

I have it set up like this in binary_sensors.yaml:

- platform: command_line
  name: ps5
  command: /config/sensors/ps5.py -b 192.168.0.37
  scan_interval: 10
4 Likes

Thank you!

I am unable to find the user-credential part.

I tried using tcpdump as well but no luck, any advice?

Hi all and thanks Mattias.

I’m getting:

Template variable error: ‘value_json’ is undefined when rendering ‘{% if value_json.code == ‘200’ | int %} on {% elif value_json.code == ‘620’ | int %} standby {% else %} off {% endif %}’

It could be due to the non declaration of the variables, will look into it. The rest seems to work fine!

Hello can someone help me??? I want to turn my PlayStation 5 on and off using the Home Assistant. I’ve already found out the user credentia. How can I now integrate my PlayStation as a switch in the Home Assistant? Unfortunately, I’m not getting any further.

So how far did you get ? Do you have it working from the command line yet? Also last I checked you could not put it in rest mode only wake up, but I haven’t really been keeping up on it so it’s possible someone made some progress with that if you check the GitHub

So far I’ve only found out the user-credential via wireshark. Unfortunately, I don’t really understand how I integrate that into Home Assistant.

unfortunately i don’t have that much experience in home assistant. especially with manual integrations

user-credential: 194931325

what exactly do I have to install now? and how and where exactly?
For example, I tried to install ps5-wake on home assistant. Unfortunately it does not work.

Welcome to the Home Assistant command line.

System information
  IPv4 addresses for eth0:  192.168.xxx.xx/xx
  IPv6 addresses for eth0:  2003:ea:2728:xxxx:xxxx:xxxx:80a2:b017/64, fd64:17b0:4047:6:c5ef:xxxx:xxxx:xxxxx/64, fe80::f412:64d2:a5e1:e213/64
  IPv4 addresses for wlan0: 

  OS Version:               Home Assistant OS 5.13
  Home Assistant Core:      2021.6.0

  Home Assistant URL:       http://homeassistant.local:8123
  Observer URL:             http://homeassistant.local:4357
➜  ~ git clone https://github.com/iharosi/ps5-wake
fatal: destination path 'ps5-wake' already exists and is not an empty directory.
➜  ~ cd ps5-wake/                                 
➜  ps5-wake git:(master) sudo make install                            
sudo: make: command not found
➜  ps5-wake git:(master) 

This post has somewhat of a guide:

There is also this post which mentions the error you are getting:

I would see if you can get it working from the command line with the commands mentioned here:

Ich hatte dem Führer bereits gefolgt. Und wegen des Fehlers in der Installation. Leider funktioniert auch der angegebene Befehl nicht.

➜ ~ apt-get install build-essential



zsh: Befehl nicht gefunden: apt-get

Und wo sollte ich testen, welches Kommando ich hatte es bereits in der Schale und auf Home Assist

As already mentioned, I am unfortunately not at all familiar with the manual area. so far i had only installed finished platforms and stored them in the resources.

it would be really great if you could help me somehow

Many Thanks

Unfortunately I do not use Home Assistant OS so I am not sure what would need to be done to get apt-get working… I know I have seen the question in these forums previously… maybe try searching here for apt-get Homeassistant OS ? Or hopefully someone familiar with it can chime in

Edit: Use apt-get commands

I have now installed everything on another raspberry pi. everything works there. how do I create a switch that executes a command on another device via ssh

Are you familiar with shell_commands ? The command in this post would be running it on a remote machine… the same way you could test to see if working before putting it into a sensor

I’ve now installed everything so far.
In the shell of home assistant I can already log into the other raspberry pi via ssh without a password and execute the command to start the playstation.

I used the following instructions for logging in loosely

http://linuxproblem.org/art_9.html

so far everything works.

Now I want a switch to send this command, but I don’t know how to create this switch.

➜  ~ ssh [email protected]
Linux raspberrypi 5.10.11-v7l+ #1399 SMP Thu Jan 28 12:09:48 GMT 2021 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jun  3 18:50:42 2021 from 192.168.xxx.xx
[email protected]:~ $ cd ps5-wake/
[email protected]:~/ps5-wake $ ./ps5-wake -vW -194931325 -H 192.168.178.xx
Device found: PS5-248 [PS5/78C881B8BD09]: Home Screen
Sending wake-up...
[email protected]:~/ps5-wake $ 

I have now integrated it that way. Unfortunately the switch doesn’t work. Since the Playstation cannot be switched off, I would like the command to switch on the play for every switch operation

switch:
  - platform: command_line
    switches:
      ps5:
        command_on: "ssh [email protected] | cd ps5-wake/ | ./ps5-wake -vW -194931325 -H 192.168.178.62"
        command_off: "ssh [email protected] | cd ps5-wake/ | ./ps5-wake -vW -194931325 -H 192.168.178.62"
        friendly_name: 'Playstation 5'

Do you know how to get the bash shell inside the home assistant container? I use supervised so I’m not sure if the steps are the same on HaOS… but I would try that command from there so you can see the output… most likely you need to do ssh keygen so HA can run that command without issue… testing in the shell will let you see the error… I will edit post in a minute and link a post that walked me through that process…

So I’m assuming you got it working when manually typing the commands directly on that new pi?

Also the ps5 can automatically turn on and off based on the input of your tv changing… so you can have it shut off as soon as you switch off that input

So I enter the command in the shell directly on Home Assistant and from the home assistant I connect to the other raspberry pi.

this works. but not the platform

an ssh keygen has already been created by me in order to be able to switch to the pi via ssh one password. see my other post the link

Updated with working standby

Using a pi because I already use that for bluetooth → switchbot and, besides containers, I don’t want to install stuff on my NAS, where I run hass.

If your always-on computer is running hass os this probably will not work.

Install npm

sudo apt install nodejs npm

Install https://github.com/dhleong/playactor

sudo npm install -g playactor

Search for PS5

playactor browse

Outputs

{
  "address": {
    "address": "192.168.1.95",
    "family": "IPv4",
    "port": 9302,
    "size": 170
  },
  "hostRequestPort": 997,
  "extras": {
    "statusLine": "620 Server Standby",
    "statusCode": "620",
    "statusMessage": "Server",
    "status": "STANDBY"
  },
  "discoveryVersion": "0003...",
  "systemVersion": "08540...",
  "id": "78C88...",
  "name": "PS5-635",
  "status": "STANDBY",
  "type": "PS5"
}

Copy JSON "name":

playactor login --host-name PS5-635 --no-open-urls

Follow on screen steps

Open the following URL in a web browser to login to your PSN account.
When the page shows "redirect", copy the URL from your browser's address bar and paste it here.
  https://auth.api.sonyentertainmentnetwork.com/...

Checking PS5 state

playactor check outputs json but for some reason refuses to play nice with command line sensor so I also installed jq

sudo apt install jq

Home Assistant

These can be combined with a template switch

sensor:
  - platform: command_line
    name: Playstation
    scan_interval: 300
    command: ssh -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] 'playactor check --host-name PS5-635 | jq -r ".status"'
    value_template: >
      {% if value == 'AWAKE' %}
        ON
      {% elif value == 'STANDBY' %}
        OFF
      {% else %}
        Okänd
      {% endif %}
shell_command:
  playstation_5_wake: ssh -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] 'playactor wake --host-name PS5-635'
  playstation_5_sleep: ssh -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] 'playactor standby --host-name PS5-635'
3 Likes

Great guide! I installed npm, node and playactor on my Pi’s main os, everything is working great.

You can also do a switch entity that automatically updates the state. That way you dont have to do shell_command and an additional sensor, everything can be handled in one place:

switch:
- platform: command_line
  switches:
      playstation:
        value_template: >
          {% if value == 'AWAKE' %}
            true
          {% elif value == 'STANDBY' %}
            false
          {% else %}
            Unknown
          {% endif %}
        command_state: ssh -i /config/ssh/id_rsa -o StrictHostKeyChecking=no [email protected] 'playactor check --host-name PS5-639 | jq -r ".status"'
        command_on: ssh -i /config/ssh/id_rsa -o StrictHostKeyChecking=no [email protected] 'playactor wake --host-name PS5-639'
        command_off: ssh -i /config/ssh/id_rsa -o StrictHostKeyChecking=no [email protected] 'playactor standby --host-name PS5-639'
        friendly_name: Playstation 5