Release Notes for Apcupsd 3.14.x
Apcupsd 3.14.x is the latest STABLE release, containing many bug fixes and
new features over the previous 3.12.x stable series. Users of all previous
versions are encouraged to upgrade.
IF YOU USE THE OLD STYLE MASTER/SLAVE NETWORKING MODE, BE SURE TO READ THE
3.14.0 RELEASE NOTES BELOW.
3.14.12 -- 29 March 2014 (Maintenance Release)
* apcaccess and apcupsd status format updates to ease parsing by scripts
* UPS name is included in subject line of emails in default scripts
* Default event scripts pull SYSADMIN and APCUPSD_MAIL definitions from a
common config file so they can easily be configured in one place
* Fix issue with certain Back-UPS USB models repeatedly cycling power on/off
after killpower is issued
* Fix display of battery level during MODBUS calibration
* Fix apctest EEPROM setting on various models
* Close and reopen serial port during extended COMMLOST in apcsmart driver
(helps recover connection when USB serial port dongles are reconnected)
* Avoid probing non-APC USB devices as it can cause lockups
* Fix issue with service failing to start on Windows during boot with USB UPS
* Fix bogus lock file error when config file error forces early termination
* Fix MODBUS NOMOUTV reading for voltages other than 120VAC
* Fix LOADPCT (CI_LOAD) on MODBUS driver
* Fix issue with net driver not reporting MODEL value
3.14.11 -- 31 January 2014 (Maintenance Release)
* MODBUS protocol support
Over the summer, APC publicly released documentation on a new UPS
control and monitoring protocol, loosely referred to as MODBUS (after the
historic industrial control protocol it is based on). The new protocol
operates over RS232 serial lines as well as USB connections and is intended
to supplement APC's proprietary Microlink protocol. Microlink is not going
away, but APC has realized that third parties require access to UPS status
and control information. Rather than publicly open Microlink, they have
created another protocol to operate along side it.
Many existing Microlink UPSes can be upgraded to support MODBUS via a
firmware update. See . Certain older models are not upgradeable. APC
support will be your best contact for determining if your UPS supports a
MODBUS upgrade the information linked below does not make it clear.
For now, apcupsd supports MODBUS over RS232 serial only. It DOES NOT yet
support MODBUS over USB. See the apcupsd manual for information on
setting up apcupsd.conf for MODBUS UPSes.
* Windows USB driver is now digitally signed thanks to Jernej Simoncic
3.14.10 -- 13 September 2011 (Maintenance Release)
* Fix missing status and spurrious incorrect status on newer BackUPS CS
models using USB interface.
* USB compatibility fixes for Mac OS X Lion
* USB driver support for newer Microlink models on Mac OS X Lion and Windows
* Ignore transitions to battery due to calibration (possible if user
initiates calibration, then exits apctest and starts apcupsd before
* Fix truncation of long UPS model names such as "Smart-UPS RT 5000 XL"
* Fix MODEL vs. APCMODEL confusion. Remove APCMODEL and rename old MODEL
aka 'mode' to DRIVER.
3.14.9 -- 22 July 2011 (Maintenance Release)
* SNMP enhancements:
- Autodetection of MIB and community if they are not specified in
- Support for RFC1628 MIB
- Support for MGE MIB (Contributed by Lars Taeuber <firstname.lastname@example.org>)
* Windows USB support for 64-bit platforms
* USB support for latest APC models such as SMT* and SMX* series
- No support for Microlink, but basic USB interface should be
detected and provide status now.
* When using the generic USB driver (Windows, OS X, newer FreeBSD)
DEVICE string in apcupsd.conf can be set as serial number of UPS
to monitor. This is useful in order to "lock" apcupsd to a specific
UPS if you have more than one connected to the server.
* Ed Dondlinger's Windows email scripts are included in the Win32
install package now. Documentation includes information on how
to hook them in.
* general: Rework signal handling to eliminate crashes and hangs.
* general: Fix issue of overwriting pid file even when we failed
to acquire the lock file
* snmp: Add workaround for FreeBSD libsupc++.a issue (FreeBSD PR
#99702) This will allow snmplite driver to compile/link on
* usb: Automatically use generic_usb driver on FreeBSD 8.0 and
newer. FreeBSD USB API was changed in 8.0, so from now on we will
* usb: Add support for DALARM
* usb: Fix BATTV and MANDATE on certain newer APC models
* win32: Honor INSTDIR specified on command line via /D
* win32: When running uninstaller in silent mode, always remove
config and events files without prompting.
* win32: When logging events, convert LOG_CRIT to a WARNING rather
than an ERROR since apcupsd uses it for power events which aren't
really daemon errors.
3.14.8 -- 16 January 2010 (Maintenance Release)
* Mac OS X version of apctray (apcagent) for monitoring apcupsd instances.
Same feature set as apctray on Windows (monitor multiple instances,
get detailed status and events logs). Popup notifications delivered via
Growl, if available.
* Major update to win32 version of apctray. Includes many visual and
usability improvements to match OS X version.
* apctest now supports battery calibration and self-test interval control
on USB models. Many thanks to James Belleau <email@example.com> for
contributing these features.
* New SNMP driver that does not require libsnmp.so, thus eliminating
issues with not finding the library during shutdown when /usr has
been unmounted. The new driver is the default for 'UPSTYPE snmp'.
The old driver is still available as "UPSTYPE netsnmp" if needed.
* Add missing NOMINV, NOMOUTV, and NOMPOWER to net clients
* Fix missing WALL in apccontrol (debian bug #546019)
* Change all time/date strings to simplified ISO format:
"YYYY-MM-DD HH:MM:SS +/-UTC"
* Fix battery voltage readout on "Back-UPS 500 FW: 6.3.I USB FW: c1"
* Remove obsolete image files from source tree
* Fix issues with popup.exe running when it shouldn't and sometimes
hanging and/or generating an "Interactive Services Dialog Detected"
* Use /kill switch from the installer to shut down running instances
of apcupsd and apctray. This will provide more reliable termination
* Update apctest to use 'Q' to exit any menu instead of a number that
is always changing. Contributed by James Belleau <firstname.lastname@example.org>
* apctest: Fix compiler warnings. Contributed by
Andy O'Shaughnessy <email@example.com>
3.14.7 -- 31 July 2009 (Maintenance Release)
* Multimon CGI programs are included with the Windows binary package
* Windows COM ports above COM9 now work without user needing to manually
add \\.\ UNC prefix in apcupsd.conf
* Fix configure script not noticing when C++ compiler is missing
* Fix for battery date (BATTDAT) displaying invalid values on USB models
* Fix version reporting in cgi and examples
* Misc documentation fixes for typos, etc.
3.14.6 -- 16 May 2009 (Maintenance Release)
* Major updates to the User Manual. Rewritten battery maintenance section
courtesy of Trevor Roydhouse <firstname.lastname@example.org>. Many other updates
including the SmartUPS protocol and OS support sections. Furthermore,
the manual is now formatted in reStructuredText
(http://docutils.sourceforge.net/rst.html) and as a result is very
easy to update. (The only down side is the multi-page HTML version is
no longer available; the HTML version is all on a single page.)
* New manpages for apcupsd, apcupsd.conf, apctest, apcaccess, and
apccontrol. Many thanks to Trevor Roydhouse <email@example.com> for the
* Support for QNX. Tested on QNX 6.3.2. Contributed by Mikhail
* Add support for turning the UPS off completely. This complements
existing hibernate (aka killpower) functionality. Turn-off is
implemented for apcsmart and USB drivers, subject to support for the
relevant commands in the UPS itself. Contributed by Keith Campbell
* apcsmart: Deadlock fixes during comms failures. Contributed by Keith
* linux-usb: Fix out-of-bounds array access. Contributed by David Fries
* Fix build with gcc-4.4. Contributed by Michal Hlavinka <firstname.lastname@example.org>
* apcsmart: Fix crash during process shutdown (SIGTERM). Contributed by
Andrey Sharandakov <email@example.com>
* Several other minor fixes and improvements. See ChangeLog for details.
3.14.5 -- 26 October 2008 (Maintenance Release)
* docs: Document the /refresh switch for apctray.
* apctest: Do not create pid file. There is little reason for it
since apctest is a command-line tool, not a daemon. Plus nothing
ever deletes the file so it interferes with apcupsd operation.
* gapcmon: Network connect timeout fix.
* Fix a few unsafe uses of sprintf and strcat.
* Makefile: Fix cgi build on OpenBSD. libgd on OpenBSD requires X_LIBS
for libfreetype and libfontconfig.
* gapcmon: Iconify fixes for KDE
* Fix LOWBATT glitch handling bug that could cause us to act on a
LOWBATT signal immediately instead of waiting for the debounce time.
* apctray: Improve multiple instance behavior for /add, /del, and
/kill on modern platforms (Win2K and newer).
* Support shutting down apcupsd instances running in other sessions
(such as terminal services or remote desktop sessions).
* Makefile: 'make install' fixes for first install on RedHat/SuSE.
* docs: PCNET minimum password length is 15 chars, default username
is 'apc', no known way to change the username.
* Makefile: Fix dependency build errors on Darwin and other platforms.
('echo -n' is not portable; use 'tr' to strip newline instead)
* RPMs: Automatically restart apcupsd when upgrading
3.14.4 -- 18 May 2008 (Maintenance Release)
* Build system rewrite: All Makefiles have been rewritten from scratch.
Improvements include reliable dependencies, support for parallel make,
elimination of Makefile.in -> Makefile conversion, consistent use of
DESTDIR during 'make install', and pretty-printed output during builds.
NEW BUILD SYSTEM NOTES
- GNU make is required. The configure script checks for this and tells
you how to invokve it (on some platforms it is 'gmake' instead of
- Output during build is pretty-printed by default. To see more details,
use 'make VERBOSE=1' for output similar to the old build system. For
even more verbosity, use 'make VERBOSE=2'.
- Parallel builds work well. If you have a multiprocessor (or multicore)
system, try 'make -j<number-of-processors>' for the fastest possible
* Built-in version of libgd for multimon cgi has been removed. The version
previously included in apcupsd was old and likely had security issues.
It is safer to use libgd from the target system. Therefore, your system
must provide libgd if you choose to build cgi now. Generally this is
easy to achieve by installing a vendor-supplied package.
* Removal of NLS support: The NLS code was terribly bit-rotted with many
non-internationalized messages and almost every translated message was
incorrect. At this point the maintenance burden of keeping NLS support
building was deemed too high considering the small benefit it was able
* Powerflute has been disabled. It has been broken for the last several
releases because it relied on an untrushworthy source of UPS status
(rawupsstats) which was itself removed. Powerflute could be converted to
use the standard NIS status mechanism and its source code remains in
the tree in case someone has the desire to contribute this code.
* Add POLLTIME directive to control UPS polling interval. This directive
specifies the number of seconds to delay between polling the UPS for
status. Previously, NETTIME allowed this to be adjusted for network
connections only (snmp, pcnet, nis-net). POLLTIME configures the delay
for all connection types. NETTIME is accepted as a synonym for
compatibility with old config files.
* gapcmon: Corrected the use of NOMPOWER and the calc of current usage
amount. Thanks to James Scott Jr <firstname.lastname@example.org>.
* Add a heuristic to fix up incorrect NOMINV or NOMOUTV. Some UPSes
(RS 500) report decivolts instead of volts. Reported by Kirill S.
* Various build fixes on Solaris and OpenSolaris. Thanks to James Dean
<email@example.com> for loaning me an ssh login on his OpenSolaris box.
* Fix hal policy file syntax. For some reason this blatantly incorrect
file actually works on RHEL5 (hal-0.5.8). Thanks to Andrew Telford
<firstname.lastname@example.org> for correcting it.
* Fix gapcmon build on OpenBSD.
* Fix BSD USB driver build.
* Fix default NIS port on Debian. Debian is now using the standard NIS
port, 3551. Contributed by imacat <email@example.com>
3.14.3 -- 20 January 2008 (Maintenance Release)
* A HAL policy file is automatically installed on Linux systems to disable
the hald-addon-hid-ups module which conflicts with apcupsd's control of
USB UPSes. The file is automatically removed when apcupsd is uninstalled.
* Add support for Nominal Power (aka Configured Active Power) reading.
Credit to Lars Randers <firstname.lastname@example.org> for most of the code.
* Add units to NOMINV, NOMOUTV, and NOMBATTV stats.
* Eliminate "warning: deprecated conversion from string constant to
'char*'" warnings emitted from gcc-4.2.1 (earlier versions with
-Wwrite-strings). Contributed by Steve Yarmie <email@example.com>.
* Fix killpower and eeprom settings bug on USB models introduced when
INPUT reports were prioritized over FEATURE reports.
* Fix bugs that could cause NIS-net driver to get stuck waiting for
comms to be restored instead of shutting down.
3.14.2 -- 15 September 2007 (Maintenance Release)
* Tray icon support on Vista. Vista does not allow background services
to interact with the user's desktop, so winapcupsd's built-in tray
icon did not work.
* Tray icon is now a standalone application "apctray" which is capable of
monitoring multiple Apcupsd instances via Apcupsd's NIS. Any Apcupsd
running NIS can be monitored. By default the icon monitors a single
apcupsd at 127.0.0.1:3551. See command line options below for adding
* Tray icon can be installed individually (disable other packages in the
installer) for users who want to use the icon only.
* Apctray command line options:
- No parameters: Start any instances listed in registry. If no
instances in reg, start a default instance monitoring the local
apctray.exe /host foo /port 3551 /add
- Add a monitor for the given host and port.
apctray.exe /host foo /port 3551 /del
- Remove the given monitor.
- Remove all monitors.
- Configure apctray to start automatically.
- Do not start automatically.
- Shut down apctray
* The win32 portions of winapcupsd have been almost entirely rewritten.
The code is cleaner (mostly) and lots of unused baggage has been removed.
* USB fix for BackUPS LCD series. This fix carries a risk of breaking other
models, but test results are positive so far.
* Fix linux-usb device detection bug when multiple hiddev nodes are
present. Fixes Fedora Bugzilla #245864:
* Fix SNMP port selection when using SNMP driver
* Add workaround for broken BackUPS Pro model that returns certain
reports encoded in ASCII. Based on a patch from David Fries
* apcsmart: Wait 20 seconds before declaring COMMLOST. This is necessary
when using a smart serial cable on an UPS with an SNMP monitoring card
installed. The SNMP card appears to disrupt serial comms for several
seconds when interesting events are in progress.
* Documentation updates: Fix up udev info for modern Linux distros.
Update Windows section for apctray.
* Don't leak unnecessary descriptors to child when execing apccontrol.
* Fix bug with multi-threaded net_open() calls. net_open() was using
a global buffer for the destination address. Yikes! Bug manifestied
itself in apctray with multiple monitors occasionally (and
timing-dependently) pointing to the wrong UPS.
* Correct multimon.conf humidity monitoring. Problem fixed by
Patrick Frei. Reference:
* Fix race between attach_ups() and detach_ups() which could result
in the UPSINFO structure being freed prematurely. Thanks to James
Abbott <firstname.lastname@example.org> for running many tests to help me
find this bug.
* Remove dependency on libc++ (again). Must use gcc as linker when
using libsupc++ since g++ automatically links against full libc++.
3.14.1 -- 04 May 2007 (Maintenance Release)
* MacOS X GUI installer
* PCNET driver supports remote shutdown request from UPS web interface
* (win32) Detect when balloon tips have been disabled via a group policy
and fall back on the standard popup message box.
* (win32) Fix typo: "%sbindir\%popup" -> "%sbindir%\popup" in apccontrol.bat
Discovered by Stefan.Hegnauer@elektrobit.com.
* (all) Fix potential NIS client lockup when server disappears. Many thanks
to Jan Ceuleers <email@example.com> for reporting the problem
and gathering data to track down the cause.
* (apctest) Fix link error after configuring with --disable-apcsmart.
* (doc) Document how to force ugen binding on NetBSD 4.x.
Contributed by Curt Sampson <firstname.lastname@example.org>.
* (apctest) Fix crash when displaying EEPROM values more than once.
Contributed by Ivaylo Haratcherev <I.J.Haratcherev@tudelft.nl>.
* Increase self-test timeout to 40 seconds to accomodate the RS 800.
Contributed by Lars Randers <email@example.com>.
* (linux-usb) Rewrite device opening logic to be more reliable. See
ChangeLog for details.
* (apcupsd) Do not attempt to cancel shutdowns.
3.14.0 -- 09 February 2007 (Feature Release)
* USB support for 3 new platforms:
- Windows (Win98SE, WinME, Win2000, Win2003 Server, WinXP)
- Mac OS X (Darwin)
- Solaris 10 (x86 and SPARC)
Please see the Apcupsd manual for details on USB configuration for the
* Native Windows port
The winapcupsd port has been completely rewritten to use native
Win32 libraries (based on MinGW32). It no longer relies on a Cygwin
translation layer, thus improving compatibility and performance.
* PowerChute Network Shutdown driver
Apcupsd now supports the PowerChute Network Shutdown protocol (PCNET)
offered by the AP9617 family of smart slot modules. This protocol is
much lighter-weight than SNMP and offers better security. Please see
the Apcupsd manual for details on PCNET configuration.
* GAPCMON GUI monitoring tool
Apcupsd is now packaged with the GAPCMON GUI monitoring application
thanks to James Scott, Jr. This is a Gnome/GTK based application which
integrates into most desktop panels (not just Gnome). It monitors one or
more Apcupsd instances using Apcupsd's NIS networking server. The status
of each UPS is shown with a icon similar to the Win32 tray icon in
winapcupsd. Enable building of gapcmon at compile time via
--enable-gapcmon or install the apcupsd-gapcmon RPM.
* Unreliable MASTER/SLAVE networking mode is removed
Yes, this is a feature. The old MASTER/SLAVE mode for shutting down
multiple servers from one UPS has historically been unreliable and prone
to loss of communications or lockups. Apcupsd has long had a replacement
networking mode using the NIS server (NIS stands for Network Information
Server, and has nothing to do with Sun's NIS/YP protocol). The NIS net
mode is very reliable and has none of the lockup bugs that have plagued
In 3.14.x, MASTER/SLAVE mode has been removed and the associated
configuration directives are now obsolete. Please see the Apcupsd manual
for a very simple NIS networking configuration to replace MASTER/SLAVE.
* New configuration directives to set paths at runtime
Several new (optional) configuration directives have been added to
allow overriding compiled-in paths at runtime. The directives are:
- SCRIPTDIR (sets location of apccontrol and event scripts)
- PWRFAILDIR (sets location where powerfail file will be written)
- NOLOGINDIR (set location where nologin file will be written)
These directives can be used to rearrange the Apcupsd installation
after compiling, or to run multiple Apcupsd instances on the
same machine without compiling separate copies.
See the Apcupsd manual for details on these new directives.