Skip to content

SmartNUT - Network UPS Tools - Home Assistant Community Add-on

License

Notifications You must be signed in to change notification settings

aquette/addon-smartnut

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Home Assistant Community Add-on: SmartNUT


Releases Downloads

GitHub Release Project Stage License

Supports armhf Architecture Supports armv7 Architecture Supports aarch64 Architecture Supports amd64 Architecture Supports i386 Architecture

Github Actions Project Maintenance GitHub Activity

Discord Community Forum

Buy me a coffee

SmartNUT is a refreshed form-factor of NUT - Network UPS Tools - suited to modern integrations and smart systems, like Home Assistant.

SmartNUT allows you to monitor and manage UPS (battery backup) using NUT drivers. It lets you view their status, receives notifications about important events, and execute commands as device actions.

Conversely to previous NUT Add-on, SmartNUT:

  • just uses NUT drivers, and eliminates NUT upsd and client layers, and their configuration complexity
  • does not require an additional integration: native support in HA MQTT (hem, todo)
  • publishes the data to MQTT (HA local broker autodetected). But can easily be adapted to any other broker/bus/method (HomeKit, ...)
  • support the following types of devices:
    • USB: plug and play for (decent) USB device, including multiple ones
    • SNMP, NetXML-UPS and NUT client (for remote NUT upsd server, like Synology NAS): with manual edits, but will be eased by using nut-scanner too, as for USB

It uses advanced methods and tools from NUT to remove its configuration complexity. It also removes the need for the NUT server (upsd) and client (upsmon, HA Integration) layers, by connecting NUT drivers directly to a selectable communication bus (MQTT, HomeKit, ...). It finally limits the drivers set to USB and networked (SNMP and NetXML-UPS), which are more suited to modern setups.

Nowadays, smart setups already includes the necessary communication (MQTT broker, smart protocols, ...) and protection means (through automations). These smart setup only consider the smarter units (USB, even cheap, and networked units like SNMP and XML-PDC). As a result, many NUT limitations can be removed, to focus on drivers and event based mechanism.

📚 Read the full add-on documentation

Development and release plans

Alpha:

  • Aim:
    • Fast availability, easy and fast install and test
    • PnP support for USB (inc. multiple units)
    • Easier to configure than before for SNMP/NetXML-UPS/NUT (still manual, but no more upsd.users needed)
    • Provide a simulation device, for tests and developments
    • Collect UX feedback, issues and general improvements
  • Requirements/solutions:
    • Base image (Dockerfile) identical to the official NUT Add-on
    • No git and compilation
      • uses standard Debian packages ()
      • uses a shell hack (nut dstate + netcat)
    • Devices support at least identical to the official NUT Add-on USB (including multiple units), SNMP, NetXML-UPS. NUT remote as bonus
  • Roadmap:
    • 0.1: 1rst functional prototype (source, autodetected USB + simulation)
    • 0.2:
      • Add support for manually_edit_devices
      • Fix user's MQTT configuration retrieval
      • Complete documentation
      • Complete base translations (en, fr)
      • Add support for remote NUT server discovery and configuration (autoconf_remote_nut_devices)
      • Complete CICD builds

Beta:

  • Aim:
    • General improvements: stability, reactivity (no more dual loop), footprint (lower CPU), completion and clean code (no more shell hack)
  • Requirements/solutions:
  • Roadmap:
    • 0.3
      • Complete CICD deployments
      • Advertize SmartNUT and call to test (on NUT mailing lists, Discord channels and with bloggers)
      • Apply log_level (in smartnut.sh and possibly dstate_nut2mqtt, thru params handling)
      • Move upsdrvctl & dstate-nut2mqtt as s6 services (may solve USB issues)
      • Improve MQTT integration (better topic and payload, config announce, ...)
      • Test and ensure addon resilience and robustness (esp. WRT USB / remote devices disconnection)
      • Complete support for remote NUT server discovery and configuration (autoconf_remote_nut_devices), with system network autodetection.
      • Apparmor & security hardening (need map?)
      • Add more translations if possible (make a doc section to ease contributions!)
      • Dev & users feedback integration, issues fix and polishing
    • 0.4 - 0.5:
      • Work on MQTT full UPS integration in https://www.home-assistant.io/integrations/mqtt
      • Consider other publication methods, more direct with HA
      • Ease NetXML-UPS discovery and configuration (autoconf_netxml_devices). - Really useful? MGE/Eaton XML/PDC NMC are long gone! But let's put under hidden options. - [ ] Revise Eaton NM3 policy and disclose protocol / implementation! @arnaudquette-eaton
      • Ease SNMP UPS discovery and configuration (autoconf_snmp_devices) Note: Handle SNMP required settings, if not using the default (unsecured) SNMP v1 and 'public' community!
      • Dev & users feedback integration, issues fix and polishing
    • 0.6: 1rst functional prototype, using upstream SmartNUT, with Debian packages
    • 0.7 - 0.9: users feedback integration, issues fix and polishing

Stable

  • Aim: all Home Assistant SmartNUT Add-on Users happy with the Best NUT and UPS integration of the World 😍
  • Roadmap:
    • 1.0 - ...: ?

A Network UPS Tools daemon to allow you to easily manage battery backup (UPS) devices connected to your Home Assistant machine.

About

The primary goal of the Network UPS Tools (NUT) project is to provide support for Power Devices, such as Uninterruptible Power Supplies, Power Distribution Units, Automatic Transfer Switch, Power Supply Units and Solar Controllers.

NUT provides many control and monitoring features, with a uniform control and management interface.

More than 140 different manufacturers, and several thousands models are compatible.

The Network UPS Tools (NUT) project is the combined effort of many individuals and companies.

Be sure to add the NUT integration after starting the add-on.

📚 Read the full add-on documentation

Support

Got questions?

You have several options to get them answered:

You could also open an issue here GitHub.

Contributing

This is an active open-source project. We are always open to people who want to use the code or contribute to it.

We have set up a separate document containing our contribution guidelines.

Thank you for being involved! 😍

Authors & contributors

The original setup of this repository is by Arnaud Quette.

Arnaud Quette is the retired former NUT project leader, and its main developer / Debian packager / author of many drivers (usbhid-ups, snmp-ups, dummy-ups, ...) / co author of many others / author of WMNUT and lot more (...)

For a full list of all authors and contributors, check the contributor's page.

We have got some Home Assistant add-ons for you

Want some more functionality to your Home Assistant instance?

We have created multiple add-ons for Home Assistant. For a full list, check out our GitHub Repository.