3.4 KiB
3.4 KiB
PSNotifyModule
Drop-in Node.js / Electron module for sending toast notifications to a jailbroken PS5 running customPSNotify.js.
No npm dependencies — uses Node's built-in net module only.
Setup
- Copy the
PSNotifyModule/folder into your project. - Make sure
customPSNotify.jsis loaded and running on your PS5. requirethe module by path — done.
const { PS5Notifier, notify } = require('./PSNotifyModule');
API
notify(host, message, [opts]) — one-shot function
Connects, sends, waits for ACK, disconnects. No instance needed.
const { notify } = require('./PSNotifyModule');
await notify('192.168.1.100', 'Build finished!');
await notify('192.168.1.100', 'Deploy complete', {
subMessage : 'v2.1.0 is live',
port : 6969, // default
timeout : 5000, // ms, default
});
| Parameter | Type | Required | Description |
|---|---|---|---|
host |
string | yes | PS5 IP address |
message |
string | yes | Main toast body |
opts.subMessage |
string | no | Smaller text below body |
opts.port |
number | no | Port (default 6969) |
opts.timeout |
number | no | Timeout in ms (default 5000) |
Returns: Promise<{ ok: boolean }> — resolves with the ACK from the PS5, rejects on connection error / timeout.
PS5Notifier — stateful class
Instantiate once, reuse throughout your app. Remembers the host, port, and timeout. Keeps a history of sent notifications.
const { PS5Notifier } = require('./PSNotifyModule');
const ps5 = new PS5Notifier('192.168.1.100');
// send(message, [opts])
await ps5.send('App started');
await ps5.send('Build complete', { subMessage: 'v2.1.0 — 0 errors' });
// history([n]) — last n sent notifications (default 50)
const log = ps5.history();
// [{ ts, message, subMessage, ok }, ...]
// setHost(host) — update IP at runtime
ps5.setHost('192.168.1.105');
Constructor
new PS5Notifier(host, [defaults])
| Parameter | Type | Required | Description |
|---|---|---|---|
host |
string | yes | PS5 IP address |
defaults.port |
number | no | Default port (6969) |
defaults.timeout |
number | no | Default timeout ms (5000) |
Methods
| Method | Returns | Description |
|---|---|---|
send(message, [opts]) |
Promise<{ok}> |
Send a notification |
history([n]) |
Array |
Last n sent entries |
setHost(host) |
void |
Change the target PS5 IP |
Electron example
// main.js
const { PS5Notifier } = require('./PSNotifyModule');
const ps5 = new PS5Notifier(
'192.168.1.100',
{ timeout: 3000 }
);
// Call from anywhere in your app:
ipcMain.on('build-complete', async (_, version) => {
await ps5.send('Build complete', { subMessage: version }).catch(() => {});
});
Test
node test.js <ps5-ip>
node test.js <ps5-ip> "Custom message" "Sub text"
Or on Windows, double-click test.bat and enter your PS5 IP when prompted.
Files
| File | Purpose |
|---|---|
index.js |
Module — notify() + PS5Notifier class |
test.js |
Standalone test runner |
test.bat |
Windows batch launcher for test.js |
package.json |
Module metadata |
README.md |
This file |
Wire protocol (for reference)
The module sends a UTF-8 JSON line to the PS5 over TCP:
{"message":"Hello!","subMessage":"optional"}\n
The PS5 responds:
{"ok":true}\n