There are many programs and devices that integrate NUT support.
This page tries to track them. Please note there can be even more references contributed by the NUT user community members at the NUT GitHub wiki.
Graphical desktop clients
NUT-Monitor
NUT-Monitor is a graphical application to monitor and manage UPSes connected to a NUT server. This application is written in Python and PyGTK, and uses the PyNUT class.
NUT-Monitor is part of NUT since NUT v2.4.1. It will further evolve toward the NUT Control Center. |
walNUT
A Gnome Shell extension to monitor/manage NUT-controlled devices.
Windows NUT client
Windows NUT client is a partial port of KNutClient to Windows using AUTOIT scripting language.
The original "winnutclient" project seems abandoned since 2015; however a "WinNUT-Client" fork (below) picked up the torch. |
WinNUT-Client
WinNUT-Client V2 is a replacement for older WinNUT Client (v1.x) which can use its configuration files. It allows a Windows client to monitor UPS state from a NUT data server running elsewhere (Linux servers, NAS appliances, etc.) and initiate safe shutdowns.
WinNUT
WinNUT is a partial port of the client side of Network UPS Tools (NUT) to Windows.
The URL mentioned above seems currently defunct. It was last archived at The Internet Archive in 2016 and that copy refers to Google Code (archive) as the project codebase (still available); not sure if there were further iterations maintained on any other public code hosting.
Tracing the breadcrumbs, seems the project was initially abandoned in 2006 at version 2.0.0b and then re-hosted at Google Code in 2010 and abandoned in 2011.
Curiously, there are recent articles on the name (actually describing WinNUT-Client): https://www.gadgetvictims.com/2022/02/configuring-winnut-2x-on-windows-to.html as a follow-up to earlier post on that site of https://www.gadgetvictims.com/2010/02/battery-backup-solution-for-home.html (describing the original WinNUT). Apparently, both use the NUT standard configuration files, so to an extent one is a replacement for another.
WinNUT is currently being replaced by a full port to Windows, part of the official NUT distribution. MSI packages are available too. |
WMNut
WMNut is a dockapp program to monitor multiple UPSs statistics through the NUT (Network UPS Tools) framework on Linux and other systems.
Mobile desktop clients
apcupsd-monitor
The "apcupsd-monitor" Android app actually supports several server protocols
for monitoring power devices, including apcupsd
, NUT, Eaton IPM (XML/HTTP)
and commands over SSH.
Pre-built application package is available on Google Play at https://play.google.com/store/apps/details?id=com.nitramite.apcupsdmonitor
Network Management Systems (NMS) integration
Big Sister system and network monitor
The "nut" module monitors uninterruptible power supplies under control of the NUT (Network UPS Tools) free software suite. It sends alerts on power outages, overload and battery problems. The longterm graphing may point you to battery aging problems.
Cacti monitoring tool
There are at least three different scripts that add NUT support to Cacti:
collectd
The collectd
system statistics collection daemon features a
NUT plugin to
collect statistics from UPSes.
Xymon (Hobbit) monitor
A NUT plugin is available.
MonAMI NUT plugin
A plugin to return UPS status to the MonAMI universal sensor framework.
Munin NUT plugin
A NUT plugin for Munin is available.
Nagios plugin
The check_ups plugin returns UPS status to the Nagios monitoring system using NUT.
MQTT
MQTT is an OASIS standard messaging protocol for IoT Messaging. For a quick overview of the protocol and its history, see also Wikipedia article about MQTT.
It is typically used for monitoring and management systems, so projects which provide MQTT data streams with NUT information (and vice versa) do not fall flat into either category and are listed here.
They may also be of interest to developers, being NUT clients written in different programming languages which use different available projects for binding to NUT Networking API.
nut2mqtt
Communication between Network UPS Tools (NUT) and MQTT, uses NUT’s own
C++ library (libnutclient
).
nut-to-mqtt
Written in Go, nut-to-mqtt
is a data converter for exporting information
from Network UPS Tools, and streaming to an MQTT broker.
ups-mqtt
Simple python tool for fetching data from NUT server and publishing output to MQTT server. Can be used for UPS connected to Synology NAS with UPS Network Server enabled.
Configuration GUIs
KNutSetting
KNutSetting is a visual KDE tool for configuring NUT - Network UPS Tools.
See also: http://knut.prynych.cz/
Other software projects
42ITy™
42ITy™ is a next generation platform for data center service optimization that aims to bridge the gap between the traditional silos of IT and facility management.
42ITy™ promotes an open, community based approach, to ensure broad and vendor agnostic support, while leveraging and giving back to leading open source software components including NUT (Network UPS Tools), 0MQ/Malamute & MariaDB, among others.
Node-RED for NUT
Node-RED node that gets UPS data via NUT (Network UPS Tools)
Network UPS Tools Services for Windows
Network UPS Tools Services for Windows provides tools and services to run an
upsd
-compatible server to report the status of UPS devices connected to a
system or server in primary (aka "master") mode. It allows other systems,
e.g. Network UPS Tools secondary (aka "slave") daemons and monitoring clients,
access to UPS information using standard Windows programming interfaces for
easier setup.
nut-snmpagent
nut-snmpagent is an SNMP wrapper to expose the upsc
output into Net-SNMP.
jNut
A Java module to talk to an UPS via NUT (Network UPS Tools) upsd.
This originated in NUT codebase, but was externalized into a sibling project.
UPS::Nut
A Perl module to talk to an UPS via NUT (Network UPS Tools) upsd.
(A reference copy of) UPS::Nut is part of NUT since NUT v2.6.1, see https://github.com/networkupstools/nut/tree/master/scripts/perl/ |
PyNUT
PyNUT is an abstraction class written in Python to access NUT (Network UPS Tools) server and execute commands without needing to know the communication protocol.
(A reference copy of) PyNUT is part of NUT since NUT v2.4.1, see
https://github.com/networkupstools/nut/tree/master/scripts/python/module/
and is published as PyNUTClient by CI to
https://pypi.org/project/PyNUTClient (release snapshots) and
https://test.pypi.org/project/PyNUTClient/ (rolling master-branch revisions).
Hopefully, pip would find it to help create NUT clients. |
RRDtool logging support
This patch adds RRDtool logging support to NUT. (See also [collectd].)
ups_control
A developing Python wrapper to upsc
which can generate email and shutdown
the machine.
python-nut2
A fork and complete API overhaul of PyNUT, a Python library to allow communication with Network UPS Tools servers.
-
Originally developed at https://github.com/george2/python-nut2/
-
A PyPI is available, to install with just
pip install nut2
webNUT
A simple web interface for Network UPS Tools servers.
-
Originally developed at https://github.com/george2/webNUT/
-
A PyPI is available, to install with just
pip install webNUT
-
A dockerized version of webNUT is available at DockerHub to install with just
docker pull teknologist/webnut
go.nut
A Golang library for interacting with NUT.
Node-NUT
A NodeJS module that implements a NUT (Network UPS Tools) client.
NUT HTTP API
An API wrapper that outputs the upsc
command as a JSON output. This is a
small HTTP server written in JavaScript which relays HTTP request parameters
to upsc
command line arguments, and neatly wraps the result as JSON.
PeaNUT
A tiny dashboard for Network UPS Tools.
Written in NodeJS, can serve as a Docker container or as a Homepage widget, includes Web-UI and a REST API for queries.
NUTService and C# NUTClient
A Windows service to communicate with NUT server and initiate safe shutdown when UPS forced shutdown or low battery happens, depending on your settings.
-
The
NUTClient.cs
(along with other files) in project sources provides a C# implementation of the NUT protocol for the client side.
Hardware projects involving NUT
This is an incomplete list of the hardware known to embed NUT.
Dell PowerVault NX3500
Dell is using NUT to protect the new PowerVault NX3500 storage devices.
OpenGear
Opengear provides an advanced NUT integration into many models. There is also a video presentation of the NUT integration.
For more information on Opengear’s contributions to NUT, have a look at the acknowledgements information.
Synology
Synology has worked closely with Arnaud Quette to integrate UPS support on all its devices.
Alcatel Lucent IPBX
Alcatel has been working for years with us (Patrick Agrain and Arnaud Quette) to improve NUT integration into some of their IPBX.
Netgear ReadyNAS
The RAIDiator firmware for the ReadyNAS product line includes NUT to either monitor a local USB UPS, or to connect as a slave to a NUT server.
Thecus NAS
Thecus NAS firmware includes NUT for UPS support. The following list of devices is known to be supported.
Buffalo NAS
Buffalo TeraStation NAS (Business-class) include NUT for UPS support.
Eaton - Intelligent Power Controller
Eaton Intelligent Power Controller provides easy infrastructure monitoring solution, using the 42ITy™ Open Source data center monitoring software stack, which relies on NUT for power devices monitoring.
Home Assistant NUT integration
The Home Assistant open source home automation project includes a NUT plugin:
Instructions for rolling your own build of the integration based on NUT git sources were contributed by community and posted at NUT GitHub wiki:
Homebridge NUT integration by vectronic
The Homebridge open source home automation project (for monitoring with HomeKit) includes a NUT plugin.
-
Alleged fork and re-write of earlier Homebridge NUT integration by ToddGreenfield
Instructions are in the project README file.
Network UPS Tools (NUT) Prometheus Exporter
A Prometheus exporter for the Network UPS Tools data server.
This exporter utilizes the go.nut project as a network client of the NUT platform. The exporter is written in such a way as to permit an administrator to scrape one or many UPS devices visible to a NUT client as well as one or all NUT variables. A single instance of this exporter can scrape one or many NUT servers as well.
A sample dashboard for Grafana is also available.
NUTCase
A Network UPS Tools (NUT) and APC daemon exporter to pass data to Prometheus and any JSON compatible applications.
Beside data conversion for other systems, provides a neat dashboard UI of its own.
Implemented as a Python application (with its own NUT client code
in nut_server_handler.py
), which can run as a server in a Docker
container.
Other
There are also quite a few projects in the same area of UPS monitoring and management, which do not use NUT but can be helpful for troubleshooting or similar investigations.
py-upshid-voltqs
This Python script allows to interact with devices which support the Voltronic-QS protocol, and send a number of commands to them, without installing and configuring NUT at all.
It offers a good overview of the protocol as well.
hidups-comm-test
Exploratory preparation for the above, "slapped together" in C#.
usb_resetter
A Linux-only tool to manipulate USB ports and hubs (note you may be unable to power them off completely, some are wired to always provide the 5V line, and only pass logical device-reset commands).
For more details, see also the NUT description of usb_resetter integration.
Legacy and discontinued projects
GKrellM NUT
Simple UPS monitoring plugin for GKrellM. Uses NUT (Network UPS Tools) for UPS connection.
lcd-nut
A project to display the status of a UPS on computer through one of the many cheap LCD matrix displays available on the market.
Nut-Graph
PHP4 / GD / MySQL / jpgraph package to visualize logged UPS status data.
Eaton - Personal Solution Pac
NUT configuration and monitoring software for Eaton (previously MGE Office Protection Systems) units.
UPS Monitor
Multi-threaded python/GTK2 graphical monitoring application.
Notes
-
Client authors: send updates on your releases to the NUT users mailing list. We will also put a link to you in the news section of the top page when things change.
-
If you know of a project which should be listed, please send in the URL.