PowerShield Defender 1200VA UPS and TrueNAS

The PowerShield Defender 1200VA UPS is the only Australian built UPS on the NUT Hardware Compatibility List (HCL).

TrueNAS Configuration

TrueNAS is able to report on a number of UPS events. To receive notifications, just make sure you’ve configured Alert Services.

Next, configure the UPS service to make it aware of a connected Defender unit.

Key points:

  1. Choose the correct driver.
  2. Don’t select the auto option. It’s unreliable. You will get a lot of annoying UPS Communication Lost/established messages.
  3. At a minimum, define a user so that commands can be sent to the UPS.

Send commands to the UPS

Output from upscmd -l:

root@truenas-b2:~ # upscmd -l ups
Instant commands supported on UPS [ups]:

beeper.toggle - Description unavailable
load.off - Description unavailable
load.on - Description unavailable
shutdown.return - Description unavailable
shutdown.stayoff - Description unavailable
shutdown.stop - Description unavailable
test.battery.start - Description unavailable
test.battery.start.deep - Description unavailable
test.battery.start.quick - Description unavailable
test.battery.stop - Description unavailable

To execute a command enter upscmd -u user -p secret ups command. Not all commands will work though.

CommandWorks on a PowerShield Defender 1200VA UPS
beeper.toggleYes. Use upsc ups to check the ups.beeper.status variable.
load.offYes. Use with caution. Servers will lose power immediately.
test.battery.startNo. Console message blazer_usb 56098 - - instcmd: command [test.battery.start] failed
test.battery.start.deepNo. Console message blazer_usb 56098 - - instcmd: command [test.battery.start.deep] failed
test.battery.start.quickYes. You can hear the unit do a 10 second test.
test.battery.stopNo. Console message blazer_usb 56098 - - instcmd: command [test.battery.stop] failed

Check UPS status variables

Output from upsc ups:

root@truenas-b2:~ # upsc ups
battery.charge: 100
battery.voltage: 27.40
battery.voltage.high: 26.00
battery.voltage.low: 20.80
battery.voltage.nominal: 24.0
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ugen0.2
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.internal: 0.12
input.current.nominal: 5.0
input.frequency: 50.1
input.frequency.nominal: 50
input.voltage: 239.6
input.voltage.fault: 239.6
input.voltage.nominal: 240
output.voltage: 239.6
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 14
ups.productid: 5161
ups.status: OL
ups.type: offline / line interactive
ups.vendorid: 0665

Regular Battery Testing

To periodically test the battery condition, add a cron job in the TrueNAS UI with the following line:

upscmd -u user-p secret ups test.battery.start.quick

You can run this weekly, or more frequently if you wish. If the battery requires replacement, you should receive a notification through the TrueNAS alert service.

Runtime Estimation

Referring to the NUT driver BLAZER_USB(8) the defender unit uses and the PowerShield Run Chart (extract below)…

…I’ve come up with the following table:

Note that the highlighted figures in red are extrapolated from figures supplied in the run chart.

From this table, I’ve come up with the following values for runtimecal:

runtimecal = 180,100,360,75,780,50,1800,25

Auxiliary Parameters

I’ve added these auxiliary parameters (ups.conf) to the UPS service:

default.runtimecal = 180,100,360,75,780,50,1800,25
default.ups.vendor = "PowerShield"
default.ups.product = "Defender 1200VA"

Keep Reading



Leave a Reply