Saltar al contenido principal

Integración domótica Network UPS Tools (NUT), gratuita y de código abierto

Integración Network UPS Tools (NUT) para Gladys Assistant

Supervise el estado, la carga y la autonomía de los SAI de sus servidores NUT.

La integración Network UPS Tools (NUT) permite a Gladys obtener valores y estados de los SAI expuestos por un servidor NUT upsd accesible en la red local.

Esta integración está pensada para la supervisión. No envía comandos de apagado, reinicio ni configuración a los SAI.

Requisitos previos​

Su SAI ya debe funcionar en NUT. Desde la máquina que aloja Gladys, el servidor NUT debería responder al siguiente comando, tras sustituir los marcadores por sus propios valores:

upsc <ups-name>@<server-address>

Por defecto, upsd escucha en el puerto TCP 3493. Asegúrese de que tanto las reglas de red como las ACL de NUT permiten el acceso desde Gladys.

Las credenciales viajan en texto plano​

La integración no utiliza TLS (STARTTLS): el usuario y la contraseña de NUT, así como todas las mediciones, atraviesan la red en texto plano. Manténgala en una red de confianza:

  • haga que upsd escuche solo en la interfaz por la que lo alcanza Gladys (LISTEN en upsd.conf) y filtre el puerto 3493 para que solo el host de Gladys pueda conectarse;
  • cree en upsd.users un usuario dedicado para Gladys, sin actions ni instcmds: la integración solo lee, así que nunca los necesita;
  • no reutilice nunca esa contraseña en otro sitio.

Configuración​

  1. Abra Integraciones y luego Network UPS Tools (NUT).
  2. En la pestaña Configuración, introduzca el primer servidor upsd; su host es obligatorio.
  3. Añada hasta cuatro servidores adicionales en los campos opcionales si lo necesita.
  4. Para cada servidor, mantenga el puerto 3493 salvo que su instalación use otro. Introduzca las credenciales de NUT si se requiere autenticación.
  5. Elija un intervalo de actualización. El valor predeterminado de 300 segundos es adecuado para la mayoría de las instalaciones. Gladys consulta los dispositivos como mucho una vez por minuto: un intervalo más largo se aplica en la consulta más cercana.
  6. Pulse Guardar configuración y luego use Probar las conexiones NUT.

Elegir el intervalo de actualización​

Cada valor publicado se conserva en el historial de Gladys, y un SAI expone hasta doce valores. Un intervalo corto hace crecer rápidamente la base de datos: a 60 segundos, un solo SAI escribe unas 17 000 filas al día, frente a unas 3500 con el intervalo predeterminado de 300 segundos.

Para reducir aún más ese volumen, la integración solo publica los valores que han cambiado desde la medición anterior; un valor que se mantiene estable se vuelve a publicar al menos una vez por hora para que nunca aparezca como obsoleto. Baje a 60 segundos solo si necesita una supervisión fina —la autonomía restante durante un corte, por ejemplo— y suba el intervalo hasta 86 400 segundos si prefiere cuidar la base de datos.

Una vez establecida la conexión, Gladys detecta todos los SAI que devuelve el servidor NUT. Cada SAI aparece en Dispositivos descubiertos como un dispositivo Gladys distinto. En la pestaña Descubrir, haga clic en Añadir a Gladys en cada SAI que quiera integrar: puede añadir varios dispositivos de forma independiente. La lista se reconstruye en cada búsqueda (Buscar) a partir del comando NUT LIST UPS.

Información disponible​

No todos los controladores NUT informan de las mismas variables, así que la integración solo crea sensores para la información que cada SAI proporciona realmente.

ÁmbitoValores posibles
BateríaCarga, autonomía, tensión y temperatura
CorrienteTensión y corriente de entrada/salida
CargaPorcentaje de carga, potencia activa y potencia aparente
SAITemperatura, estado y alarmas

Los valores solo se publican cuando son numéricos y el controlador los informa realmente. Los estados de texto de NUT se leen durante la comunicación, pero no se publican como funciones de Gladys, para que los datos de detección sigan siendo compatibles con las versiones del Core que aún no reconocen la categoría text.

Widget, escenas y acciones (Gladys 5.1)​

La integración requiere Gladys 5.1 o posterior.

Widget «SAI»​

En Panel → Editar → Nuevo widget, en la sección Widgets de integraciones, elija SAI y luego el SAI que quiere mostrar. El widget muestra:

  • la carga de la batería (indicador) y la autonomía restante;
  • la carga del SAI y la tensión de entrada;
  • un gráfico de 24 h (carga de la batería y carga del SAI);
  • el estado (con red eléctrica, con batería, batería baja…), las alarmas de NUT, la potencia y el servidor;
  • un botón Actualizar, que lee el SAI al instante. Nunca envía un comando al SAI.

El widget muestra la última medición realizada por la integración (de 3 minutos como máximo). Cuando el SAI tarda en responder, muestra «Leyendo el SAI…» y se actualiza unos segundos después.

Activadores de escena​

En una escena, Añadir activador → Integraciones:

ActivadorCuándo
SAI: corte de corriente, con bateríael SAI pasa a funcionar con batería (OB)
SAI: corriente restablecidael SAI vuelve a la red eléctrica (OL)
SAI: batería bajaNUT informa de una batería baja (LB)
SAI: sustituir la bateríaNUT pide una sustitución (RB)
  • Deje vacío el campo SAI para reaccionar a todos los SAI.
  • El estado se comprueba cada minuto, sea cual sea el intervalo de actualización: un corte de corriente se detecta en menos de un minuto.
  • Variables disponibles en la escena: ups_name, status, battery_charge (%), battery_runtime (min), load (%).
  • Al iniciarse la integración, la primera medición sirve de referencia: no se envía ningún evento para un SAI que ya funciona con batería.

Acción de escena «Leer el estado de un SAI»​

En una escena, Nueva acción → Integraciones. Lee el SAI elegido y devuelve a las acciones siguientes: ups_name, status (online, on_battery, low_battery, forced_shutdown, off, bypass, unknown), on_battery, low_battery, replace_battery, battery_charge, battery_runtime (min), load, input_voltage. Una medición de la que el SAI no informa se omite.

Ejemplo: cada mañana, leer el estado del SAI y luego enviar un mensaje con la autonomía restante.

Solución de problemas​

SíntomaComprobaciones recomendadas
No se encuentra ningún SAICompruebe cada host, cada puerto, el cortafuegos y que haya al menos un SAI configurado en cada ups.conf.
Error de acceso o de autenticaciónCompruebe las ACL de upsd.conf y las credenciales definidas en upsd.users.
Faltan algunos valoresEjecute upsc <ups>@<server>; Gladys solo puede crear las variables que expone su controlador NUT.
Datos obsoletosUn valor estable solo se reescribe una vez por hora, lo cual es normal. Más allá de eso, verifique que el controlador NUT sigue comunicándose con el hardware y revise los registros de upsd.
La base de datos de Gladys crece demasiado rápidoAumente el intervalo de actualización: el volumen del historial es directamente proporcional a él. Cada SAI añadido escribe su propio historial.
Añadir un SAI falla con «dispositivo incompleto o no válido»Actualice la integración. Ese rechazo (HTTP 422) se debía a funciones publicadas sin sus límites min y max, que ahora siempre se declaran.
Los valores no cambian nunca tras añadir el dispositivoActualice la integración: los dispositivos se publican ahora con la consulta periódica activada.
Algunas funciones se muestran sin nombre ni iconoActualice la integración y luego vuelva a añadir el SAI desde la pestaña Descubrir para que se actualicen sus funciones existentes: la carga y la potencia aparente se publicaban con un par categoría/tipo que el front-end de Gladys no sabe dibujar.
El estado de conexión dice «Conectado, pero 1 de 2 servidores NUT no responden»Los SAI de los demás servidores se siguen leyendo. Compruebe el servidor indicado (host, puerto, cortafuegos, upsd en marcha); el estado vuelve a ser simplemente «conectado» en su siguiente respuesta.
Un SAI dejó de actualizarse tras quitar un servidor de la configuraciónSu servidor ya no se consulta, y los registros lo indican una vez. Vuelva a añadir el servidor o elimine el dispositivo en Gladys.
La carga del SAI se muestra como «Desconocido»Actualice la integración y luego vuelva a añadir el SAI desde la pestaña Descubrir: la carga (ups.load) se publica ahora en una categoría que permite a Gladys mostrar su nombre, «Load».

Para ver los errores detallados, abra la pestaña Registros de la integración en Gladys. También puede definir LOG_LEVEL=debug para obtener registros más detallados.

Recursos​

La especificación oficial del protocolo de red de NUT detalla los comandos de detección y de lectura que utiliza esta integración.

Parámetros de configuración​

Estos son los parámetros que Network UPS Tools (NUT) te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Servidores NUTsectionNoConfigure uno o varios servidores upsd accesibles. Cada SAI expuesto por cada servidor configurado se detecta como un dispositivo Gladys independiente.
Host del servidor 1stringSíDirección IP o nombre DNS del primer servidor NUT upsd.
Puerto del servidor 1numberNoEl puerto TCP predeterminado de NUT es 3493.
Usuario del servidor 1 (opcional)stringNo
Contraseña del servidor 1 (opcional)secretNoObligatoria si se ha configurado un usuario.
Host del servidor 2 (opcional)stringNo
Puerto del servidor 2numberNo
Usuario del servidor 2stringNo
Contraseña del servidor 2secretNo
Host del servidor 3 (opcional)stringNo
Puerto del servidor 3numberNo
Usuario del servidor 3stringNo
Contraseña del servidor 3secretNo
Host del servidor 4 (opcional)stringNo
Puerto del servidor 4numberNo
Usuario del servidor 4stringNo
Contraseña del servidor 4secretNo
Host del servidor 5 (opcional)stringNo
Puerto del servidor 5numberNo
Usuario del servidor 5stringNo
Contraseña del servidor 5secretNo
Intervalo de actualización (s)numberNoFrecuencia con la que las mediciones se escriben en el historial de Gladys. Cada medición es una fila en la base de datos: mantenga 300 s salvo que necesite mediciones más finas. El estado del SAI se sigue comprobando cada minuto para las escenas.

Cómo instalar Network UPS Tools (NUT) en Gladys​

  1. En Gladys, abre Integraciones: Network UPS Tools (NUT) aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/prohand/gladys-nut:2.3.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/prohand/gladys-nut.

Network UPS Tools (NUT) requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Network UPS Tools (NUT) es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene prohand, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂