Querying an UPS for battery voltage

The_Unbeliever

Honorary Master
Joined
Apr 19, 2005
Messages
103,193
Reaction score
10,233
Location
Nkaaaaandla
Hi there

Anybody know how to query an UPS for its battery voltage?

We want to program the functionality into our program to monitor the UPS + battery at a remote site, without having to use any extra programs.

Regards

Libs
 
Is the UPS connected via the RS232 / Serial Interface or via the Ethernet Interface ?
 
Hey guys.

It is not an APC UPS, but makes use of the Megatec Protocol.

This is a Mecer UPS. I think they use a very basic Megatec protocol version as some commands are not supported fully, or is missing.

Here is a quick doccie on it :

Mecer UPS – HOWTO

This is a HOWTO on how to obtain data from the UPS via a serial link.

Make : Mecer
Model : ME-600-BK

Communications settings :

Baud rate : 2400
Data bits : 8
Stop bit : 1 bit
Parity : None
Flow control : None

Cabling :

Code:
 Computer		UPS
================================
   RX <---------   TX (pin 9)
   TX ---------->  RX (pin 6)
   GND ---------  GND (pin 7)

9-pin female-male D-type connector

Communication Protocol :

Unknown commands will be echoed back to the user. Commands are case sensitive, and must be in upper case when sent to the UPS, and must be followed by a <cr> (carriage return).

The UPS will respond back with information followed by a <cr> or action.

Status enquiry :

Computer : Q1<cr>
UPS : Will return a string in the format (AAA.A BBB.B CCC.C DDD EE.E FF.F GG.G b7b6b5b4b3b2b1b0<cr>

Interpretation :

Start byte = (

AAA.A = Input voltage. A is an integer ranging from 0 to 9. The unit is Volt.
BBB.B = Input fault voltage. B is an integer ranging from 0 to 9. The unit is Volt.
Extra interpretation : For an off-line UPS this is to identify a short duration voltage glitch which causes the UPS to go into Inverter mode.
For an on-line UPS this is to identify a short duration utility power failure which causes the UPS to switch over to battery.
CCC.C = Output Voltage. C is an integer ranging from 0 to 9. The unit is Volt.
DDD = Output Current. This is a percentage of the maximum current, and is not an absolute value.
EE.E = Input Frequency. E is an integer ranging from 0 to 9. The unit is Hz.

FF.F or F.FF = Battery Voltage. F is an integer ranging from 0 to 9. The unit is Volt.
For online units, battery voltage will be provided in the form F.FF
For offline units, battery voltage will be provided in the form FF.F
(note – during my testing the form was FF.F, and didn't change).
UPS type in the UPS status field will determine which reading to obtain (binary field)

GG.G = Temperature. T is an integer ranging from 0 to 9. The unit is degree of centigrade.

UPS status : binary field of 8 ascii characters

b7 = Utility Fail. 0 = power is on, 1 = power is off.
b6 = Battery Low. 0 = Battery Full, 1 = Battery Low.
b5 = Bypass/Boost or Buck Active. 0 = Off, 1 = On.
b4 = UPS Failed. 0 = OK, 1 = Failed.
b3 = UPS Type. 0 = Online, 1 = Standby (power failure)
b2 = Test Status. 0 = No Test, 1 = Test in Progress.
b1 = Shutdown. 0 = No shutdown, 1 = Shutdown Active.
b0 = Beeper. 0 = Off, 1 = On.

Example :

(228.9 229.4 228.9 013 49.9 13.6 25.0 00001001

228.9 = Input Voltage
229.4 = Fault Voltage (there was a slight surge)
228.9 = Output Voltage
013 = Output current is 13%
49.9= Frequency is 49.9Hz
13.6 = Battery Voltage
25.0 = Temperature in degrees of centigrade.
Power is on, Battery is full, No bypass, UPS is OK, UPS type is online, No test in progress, No shutdown in progress and the beeper is on.


UPS commands :

Q1<cr> – Status enquiry. Returns the status as explained above.
T<cr> - Test for 10 seconds. Returns nothing.
Q<cr> - Switches the annoying beeper on or off.

Credits goes to http://www.networkupstools.org/ups-protocols/megatec.html for making it available online. I cribbed most of his notes, and left the commands which was not accepted by the UPS out.
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X