[Nut-upsuser] The dreaded Tripp Lite SMART500RT1U and NUT

Steve Ballantyne steve.ballantyne at gmail.com
Tue Jul 1 13:17:28 UTC 2014


Hello Charles,

Thank you for all of your help this far.  I have made some great
progress.  I was hung up with all sorts of USB problems which we can
chalk up to a "blonde moment" for me (or more accurately, a *bald*
moment).  In all my starting over and screwing around, I had forgotten
to reinstall libusb-compat.  Duh!  I am now to a point that I think we
can dig a little deeper.

The patch that you provided me works fine, and allows a connection
with some basic values (see bottom of thread).

On Sat, Jun 28, 2014 at 12:13 AM, Charles Lepple <clepple at gmail.com> wrote:
> The ideal situation is a trace of all the USB commands that the
> Windows software sends. However, I think this is just a binary version
> of the 3003 protocol, so experimenting might be easier.
SNIP, SNIP
> I think the 'M' command shows the min and max voltages - see if there
> is something similar in the Windows display.

How would I go about providing you this stuff?  Can you point me to
something that would help trace out the USB data?  I can install the
software, and run it, but I would need some guidance on grabbing the
USB debug info.  This UPS has produces some really helpful data if we
can manage to yank it out of there.  Examples, charge remaining (in
percentage), temperature, age of the battery, date of last self test,
etc.

> Attached is a patch to try to map some of the 3005 differences into
> the driver. It should apply to the NUT 2.7.2 tarball, but it was
> generated from the Git master branch. If you do check out from Github,
> you'll need to install autoconf, automake and libtool. AsciiDoc is
> pretty slow, so you can pass "--without-doc" to the ./configure
> script. You may also want to add "--with-drivers=tripplite_usb" so
> that it doesn't try to compile everything.

Your patch, along with a lot of other Raspbian/Debian changes got me
up and running.  For any other fool that would dare attempt this ... I
am providing what it took to get this up and running.  Note that there
are some direct links in here to mirrors that could go belly up.  And
I may not be choosing the most ideal of permissions.  While you might
be able to copy and paste this into a shell script and run it ... I
would suggest stepping using these steps only as guidance.

### BEGIN SCRIPT ###

#some depencies from repo
sudo apt-get -y install m4 libtool libudev-dev automake

#fixing autoconf for later
sudo ln -s /usr/share/autoconf/Autom4te /usr/local/share/autoreconf/Autom4te
sudo ln -s /usr/bin/autom4te /usr/local/bin/autom4te
sudo ln -s /usr/bin/autoconf /usr/local/bin/autoconf
sudo ln -s /usr/bin/autoheader /usr/local/bin/autoheader

#installing nut dependencies
mkdir nut-depends
cd ./nut-depends

# acscripts from source
wget http://sourceforge.net/projects/acscripts.berlios/files/acscripts-0.0.1.13.tar.bz2
tar xf acscripts-0.0.1.13.tar.bz2
sudo mkdir /usr/lib/scripts
sudo mv acscripts-0.0.1.13 /usr/lib/scripts/acscripts

#autoreconf from source
wget http://sourceforge.net/projects/autoreconf/files/0.0.0.1/autoreconf-0.0.0.1.tar.bz2
tar xf autoreconf-0.0.0.1.tar.bz2
cd autoreconf-0.0.0.1
./configure && sudo make install
cd ..

#libusb and libusb-compat from source
wget "http://downloads.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.18/libusb-1.0.18.tar.bz2?r=http%3A%2F%2Fwww.libusb.org%2F&ts=1404210716&use_mirror=softlayer-ams"
-O libusb-1.0.18.tar.bz2
tar -xjf libusb-1.0.18.tar.bz2
cd libusb-1.0.18
./configure && sudo make install
cd ..
wget "http://downloads.sourceforge.net/project/libusb/libusb-compat-0.1/libusb-compat-0.1.4/libusb-compat-0.1.4.tar.bz2?r=http%3A%2F%2Fwww.libusb.org%2F&ts=1404210428&use_mirror=softlayer-ams"
-O libusb-compat-0.1.4.tar.bz2
tar -xjf libusb-compat-0.1.4.tar.bz2
cd libusb-compat-0.1.4
./configure && sudo make install
cd ..

#get back to home root
cd ..

#download nut from dev repo
git clone git://github.com/networkupstools/nut.git
cd nut

#patch for TrippLite SMART500RT1U
wget http://lists.alioth.debian.org/pipermail/nut-upsuser/attachments/20140628/a7e23666/attachment.bin
-O charles-tripplite.patch
patch -p1 < charles-tripplite.patch

echo "Running autogen ..."
./autogen.sh

#create some groups and directories and mod some persmissions
sudo groupadd nut
sudo usermod -a -G nut pi
sudo usermod -a -G nut root
sudo mkdir /var/run/nut
sudo chown root:nut /var/run/nut
sudo mkdir -p /var/state/ups
sudo chown root:nut /var/state/ups
sudo chmod 0770 /var/state/ups

#now we ./configure and make it
./configure --without-doc --with-drivers=tripplite_usb,upsdrvctl

#still tries to build docs, even though I said NO to docs
cp Makefile Makefile.orig
sed -i 's/include common clients conf data tools docs drivers/include
common clients conf data tools drivers/' Makefile

make
sudo make install

### END SCRIPT ###

### BEGIN CONFIG FILE CHANGES / STARTUP ###

sudo vi /usr/local/ups/etc/ups.conf

[SMART500RT1U]
        driver = tripplite_usb
        port = auto
        desc = "Tripp Lite SmartUPS 500RT 1U"

sudo vi /etc/udev/rules.d/90-nut-ups.rules

# TrippLite UPS [09ae:0001]
ACTION=="add", \
SUBSYSTEM=="usb", \
ATTR{idVendor}=="09ae", ATTR{idProduct}=="0001", \
MODE="0666", GROUP="nut"

sudo vi /usr/local/ups/etc/upsd.users

[pi]
        password = pi
        upsmon master
MONITOR SMART500RT1U at localhost 1 pi pass master

sudo vi /usr/local/ups/etc/upsd.conf # DEFAULTS
# LISTEN ::1 3493
# LISTEN localhost 3493

sudo chown root:nut /usr/local/ups/etc/upsd.conf /usr/local/ups/etc/upsd.users
sudo chmod 0640 /usr/local/ups/etc/upsd.conf /usr/local/ups/etc/upsd.users

sudo /usr/local/ups/sbin/upsdrvctl -u pi start

sudo /usr/local/ups/sbin/upsd -u pi -4

### END CONFIG FILE CHANGES / STARTUP ###


## TESTING DUMP! ##

# Plugged into 120v outlet ...
pi at raspberrypi ~/nut $ /usr/local/ups/bin/upsc SMART500RT1U at localhost
battery.voltage.nominal: 12
device.mfr: Tripp Lite
device.model: SMART500RT1U
device.type: ups
driver.name: tripplite_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.2-signed-19-g90e2790
driver.version.internal: 0.24
input.voltage.nominal: 120
outlet.1.desc: Load 1
outlet.1.id: 1
outlet.1.switch: 1
outlet.1.switchable: 1
outlet.2.desc: Load 2
outlet.2.id: 2
outlet.2.switchable: 0
ups.debug.D: 00 79 00 8b 0d 00 00 '.y.....'
ups.debug.L: 00 00 00 07 58 58 0d '....XX.'
ups.debug.load_banks: 1
ups.debug.M: 00 74 00 7f 0d 00 00 '.t.....'
ups.debug.P: 30 30 35 30 30 58 0d '00500X.'
ups.debug.S: 01 04 00 00 64 00 0d '....d..'
ups.debug.T: 20 00 02 57 01 58 0d '...W.X.'
ups.debug.V: 02 00 0c 01 58 58 0d '....XX.'
ups.delay.shutdown: 64
ups.firmware: F334401
ups.firmware.aux: protocol 3005
ups.id: 0
ups.mfr: Tripp Lite
ups.model: SMART500RT1U
ups.power.nominal: 500
ups.productid: 0001
ups.status: OL
ups.vendorid: 09ae

# UNPLUGGED!
pi at raspberrypi ~/nut $ /usr/local/ups/bin/upsc SMART500RT1U at localhost
battery.voltage.nominal: 12
device.mfr: Tripp Lite
device.model: SMART500RT1U
device.type: ups
driver.name: tripplite_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.2-signed-19-g90e2790
driver.version.internal: 0.24
input.voltage.nominal: 120
outlet.1.desc: Load 1
outlet.1.id: 1
outlet.1.switch: 1
outlet.1.switchable: 1
outlet.2.desc: Load 2
outlet.2.id: 2
outlet.2.switchable: 0
ups.debug.D: 00 00 00 84 0d 00 00 '.......'
ups.debug.L: 00 00 00 07 58 58 0d '....XX.'
ups.debug.load_banks: 1
ups.debug.M: 00 00 00 7f 0d 00 00 '.......'
ups.debug.P: 30 30 35 30 30 58 0d '00500X.'
ups.debug.S: 01 04 00 01 64 00 0d '....d..'
ups.debug.T: 20 00 00 00 01 58 0d '.....X.'
ups.debug.V: 02 00 0c 01 58 58 0d '....XX.'
ups.delay.shutdown: 64
ups.firmware: F334401
ups.firmware.aux: protocol 3005
ups.id: 0
ups.mfr: Tripp Lite
ups.model: SMART500RT1U
ups.power.nominal: 500
ups.productid: 0001
ups.status: OB
ups.vendorid: 09ae

# Replugged!
pi at raspberrypi ~/nut $ /usr/local/ups/bin/upsc SMART500RT1U at localhost
battery.voltage.nominal: 12
device.mfr: Tripp Lite
device.model: SMART500RT1U
device.type: ups
driver.name: tripplite_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.2-signed-19-g90e2790
driver.version.internal: 0.24
input.voltage.nominal: 120
outlet.1.desc: Load 1
outlet.1.id: 1
outlet.1.switch: 1
outlet.1.switchable: 1
outlet.2.desc: Load 2
outlet.2.id: 2
outlet.2.switchable: 0
ups.debug.D: 00 79 00 81 0d 00 00 '.y.....'
ups.debug.L: 00 00 00 07 58 58 0d '....XX.'
ups.debug.load_banks: 1
ups.debug.M: 00 00 00 7f 0d 00 00 '.......'
ups.debug.P: 30 30 35 30 30 58 0d '00500X.'
ups.debug.S: 01 04 00 00 5a 00 0d '....Z..'
ups.debug.T: 20 00 02 58 01 58 0d '...X.X.'
ups.debug.V: 02 00 0c 01 58 58 0d '....XX.'
ups.delay.shutdown: 64
ups.firmware: F334401
ups.firmware.aux: protocol 3005
ups.id: 0
ups.mfr: Tripp Lite
ups.model: SMART500RT1U
ups.power.nominal: 500
ups.productid: 0001
ups.status: OL
ups.vendorid: 09ae
pi at raspberrypi ~/nut $


Steve Ballantyne
Network Engineer
MCSE/MCDST; Novell CLA; LPIC-1; CTT+; A+; Network+; Linux+; Server+;
I-Net+; Security+; SonicWALL CSSA



More information about the Nut-upsuser mailing list