dhleong / ps4-waker

Wake your PS4 over LAN (with help from the Playstation App)
MIT License
451 stars 40 forks source link

"standby" instruction not working #142

Closed njudson11 closed 3 years ago

njudson11 commented 3 years ago

When running the following instruction on both Linux and Windows

ps4-waker -c "path to credentials file" standby

I'm getting the following error:

Logging in... Error logging in: Error: read ECONNRESET at TCP.onStreamRead (internal/stream_base_commons.js:205:27) { errno: 'ECONNRESET', code: 'ECONNRESET', syscall: 'read' } Unexpected error Error: No socket at ...\AppData\Roaming\npm\node_modules\ps4-waker\dist\device.js:563:38 at Ps4Socket.<anonymous> (...\AppData\Roaming\npm\node_modules\ps4-waker\dist\waker.js:376:5) at Ps4Socket.emit (events.js:315:20) at Socket.<anonymous> (...\AppData\Roaming\npm\node_modules\ps4-waker\dist\ps4socket.js:166:10) at Socket.emit (events.js:315:20) at emitErrorNT (internal/streams/destroy.js:92:8) at emitErrorAndCloseNT (internal/streams/destroy.js:60:3) at processTicksAndRejections (internal/process/task_queues.js:84:21)

Running ps4-waker does start up my PS4 and ps4-waker check returns the relevant details from my PS4.

I'm not sure if it's related but when updating it through NPM I get this warning:

npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.

dhleong commented 3 years ago

Thanks for the report! This is definitely an odd one that I haven't seen before. I've been using standby myself pretty regularly over the past couple weeks without issue, however.

Did you set up the credentials file on one computer and copy them to another, or did you set them up separately on each device? The credentials are tied to the device, so it may reject the connection (that ECONNRESET error) if the MAC address doesn't match what it's expecting. My best guess would be to delete (or backup and move) your credentials file and try again.

The reason why you're seeing the wakeup command work but not standby is that they operate differently. WAKE is very simple, low-level, and unlikely to change; it uses a transient UDP packet. STANDBY, on the other hand (and all the other commands ps4-waker provides) requires you to create a persistent socket connection to the device, which requires a separate kind of authentication. In fact, Sony has actually broken this step before.

In fact, by default ps4-waker will try to log you in on WAKE; when the login process isn't working (as evidenced by standby not working) you will probably also see that it opens to the account-select screen instead of to the logged-in home screen.

njudson11 commented 3 years ago

Hi. Thanks for getting back to me. I've done a bit more testing. I tried setting it up on my laptop with a new credentials file but still no joy. I've copied below the instructions and responses I got. I tried it with the firewall turned off on the laptop and it was no different.

>ps4-waker

No credentials; Use the PS4 Second Screen App and try to connect to "PS4-Waker"
"PS4-Waker" device should now be available...
Got credentials!  {
  'client-type': 'a',
  'auth-type': 'C',
  'user-credential': '##################################################'
}
WAKEUP sent to device... 192.168.1.72
Logging in...
Error logging in: Error: read ECONNRESET
    at TCP.onStreamRead (internal/stream_base_commons.js:205:27) {
  errno: 'ECONNRESET',
  code: 'ECONNRESET',
  syscall: 'read'
}

Unexpected error Error: No socket
    at C:\Users\njuds\AppData\Roaming\npm\node_modules\ps4-waker\dist\device.js:563:38
    at Ps4Socket.<anonymous> (C:\Users\njuds\AppData\Roaming\npm\node_modules\ps4-waker\dist\waker.js:376:5)
    at Ps4Socket.emit (events.js:315:20)
    at Socket.<anonymous> (C:\Users\njuds\AppData\Roaming\npm\node_modules\ps4-waker\dist\ps4socket.js:166:10)
    at Socket.emit (events.js:315:20)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:84:21)

>ps4-waker check


{
  "type": "device",
  "statusLine": "200 Ok",
  "statusCode": "200",
  "status": "Ok",
  "host-id": "########",
  "host-type": "PS4",
  "host-name": "PS4-535",
  "host-request-port": "997",
  "device-discovery-protocol-version": "00020020",
  "system-version": "07510001",
  "running-app-name": "Call of Duty®",
  "running-app-titleid": "CUSA07904",
  "address": "192.168.1.72"
}`
dhleong commented 3 years ago

Hey it's been a while but I've noticed my PS4 has recently stopped responding to standby as well, with the same CONNRESET error. However, I just tested and the official second screen app is also not working, so I suspect this is an error on Sony's side (as per https://github.com/dhleong/ps4-waker/issues/121).

njudson11 commented 3 years ago

I've just had the new PS4 update and standby seems to be working now so yeah it looks like it was a sony problem. Thanks for looking into it.

dhleong commented 3 years ago

Hey any time! Thanks for following up. Feel free to open a new ticket if you run into anything in the future.