[Nut-upsuser] TRIPPLITE OMNIVSINT80 Compatibility

Dave Williams dave at opensourcesolutions.co.uk
Thu Sep 25 21:51:24 UTC 2014

Using this UPS in the UK on 240V mains.

Connected via USB:
  Bus 001 Device 002: ID 09ae:0001 Tripp Lite

Requires tripplite_usb driver as it is (Product ID: 0001).  There is an
entry in the compatibity list for OMNIVS800 USB (protocol 2012) using
usbhid-ups which is little misleading (although I guess maybe correct
for some instances of the UPS).

OMNIVS1000 USB (older; product ID: 0001) is shown correctly so maybe 
the OMNIVSING800 just needs to be added to the list next to it.

UDEV Rules are showing it correctly when decoding the USB ID as above.

Seems to work as far as I have tested so far but upsc reports:

upsc reports 
battery.charge: 100
battery.voltage: 14.56
battery.voltage.nominal: 12
device.mfr: Tripp Lite
device.model: OMNIVSINT800
device.type: ups
driver.name: tripplite_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.6.4
driver.version.internal: 0.20
input.voltage: 124.00       <============ WRONG
input.voltage.nominal: 230
output.voltage: 120.0       <============ WRONG
ups.debug.load_banks: 0
ups.debug.V: 32 30 32 58 58 58 0d '202XXX.'
ups.delay.shutdown: 64
ups.firmware: F1145.A
ups.firmware.aux: protocol 1001
ups.mfr: Tripp Lite
ups.model: OMNIVSINT800
ups.power.nominal: 800
ups.productid: 0001
ups.status: OL
ups.vendorid: 09ae

Note the two wrong values being reported.

They are, in fact out, by a factor of just over 2 (2.04 measured for output
voltage and 1.95 for input voltage as reported by my main UPS).  Whether there
is anything being returned that helps differentiate its a 240v model I dont

This is, at least, consistent with decode_v() in the driver src:

void decode_v(const unsigned char *value)
	unsigned char ivn, lb;
	int bv = hex2d(value+2, 2);

 	ivn = value[1];
	lb = value[4];

	switch(ivn) {
		case '0': input_voltage_nominal = 
			  input_voltage_scaled  = 100;

		case '1': input_voltage_nominal = 
			  input_voltage_scaled  = 120;

		case '2': input_voltage_nominal = 
			  input_voltage_scaled  = 230;

		case '3': input_voltage_nominal = 208;
			  input_voltage_scaled  = 230;

			  upslogx(2, "Unknown input voltage range: 0x%02x", (unsigned int)ivn);
given ups.debugV[1] has the value 0.

Anyway I can sort of live with it as it is and apply the correction factor externally.


More information about the Nut-upsuser mailing list