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:
- Choose the correct driver.
- Don’t select the
auto
option. It’s unreliable. You will get a lot of annoying UPS Communication Lost/established messages. - 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.
Command | Works on a PowerShield Defender 1200VA UPS |
---|---|
beeper.toggle | Yes. Use upsc ups to check the ups.beeper.status variable. |
load.off | Yes. Use with caution. Servers will lose power immediately. |
load.on | |
shutdown.return | |
shutdown.stop | |
test.battery.start | No. Console message blazer_usb 56098 - - instcmd: command [test.battery.start] failed |
test.battery.start.deep | No. Console message blazer_usb 56098 - - instcmd: command [test.battery.start.deep] failed |
test.battery.start.quick | Yes. You can hear the unit do a 10 second test. |
test.battery.stop | No. 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"
Comments