Wonder Controlz follows a centralized logic, decentralized I/O approach — inspired by industrial automation (PLC + fieldbus).
┌──────────────────────┐
│ Node-RED │ ← Central game logic
│ (Main PC) │ All scenarios in one place
└──────────┬───────────┘
│
CAN bus ────────┼──────── HTTP REST
(I/O modules) │ (media, lights)
│
┌──────────┬──────────┬──────┼──────┬───────────┬───────────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼
┌────────┐ ┌────────┐ ┌──────┐ ┌──────────┐ ┌───────────┐ ┌───────────┐
│er-01- │ │er-dio- │ │er- │ │ er-audio │ │ er-lights │ │mpv-control│
│rev-a │ │01 │ │rfid │ │ audio │ │ lighting │ │ video │
└────────┘ └────────┘ └──────┘ └──────────┘ └───────────┘ └───────────┘
The core design principle of Wonder Controlz. No device in the room contains any game logic. I/O modules, media players, and lighting controllers only execute commands and report events. All decision-making lives in one place: Node-RED on the Main PC.
This means:
All I/O modules connect to the Main PC via a single 4-wire CAN bus cable (24V + GND + CAN_H + CAN_L). The cable carries both power (24V) and data (500 kbps). Messages use the custom ER-Frame protocol.
Software products (er-audio, mpv-control, er-lights) are controlled via HTTP REST API. All endpoints use GET requests for seamless integration with Node-RED's HTTP request node.
The er-lights hardware controller receives lighting data over Ethernet (UDP port 5568) using the ERLED480 or sACN/E1.31 protocol.