I changed my setup again.

I’m now the proud owner of an APC Smart-UPS 750.

The UPS is many times larger than the actual server.
The UPS is many times larger than the actual server.

Why? Because I got it as a gift, and I have never actually had an UPS before, so it makes for a good introduction to this world.

Overview

My setup is quite basic: everything that I have on my table (server, monitor, laptop) is connected through the UPS. Since my setup uses very little power, I’m running way below the output limit of 500 watts.

When I’m not using my laptop, the UPS reports itself at 10% utilization. My server and the UPS itself seems to consume around 35-40 watts, as measured by an energy meter. When the laptop and monitor are also powered on, the load is around 15-25%, depending on the workload.

To make sure that I get the full benefit of the UPS, I connected it to my server with an USB cable and installed apcupsd. By default, the daemon could not detect the UPS, which was then fixed with the help of this StackExchange answer:

I had the same problem with COMMLOST with a USB connection, after a lot of research I found by pure hazard that with a USB connection you should change DEVICE /dev/ttys0 to DEVICE in /etc/apcupsd/apcupsd.conf with nothing after it, this way apcupsd search everywhere on the system to find the UPS and connect correctly, no more COMMLOST.

After that, restart apcupsd with:

$ sudo /etc/init.d/apcupsd restart

With the UPS connected and the service up and running, I could now see more detailed specs. The output for apcaccess looks something like this:

APC      : 001,043,1007
DATE     : 2022-02-04 21:49:08 +0200  
HOSTNAME : deskmini
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : deskmini
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2022-02-01 05:45:50 +0200  
MODEL    : Smart-UPS 750 
STATUS   : ONLINE 
LINEV    : 241.9 Volts
LOADPCT  : 9.1 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 98.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 241.9 Volts
SENSE    : High
DWAKE    : -1 Seconds
DSHUTD   : 90 Seconds
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 0.0 Percent
ITEMP    : 33.3 C
ALARMDEL : 30 Seconds
BATTV    : 27.4 Volts
LINEFREQ : 50.0 Hz
LASTXFER : No transfers since turnon
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STESTI   : 14 days
STATFLAG : 0x05000008
MANDATE  : 2007-03-16
SERIALNO : < serial number goes here >
BATTDATE : 2007-03-16
NOMOUTV  : 230 Volts
NOMBATTV : 24.0 Volts
FIRMWARE : 651.13.I USB FW:7.3
END APC  : 2022-02-04 21:49:10 +0200  

I’ve seen some unintentionally funny abbreviations, but CUMONBATT takes the cake.

Battery runtime test

To test out the state of the batteries and understand how the UPS handles power failure scenarios, I decided to pull the plug and see what happens next.

The first thing you’ll notice is the beeping. It’s not quite as loud as a smoke detector, but I couldn’t blame my neighbours for thinking that this was the case. To silence the UPS, just press the power on/test button (the one with the | on it).

While on batteries, the UPS emits a hum that’s not too different from the one present near some power stations and transformers. Other than that, it doesn’t get awfully loud or anything, at least on a small load.

I continued using my laptop and monitor while keeping an eye on the apcupsd daemon and apcaccess output. The estimated runtime was around the 60 minute mark and it ended up being quite close to the actual figure.

Around the 10% capacity mark apcupsd triggered a shutdown of the server. The UPS still provided power at that point. I decided to supply the UPS with power again and turn on my server. To my surprise, the UPS now cut off all output power and started blinking some lights, one of them indicating some sort of an issue with the battery. I turned everything off, then on again and the UPS was just fine.

I’m not sure if the last incident was intended behaviour or my inexperience causing an issue.

Power usage

The goal of moving my setup to an efficient machine was to experiment with how low can I go with the power usage of my setup. Unfortunately with the introduction of the UPS I have wiped out almost all of the gains that I got from the move. The UPS itself seems to constantly consume around 17-18 watts, which is just a bit more than my server itself is using.

However, I hope that the reliability improvements and various protections that come with the use of an UPS make up for that downside.

LAN resilience

With the initial setup that I had, the server and the UPS were both on my desk. In the event of a power outage, the server, my laptop and all the connected peripherals would continue working. The only issue is that the networking won’t work in such a scenario, as both the ISP provided modem-router box and my own router would be knocked offline. What use is a server disconnected from the network?

Since I use my laptop for work, I’m not too worried about it losing power. Laptops have batteries, so in the event of a power outage, it will just continue running off of the internal battery.

I’ve configured my router to resolve my own domains internally, meaning that even when I cannot connect to the Internet, my locally hosted services will keep working in some capacity.

With all of this in mind, I decided to move my setup closer to my main router.

Not the prettiest setup, but it does do the trick, and it makes for a good conversation starter.
Not the prettiest setup, but it does do the trick, and it makes for a good conversation starter.

Power goes out, my server and local network will still keep on working for up to 2 hours due to the low combined power usage.

Desktop integration

When testing the UPS on my main workstation (ThinkPad T430 running Fedora 35), I was positively surprised by the out of the box experience that I had with the UPS. With the USB cable connected to the laptop and the apcupsd service running in the background, I could see the remaining battery life of the UPS the same way that the laptop battery shows up.

The UPS showing up as the main battery in GNOME 41.
The UPS showing up as the main battery in GNOME 41.

And once I ran out the batteries, I got a notification saying that the UPS was about to run out of power soon.

Warning notification that pops up once the UPS is running low on power.
Warning notification that pops up once the UPS is running low on power.

I love seeing these relatively niche use cases supported out of the box. Props to the developers behind these quality of life improvements!

Conclusion

Would I have gone out and bought this UPS if I didn’t receive it as a gift? Probably not, because I didn’t see much of a need for one.

Now that I have it, will I keep using it? Definitely, assuming that the inevitable battery replacement cost is reasonable and the process of changing them is easy enough for an enthusiast to handle.

From the manual:

For Professional Business Applications – Not For Consumer Use

Look, ma, I’m a professional now!