September 3, 2026

Install a UPS in 2026

My Cyberpower CP1500PFCLCD arrived yesterday.

It has 10 outlets on the back. 5 have battery power, 5 only have surge protection. I start with my linux machine, plugging the machine into a battery powered outlet and the monitor into a surge protected outlet.

USB monitoring

I connect the unit using the USB cable to my linux machine and see:
Sep  3 09:18:38 trona kernel: usb 1-1.2: new full-speed USB device number 9 using ehci-pci
Sep  3 09:18:38 trona kernel: usb 1-1.2: New USB device found, idVendor=0764, idProduct=0601, bcdDevice= 2.00
Sep  3 09:18:38 trona kernel: usb 1-1.2: New USB device strings: Mfr=3, Product=1, SerialNumber=2
Sep  3 09:18:38 trona kernel: usb 1-1.2: Product: CP1500PFCLCDa
Sep  3 09:18:38 trona kernel: usb 1-1.2: Manufacturer: CPS
Sep  3 09:18:38 trona kernel: usb 1-1.2: SerialNumber: CXXRS7000562
Sep  3 09:18:38 trona kernel: hid-generic 0003:0764:0601.0009: hiddev98,hidraw8: USB HID v1.10 Device [CPS CP1500PFCLCDa] on usb-0000:00:1a.0-1.2/input0
My plan is to use NUT which is available in Fedora packages.

Power panel "personal"

They offer this as a free download for linux. I'll try it before diving into NUT.

A quick note here. This "just works". NUT on the other hand is extremely complex with a big learning curve. Ultimately I want NUT because it will allow me to have two machines on one UPS with the USB cable from the UPS connected to only one.

They offer an RPM, deb package, and tarball. I download the rpm and use dnf to install it.
su
dnf install PPL_64bit_v1.4.2.rpm
No icon appears, so I do this to see what files it provided:
rpm -qlp PPL_64bit_v1.4.2.rpm
/etc/hibernate.sh
/etc/pwrstatd-email.sh
/etc/pwrstatd-lowbatt.sh
/etc/pwrstatd-powerfail.sh
/etc/pwrstatd.conf
/etc/shutdown.sh
/usr/sbin/pwrstat
/usr/sbin/pwrstatd
/usr/share/doc/packages/powerpanel/LICENSE
/usr/share/doc/packages/powerpanel/README
/usr/share/doc/packages/powerpanel/deploy-guide
/usr/share/doc/packages/powerpanel/install-guide
/usr/share/doc/packages/powerpanel/user-manual
/usr/share/man/man8/pwrstat.8.gz
/usr/share/man/man8/pwrstatd.8.gz
/usr/share/powerpanel
/usr/share/powerpanel/cacert
/usr/share/powerpanel/cacert/cacert.pem
/usr/share/powerpanel/lib
/usr/share/powerpanel/lib/libcrypto.so.1.1
/usr/share/powerpanel/lib/libjson-c.so.5.1.0
/usr/share/powerpanel/lib/libpaho-mqtt3cs.so.1.3.1
/usr/share/powerpanel/lib/libssl.so.1.1
/usr/share/powerpanel/mqttcert
/usr/share/powerpanel/mqttcert/pwrstatd.cacrt
/usr/share/powerpanel/mqttcert/pwrstatd.ccrt
/usr/share/powerpanel/mqttcert/pwrstatd.ckey
/usr/share/powerpanel/post-install.sh
/usr/share/powerpanel/pre-install.sh
/usr/share/powerpanel/pre-uninstall.sh
/usr/share/powerpanel/script
/usr/share/powerpanel/script/pwrstatd.service
After a bit of experimentation, I do this:
/usr/sbin/pwrstat -status

The UPS information shows as following:

	Properties:
		Model Name................... CP1500PFCLCDa
		Firmware Number.............. CR01802H1711
		Rating Voltage............... 120 V
		Rating Power................. 1000 Watt(1500 VA)

	Current UPS status:
		State........................ Normal
		Power Supply by.............. Utility Power
		Utility Voltage.............. 116 V
		Output Voltage............... 116 V
		Battery Capacity............. 100 %
		Remaining Runtime............ 85 min.
		Load......................... 70 Watt(7 %)
		Line Interaction............. None
		Test Result.................. Unknown
		Last Power Event............. None
What I find particularly interesting is that my machine is running on 70 watts, which is 7 percent of the UPS capacity!

On my machine, /usr/sbin is just a link to /bin -- so giving the full path is not needed. For whatever reason they give execute permission only to root, so I do:

cd /bin
chmod 755 pwr*
However, when I ask for status as an ordinary user I get:
pwrstat -status
Permission denied
No doubt this has something to do with permissions to access the USB device. There is nothing top secret about my UPS status, so this is merely annoying.

pwrstatd

Rather to my surprise I see pwrstatd running. Apparently launched when I installed the RPM. Not only that, service/systemctl know about it:
service pwrstatd status
Redirecting to /bin/systemctl status pwrstatd.service
● pwrstatd.service - The monitor UPS software.
     Loaded: loaded (/etc/systemd/system/pwrstatd.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Thu 2026-09-03 09:32:47 MST; 2h 13min ago
 Invocation: 9d8fab45dc554c38979c501585d1d89c
   Main PID: 7446 (pwrstatd)
      Tasks: 1 (limit: 18940)
     Memory: 1.8M (peak: 3.5M)
        CPU: 837ms
     CGroup: /system.slice/pwrstatd.service
             └─7446 /usr/sbin/pwrstatd

Sep 03 09:32:47 trona systemd[1]: Started pwrstatd.service - 
There is a file /etc/pwrstatd.conf to govern the behavior of this. Peeking at it I see a setting for the delay after power failure to trigger a system shutdown. The default is 60 seconds.

Conclusions

The RPM place documents in /usr/share/doc/packages/powerpanel. As I read "install-guide", I find grammar like this:
The 'pwrstat' command is also need root authority, please see Pre-requirement section.
Things like this, along with the need to run the status command as root have been looking sideways at this software.
I decide to remove it:
dnf remove powerpanel
This gets rid of everything I know about, even the pwrstatd process.

next I will give NUT a try.


Have any comments? Questions? Drop me a line!