PS5 status monitor and integration hub. Displays real-time game activity via Discord Rich Presence (KLOG/EtaHen) and features a modular Plugin System for custom IoT, Home Assistant, and monitoring integrations.
⚠️ Warning: For temperature and frequency statuses in HAOS, install AirPSX and activate on your PS5 JB.
- Modular Architecture: Extend functionality using Python plugins (e.g., web dashboard, session logger).
- Discord Rich Presence: Shows current game, artwork, and session time.
- Home Assistant (MQTT) Integration: Exports status, game details, and hardware telemetry.
- Real-time PS5 Monitoring: Connects to KLOG (port 9081) for instant Title ID detection.
- Hardware Telemetry: Scrapes internal PS5 debug stats such as CPU/SoC temperature and frequency.
- Game Data & Caching: Fetches game data and artwork with local caching.
- CustomTkinter GUI: Clean modern UI with system tray support.
- Auto Reconnect: Robust connection and recovery mechanisms.
This project uses asynchronous libraries and requires specific tools for stats monitoring.
Install all dependencies:
pip install -r requirements.txtOr manually:
customtkinter
pystray
Pillow
pypresence
paho-mqtt
playwright
beautifulsoup4
httpx
requests
Required for hardware stats scraping:
playwright install chromium- Connects to PS5 KLOG (Title ID detection)
- Connects to PS5 debug server for hardware stats
- Any status change triggers the
on_core_updateevent.
- DiscordHandler updates Discord Rich Presence.
- HAOSHandler publishes MQTT telemetry.
- Plugins receive real-time data automatically.
| Component | Port / Destination | Purpose |
|---|---|---|
| KLOG Monitor | 9081 | Detects Title ID & power state |
| Stats Monitor | 1214 | Reads hardware telemetry |
| Game Scraping | Web scraping | Fetches covers & titles from patch servers |
A pre-built PyInstaller EXE is available in the Releases section of the repository for easy run.
- Create a Discord application and obtain Client ID.
- Ensure your PS5 has a static LAN IP.
- Create a
pluginsfolder for custom modules.
python main.pyHeadless mode:
python main.py --noguiReload plugins instantly through the GUI.
- General Tab: PS5 IP settings, plugin reload, global logs.
- Discord / Home Assistant Tabs: Dedicated configuration panels.
- Dynamic Plugin Tabs: Automatically created per plugin.
File Purpose
config.json User settings & plugin configuration
ps5_game_cache.json Cached game metadata
pyinstaller --noconsole --onefile --clean --name "PS5 Monitor Hub" --icon=icon.ico main.py

