Table of Contents

Setting up a UPS with TrueNAS

TrueNAS supports monitoring UPS' using the open source Network UPS Tool (aka NUT). While they have done a good job of automating discovery, sometimes it is difficult to figure out which device is which when a UPS is plugged into a USB port.

Find UPS plugged into a USB port

The command

usbconfig

is your friend here. In this real life case, I found the Cyberpower PR1500 plugged in at ugen0.4.

ugen0.4: <CyberPower Systems PR1500LCDRTXL2U> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (50mA)

It is on bus 0, port 4, so look for the direct link to that. It will either be called ugen* or uhid* in /dev

ls -ablph /dev/ugen* ; ls -ablph /dev/uhid*

This shows all entries named ugen* or uhid*, with the link that it actually points to.

lrwxr-xr-x  1 root  wheel     9B Nov 18 17:55 /dev/ugen0.4 -> usb/0.4.0

So, the device it is hooked up to is /dev/ugen0.4.

Setting up the UPS

Open the TrueNAS WebUI and go to Services, then Actions for UPS

  1. Identifier: ups (or anything you want)
  2. UPS Mode: Master
  3. Driver: find something close. For my PR1500, I used PR6000
  4. Port: auto (or choose ugen0.4 that you found above)
  5. Shutdown: UPS goes on battery
  6. Shutdown Timer: 600 (seconds, or 10 minutes)
  7. Save

Testing

Start the UPS service. You can now drop to the shell and run the command:

upsc ups

where 'ups' is the name you chose as Identifier.

If it all appears to be working, put a check for Automatically start. NOTE: you can view some stats on the UPS under Reporting.

ipmi shows a difference

If you use ipmitool to display the amount of power the server is using

ipmitool sensor

You might see a different number than the power your UPS is showing with

upsc ups

.

First, ipmitool is probably showing Watts while the UPS may be showing Volt-Amps (VA). In an AC circuilt, these can be different.

Second, your UPS uses additional power to keep the batteries topped off, and also just for some internal circuitry, so it should show a different power (higher) than what your server actually uses.

On my setup, with a Cyberpower UPS powering an older Dell server, I used the command:

ipmitool sensor | grep 'Power Meter' | cut -d'|' -f2
upsc ups | egrep 'ups.load|ups.realpower.nominal'