NUT config: PowerWalker VFI ICR IoT
Network UPS Tools setup for a PowerWalker VFI ICR IoT UPS.
- Master: one host connected to the UPS via USB (
nutdrv_qx), runsupsd+upsmon, and serves status to the network on port3493/tcp. - Clients: any other Linux hosts run
upsmonas network slaves and shut down gracefully when the master signals a power failure (FSD).
This avoids the undocumented Modbus TCP register map entirely. If you ever
want a pure-network (no USB) setup, you would need the Modbus register map
from PowerWalker support plus the nutdrv_modbus driver -- not used here.
Layout
master/etc/nut/ config for the USB-connected host
client/etc/nut/ config for each network slave
install-master.sh deploy + permissions on the master
install-client.sh deploy on a client: sudo ./install-client.sh <MASTER_IP>
Quick start
Master (USB host)
sudo ./install-master.sh
# edit /etc/nut/upsd.users -> set monmaster / monslave passwords
# edit /etc/nut/upsmon.conf -> set the same monmaster password
sudo nutdrv_qx -a test -DD -x port=auto # confirm the driver reads values
sudo systemctl enable --now nut-server nut-monitor
upsc ups@localhost
If the test shows no/garbled values, retry with:
sudo nutdrv_qx -a test -DD -x port=auto -x protocol=voltronic -x novendor
and uncomment the matching lines in master/etc/nut/ups.conf.
Each client
sudo ./install-client.sh <MASTER_IP>
# edit /etc/nut/upsmon.conf -> set the monslave password
sudo systemctl enable --now nut-monitor
upsc ups@<MASTER_IP>
Notes
- Open
3493/tcpon the master firewall for your client subnets. runtimecalinups.conf: these UPS models may not report runtime; NUT then estimates it. Format:sec_at_full,full_pct,sec_at_half,half_pct. Adjust to your battery / EBM configuration.upsd.usersholds plaintext credentials and is gitignored. Keep the real file off the repo; distribute it out of band (or via your secrets tooling).- To also cut UPS output power after the master shuts down, look into
upsdrvctl shutdown/ thePOWERDOWNFLAGmechanism -- intentionally left out here to keep the first deployment simple.