-
-
Notifications
You must be signed in to change notification settings - Fork 361
APC UPS with Modbus protocol
Since about 2010, many APC devices have largely deprecated the use of standard USB HID protocol in favor of a ModBus based one, which they can use over other media (Serial, TCP/IP) as well. Lack of support for the new protocol in NUT was a sore point for years, see https://github.com/networkupstools/nut/issue/139 and generally the labelled issues and PRs via https://github.com/networkupstools/nut/issues?q=label%3AAPC+label%3Amodbus query.
But as of https://github.com/networkupstools/nut/pull/2063 with initial read-only handling support (and some linked issues and PRs before and after it) such support did appear in NUT release v2.8.1 and is still expanding (e.g. for commands and writable variables with https://github.com/networkupstools/nut/pull/2184 slated for NUT v2.8.2 or later).
One caveat here is that the work with modbus from NUT relies on libmodbus
, and the upstream project currently lacks the USB layer support. The author of PR #2063 linked above did implement it in https://github.com/EchterAgo/libmodbus/commits/rtu_usb (PR pending) with instructions to build the custom libmodbus
and then build NUT against it detailed in the PR #2063.
Without that change ("out of the box") APC devices using the protocol over Serial and TCP/IP links should "just work" with the new apc_modbus
NUT driver.
Welcome to the Network UPS Tools (NUT) project Wiki, and feel free to contribute tricks and insights.
While there are several good entries in the menu, ones referenced most frequently in issue discussions include:
- Building NUT for in-place upgrades or non-disruptive tests and Using NIT (NUT Integration Test suite) sandbox
- Technicalities: Customizing (NUT) config files and scripts delivered by packaging
- Links to distribution packaging recipes and repository sections
- Troubleshooting
upsdrvctl
drivers not starting ("insufficient permissions on everything" or "Can't claim USB device [VVVV:PPPP]@0/0: Entity not found") possibly due to nut-driver-enumerator (NDE) services having been there before you with NUT 2.8.x, and "insufficient permissions" when starting USB drivers for a different PoV on this; see also an example unit deployment detailed in NUT systemd service units page - Changing NUT daemon debug verbosity
- Building NUT integration for Home Assistant
- Running NUT in an LXC container
- Troubleshooting eventual disconnections (Data stale) and CyberPower Systems (CPS) know-how
- NUT for Windows
- NUT HCL and DDL
- Code contributions, PRs, PGP and DCO
- NUT CI farm
Also keep in mind the documentation links from NUT website and the FAQ in particular.