The issue I had was the runtime remaining was always below 5 mins even though it has a brand new APC legit battery.
Finally figured out somehow the Battery Constant for the UPS was broken so I needed to re-program it so that the runtime showed correctly.
For this you need to connect to the serial port (not USB) and need a correctly wired serial cable.
As per this blog entry: https://alioth-lists.debian.net/pipermail/nut-upsuser/2005-August/000118.html
CHASSIS 9 <---------- < 5 SG (Ground/Signal Ground)
TXD 2 <---------- < 2 RXD
RXD 1 <---------- < 3 TXD
Then you should be able to use Putty or similar terminal tool with the setting of 2400 8/N/1 and make sure XON/XOFF Flow control is enabled (as I had it off and it doesn't work without it)
Next steps, as per these two blogs: https://conetrix.com/blog/manually-esetting-an-apc-smart-ups-battery-constant-after-new-battery-replacement or https://alioth-lists.debian.net/pipermail/nut-upsdev/2006-June/000938.html
Make sure you have removed NMC cards, USB cables and everything that is connected to the UPS.
apcupsd documents a number of different constants, use at your own risk: http://www.apcupsd.com/manual/manual.html#resetting-the-ups-battery-constant
Check if there is a connection (Type Shift + Y, should return **SM** ). Do not enter any other characters via Hyperterminal other than that described in these instructions because this can cause irreparable damage to the UPS
Type **1**, wait 2-3 secs and type **1** again (Should return **Prog**)
Enter a **0** and the UPS reports the present value of the battery constant. If this value does not correspond to the default value that was given to you by RM Support or APC , it must be changed.
If this value is not correct, press **+** or **-** until the correct value is returned.
The Smart-UPS 750 XL value I have on another 750 XL that is working fine and the value it has is 9E the UPS that wasn't working correctly had 17.
I updated the broken UPS by increasing the value from 17 to 9E.. and Hey presto at 30% load and would last for about an hour.
Press **R** to close the session. (Should return **Bye**)
Enter **<Shift> Y**, the UPS reports again with **SM**.
Enter **0** once again and check if the UPS reports back the standard setting that has been set.
Other related posts:
Active Directory Kerberos authentication with Apache on Linux