A transparent, always-on-top Windows overlay that shows Marstek battery SOC via the local UDP JSON-RPC API.
- Node.js 18+ (includes npm)
- Windows 10/11 on the same network as the Marstek device
npm install
npm run devnpm run build
npm run packageOpen the Settings panel in the overlay to change:
- Device IP (default
192.168.50.120) - UDP port (default
30000, recommended range 49152–65535 per Marstek docs) - Polling interval in ms (default
5000for testing)
The app uses the local UDP JSON-RPC endpoint described in the Marstek Open API PDF and calls:
{"id":1,"method":"Bat.GetStatus","params":{"id":0}}SOC is read from response.result.soc.
- UDP timeout: ensure the PC and Marstek device are on the same subnet.
- Windows firewall: allow UDP traffic for the app.
- Wrong IP/port: verify your Marstek device LAN IP and port in its local API settings.
Use the Click-through button to toggle mouse pass-through. When ON, the overlay ignores mouse events so you can interact with windows underneath.