Cómo apagar de forma coordinada tus equipos en red.

En el artículo anterior, Cómo monitorizar un SAI Salicru con Raspberry Pi Zero. logramos que nuestra Raspberry Pi Zero se comunicara con nuestro SAI Salicru y nos avisara por Telegram de cualquier incidencia eléctrica. Pero, ¿qué pasa con el resto de equipos de la casa? Si tienes un PC potente para gaming, un servidor con un i7 o incluso otra Raspberry Pi 5 realizando tareas críticas, dejarlos a su suerte durante un apagón no es una opción.

La verdadera magia de NUT (Network UPS Tools) reside en su arquitectura Maestro-Esclavo. En esta guía, vamos a configurar nuestra infraestructura para que la Raspberry Pi Zero actúe como el «cerebro» central (Master). Ella será la encargada de monitorizar el USB del SAI y, en caso de batería baja, enviará una orden de apagado por red a todos los demás equipos (Slaves) de tu hogar.

Al finalizar esta configuración, habrás creado una red de seguridad inteligente donde:

  • La comunicación es total: Tus PCs con Windows y Linux «escucharán» a la pequeña Pi Zero.
  • El apagado es elegante: Cada equipo cerrará sus procesos y protegerá sus discos antes de que el SAI corte la energía.
  • Tú mantienes el control: Seguirás recibiendo los reportes detallados en Telegram mientras tus equipos se ponen a salvo automáticamente.

Prepárate para convertir tu modesta Raspberry Pi Zero en el guardián de toda la electrónica de tu despacho. ¡Vamos a ello!

1. Configuración en la Raspberry Pi Zero (El Maestro)

Para expandir tu red de protección y que tu Raspberry Pi 5 y tus otros PCs (i7, i5) se apaguen de forma coordinada, vamos a configurar una arquitectura Maestro-Esclavo (o Primario-Secundario).

Tu Pi Zero seguirá siendo el «Cerebro» (Master) porque tiene el cable USB, y los demás serán «Clientes» (Slaves) que escuchan por red.

Primero debemos autorizar a la Pi Zero a hablar con el resto de la casa.

A. Abrir la escucha de red

Edita el archivo de configuración del servidor:

sudo nano /etc/nut/upsd.conf

Sustituye tus líneas LISTEN por esta (es la más compatible):

LISTEN 0.0.0.0 3493

Esto permite que la Pi Zero responda tanto a su propio script de Telegram como a los PCs externos.

B. Crear el usuario para los esclavos

Edita el archivo de usuarios:

sudo nano /etc/nut/upsd.users

Añade este perfil al final (usa una contraseña distinta a la de admin):

[remotemon]
    password = clave_red_segura
    upsmon slave

Reinicia los servicios para aplicar los cambios:

sudo systemctl restart nut-server nut-monitor

Recuerda poner una IP fija a tu Raspberry pi zero

2. Configuración de NUT Cliente en Debian 13

Con nuestro servidor NUT funcionando, el siguiente paso es conectar tus PCs «esclavos» para que se apaguen de forma segura cuando la batería del SAI se agote.

En Debian 13, la instalación estándar de nut-client suele fallar por cambios en el sistema de permisos y rutas de archivos. En esta guía vamos a limpiar los conflictos y aplicar un «parche maestro» para que funcione a la primera.

Antes de empezar, debemos asegurarnos de que no existan servicios antiguos o duplicados que bloqueen a nut-monitor. En instalaciones de Debian, a veces aparece un archivo llamado upsmon.service que genera conflictos de prioridad.

Limpieza de conflictos previos

Ejecuta estos comandos para limpiar el terreno:

# Detenemos y deshabilitamos el servicio antiguo si existe
sudo systemctl stop upsmon.service 2>/dev/null
sudo systemctl disable upsmon.service 2>/dev/null

# Borramos el archivo duplicado para que systemd no se confunda
sudo rm -f /etc/systemd/system/upsmon.service

# Refrescamos la base de datos de servicios
sudo systemctl daemon-reload

Un par de aclaraciones.

  1. nut-monitor.service es el nombre oficial y moderno en Debian 13.
  2. upsmon.service es un alias o un residuo de versiones anteriores. Si ambos existen como archivos físicos en /etc/systemd/system/, systemd puede intentar arrancar los dos, chocando al intentar escribir en el mismo archivo de bloqueo (PID), lo que hace que el servicio se apague en milisegundos (el error que te pasaba a ti).

El siguiente paso es configurar tus otros PCs (esclavos) para que se apaguen de forma segura. En Debian 13, el proceso tiene sus «trucos». Aquí tienes cómo hacerlo funcionar a la primera.

Instalación del Cliente

Lo primero es instalar las herramientas necesarias en el PC que queremos proteger:

sudo apt update
sudo apt install nut-client -y

Configuración del Modo

Debemos decirle a NUT que este equipo no tiene un SAI conectado por USB, sino que va a escuchar a través de la red.

Edita el archivo: sudo nano /etc/nut/nut.conf

Modifica la línea del modo para que quede exactamente así:

MODE=netclient

Configuración del Monitor (upsmon.conf)

Este es el archivo donde ocurre la «magia». Aquí le decimos a qué servidor mirar.

Edita el archivo: sudo nano /etc/nut/upsmon.conf

Añade (o modifica) la línea MONITOR con los datos de tu servidor:

MONITOR salicru@192.168.1.14 1 remotemon clave_red_segura slave

Nota: Sustituye la IP por la de tu servidor NUT y asegúrate de que el usuario (remotemon) y la contraseña coincidan con los del archivo upsd.users del servidor.

El «Parche Maestro» para Debian 13

En Debian 13, el servicio estándar suele fallar debido a un script intermedio (wrapper) y a restricciones de permisos en la carpeta temporal /run/nut. Para solucionarlo, usaremos un Override de Systemd.

Paso A: Crear la carpeta de personalización

sudo mkdir -p /etc/systemd/system/nut-monitor.service.d

Paso B: Crear el archivo de corrección

sudo nano /etc/systemd/system/nut-monitor.service.d/override.conf

Paso C: Pegar el siguiente contenido (esto anula los errores de fábrica y apunta al binario real):

[Service]
ExecStartPre=
ExecStart=
ExecStart=/lib/nut/upsmon -F
RuntimeDirectory=nut
RuntimeDirectoryMode=0755
User=root
Group=nut

Aplicar cambios y Arrancar

Ahora solo queda refrescar el sistema y poner en marcha el monitor:

sudo systemctl daemon-reload
sudo systemctl enable nut-monitor
sudo systemctl restart nut-monitor

Verificación final

Para estar seguros de que todo funciona, ejecutamos:

sudo systemctl status nut-monitor

Si ves un texto en verde (active/running), ¡lo has logrado!

También puedes probar la conexión directa con este comando:

upsc salicru@192.168.1.14 ups.status

Si responde OL, tu PC está oficialmente bajo la protección del SAI.

«Saber más»

  • El Binario Real: En Debian 13, /usr/sbin/upsmon es solo un script. Al usar /lib/nut/upsmon, evitamos fallos silenciosos.
  • RuntimeDirectory: Es la forma moderna de gestionar la carpeta /run/nut sin pelearse con permisos de archivos manuales.
  • Seguridad: El uso de override.conf permite que, si actualizas el sistema, tus cambios no se borren.

3. Configuración en PCs con Windows (i7 / i5)

Si alguno de tus PCs usa Windows, no necesitas scripts complejos:

  1. Descarga e instala WinNUT-Client.
  2. Configura la conexión:
    • UPS Name: salicru
    • UPS Host: 192.168.1.14 (IP de la Pi Zero)
    • Port: 3493
    • Username: esclavo
    • Password: clave_red_segura
  3. Calibración: En la pestaña «Shutdown», elige cuánto tiempo quieres que pase desde que se corta la luz hasta que el PC se apague.

¿Cómo funcionará el apagado en cadena?

Es importante entender la jerarquía para que nadie pierda datos:

  1. Corte de luz: La Pi Zero avisa por Telegram al instante.
  2. Batería Baja: Cuando la Pi Zero detecta que queda poca energía, envía la señal de «Pánico» por red a los demás equipos
  3. Apagado de Esclavos: El resto de equipos reciben la orden y se apagan de inmediato para proteger sus discos.
  4. Apagado del Maestro: La Pi Zero espera a que los esclavos se desconecten. Una vez sola, inicia su propio apagado.
  5. Corte Total: En el último segundo, la Pi Zero le dice al Salicru: «Apágate en 30 segundos».

Ahora tus equipos están protegidos y más seguros ante la pérdida de datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio