Your UPS speaks NUT now.
Plug a USB UPS into the board. It joins your Wi-Fi and serves standard NUT, so anything that already talks to a UPS just works.
Get a Pal: COMING SOONRead the docs
Your UPS is not always next to a computer.
Plenty of UPSes live in a closet, a garage or a cabin, nowhere near a PC. The usual fix is a Raspberry Pi, which is more computer than the job needs and costs more than it should.
My UPS Pal does one thing: it reads your UPS and shares it on your network. Add it to the monitoring you already use, and reach UPSes at other locations over Tailscale.
$ upsc myups@ups-esp32-a1b2
battery.charge: 100
battery.runtime: 1860
ups.status: OL
ups.load: 18
$ pal says: all good ◡
# Settings → Devices & services
Add integration: NUT
Host: ups-esp32-a1b2.local
Port: 3493
✓ UPS found, entities added
# Hardware & Power → UPS
UPS type: Synology UPS server
Server IP: 192.168.1.50
✓ Connected, safe shutdown armed
REMOTE MONITORINGAllows remote monitoring via Tailscale.
Check your UPS from anywhere, privately, with no port forwarding.
All good
Topping up
Uh-oh!
Zzz…
02:13 mains ok
02:14 mains lost → on battery
02:19 mains back → charging
SAFE UPDATESBad update? It rolls itself back.
If a firmware update over the air fails to boot or run properly, My UPS Pal automatically reverts to the last working version. No cables, no bricked board.
OPEN SOURCEFirmware under GPL-3.0. Read it, build it, change it.
# grab the source
$ git clone https://github.com/aronreid/ups-to-esp32.git
Needs an ESP32-S3 with USB host.