Saltar al contenido principal

Integración domótica Unraid, gratuita y de código abierto

Integración Unraid para Gladys Assistant

Servidor Unraid: array, paridad, discos, contenedores Docker, VM, SAI y alertas en Gladys.

Unraid es el sistema de muchos NAS y servidores domésticos: un array de discos protegido por paridad, contenedores Docker y máquinas virtuales. Esta integración lee su servidor Unraid a través de su API oficial y lo lleva a Gladys: el propio servidor, y los discos, contenedores, VM y SAI que usted elija. Las escenas pueden reaccionar cuando un disco falla o se calienta, cuando termina una comprobación de paridad, cuando un contenedor se detiene o cuando Unraid publica una notificación; pueden iniciar, detener o reiniciar un contenedor o una VM. Un widget resume el servidor en el panel. Todo se queda en su red local.

Probada en un servidor Unraid real por el autor, además de las pruebas automáticas contra un servidor simulado. Sus comentarios son bienvenidos en las issues.

Lo que necesita​

  • Gladys Assistant 5.1.0 o posterior.
  • Unraid 7.2 o posterior: su API está integrada. Unraid 6.x no tiene esta API y no es compatible; Unraid 7.0 y 7.1 pueden funcionar con el plugin Unraid Connect, sin probar.
  • El servidor Unraid accesible desde la máquina de Gladys (la dirección de su interfaz web).

Leer el servidor nunca despierta un disco en reposo: las temperaturas vienen de lo que Unraid ya sabe, y un disco en reposo simplemente no tiene.

Puesta en marcha​

1. Crear una clave de API​

En la interfaz web de Unraid: Settings → Management Access → API Keys → Create. Dele un nombre (Gladys) y:

  • el rol Viewer, para supervisar el servidor (solo lectura);
  • para iniciar, detener y reiniciar contenedores y VM desde Gladys, también los permisos Docker y VMs con la acción de actualización (update). Sin ellos, Unraid rechaza cada orden y Gladys lo indica.

Copie la clave: Unraid solo la muestra una vez.

2. Configurar la integración​

En Gladys, Integraciones → Unraid → Configuración:

  • Dirección: la dirección de la interfaz web de Unraid, como en su navegador (192.168.1.10, tower.local, https://192.168.1.10). La integración sigue las redirecciones «Use SSL/TLS» de Unraid: a HTTPS en la misma dirección, o a su dirección myunraid.net.
  • Clave de API: la clave creada arriba.
  • Nombre (opcional): el nombre del servidor en Gladys; vacío, el nombre del servidor Unraid.
  • Aceptar certificados autofirmados: márquelo cuando «Use SSL/TLS» está en «Yes» en Unraid (su certificado es autofirmado).
  • Intervalo de actualización: de 15 segundos a 5 minutos (1 minuto por defecto).
  • Idioma de los nombres y textos: los nombres de las funciones, los textos de estado y los textos de los eventos de escena (francés por defecto).

Guarde y luego Probar la conexión: se lee el servidor y la integración indica lo que encuentra (versión de Unraid, discos, contenedores, VM, SAI).

3. Añadir los dispositivos​

Abra la pestaña Descubrir de la integración: el servidor, sus discos, sus contenedores, sus VM y su SAI aparecen en la lista. Añada los que quiera seguir; los demás quedan fuera de Gladys (los disparadores de escena los vigilan igualmente).

Los dispositivos​

El servidor​

FunciónValor
En línea1 mientras Unraid responde, 0 tras dos lecturas fallidas
Procesadoruso del procesador, %
Memoriamemoria usada (sin la caché), %
Temperatura del procesadorel procesador más caliente, °C
Tiempo en marchadías desde el último arranque
Array iniciado1 iniciado, 0 detenido
Estado del arraytexto: «Iniciado», «Detenido», «Iniciado · comprobación de paridad 45 %»…
Espacio usado del array%
Espacio libre del arrayterabytes
Progreso de la comprobación de paridad% durante una comprobación, una reconstrucción o un borrado, 0 si no
Errores de paridaderrores de la comprobación en curso o de la última
Discos que requieren atencióndiscos que no están «normales» o con errores de lectura
Alertas sin leernotificaciones de Unraid sin leer de nivel alerta o aviso
Actualizaciones de contenedorescontenedores con una imagen más reciente
Versión de Unraidtexto

Una función que el servidor no puede dar (API más antigua, sin sensor de procesador) no se crea.

Discos​

Un dispositivo por ranura del array: paridad, discos de datos, discos de los pools (caché). El dispositivo sigue a la ranura (Disk 3), como Unraid: un disco sustituido conserva su dispositivo y su historial.

FunciónValor
Temperatura°C, mientras el disco gira; nada mientras está en reposo
En reposo1 en reposo, 0 girando (solo discos duros)
Espacio usado% (no en los discos de paridad)
Espacio libregigabytes (no en los discos de paridad)
Erroreserrores de lectura contados por Unraid desde el último arranque
Estadotexto: «Normal», «Desactivado», «Ausente», «Emulado», «Disco erróneo»…

Contenedores​

Un dispositivo por contenedor Docker, con el nombre del contenedor (su identidad: una actualización recrea el contenedor y conserva el dispositivo).

FunciónValor
En marchainterruptor: encendido inicia el contenedor, apagado lo detiene
Actualización disponible1 cuando existe una imagen más reciente (comprobación de Unraid)

Los contenedores de la propia Gladys (Gladys y sus integraciones) son de solo lectura: Gladys nunca se detiene a sí misma desde aquí. La API no da el procesador ni la memoria por contenedor sin una conexión permanente: no compatible.

Máquinas virtuales​

FunciónValor
En marchainterruptor: encendido inicia la VM, apagado la apaga correctamente (botón de encendido)
Estadotexto: «En marcha», «Detenida», «En pausa», «Apagándose», «Bloqueada»…

Apagar una VM pide a su sistema que se apague, como el botón de encendido: nunca una parada forzada. Una VM que lo ignora sigue en marcha.

SAI​

Cuando Unraid gestiona un SAI (Settings → UPS Settings):

FunciónValor
Bateríacarga, %
Autonomía restanteminutos con batería
Carga%
Con batería1 con batería, 0 en red
Potenciavatios consumidos, cuando el SAI los da
Tensión de entradavoltios
Estadotexto dado por el SAI («ONLINE»…)

Panel​

El widget Unraid muestra el servidor de un vistazo: procesador, memoria y espacio usado del array, luego una lista con primero lo que requiere atención (un disco con problemas, un disco que Unraid considera lleno, un disco caliente, un contenedor de inicio automático que no está en marcha, el SAI con batería, alertas sin leer), luego el array, la última comprobación de paridad, los discos, los contenedores, las VM, el SAI y las actualizaciones de contenedores.

En su configuración, elija un contenedor o una VM para tener sus botones: Iniciar, Detener y Reiniciar (solo contenedores); Detener y Reiniciar piden confirmación. Sin elección, un botón Actualizar vuelve a leer el servidor.

Escenas​

Disparadores​

  • Disco de Unraid con error: un disco del array pasa a desactivado, ausente o emulado, o sus errores de lectura aumentan. Filtro: un disco (vacío: cualquiera). Información transmitida: nombre del servidor, nombre del disco, estado del disco, errores de lectura.
  • Disco de Unraid demasiado caliente: un disco alcanza la temperatura elegida (de 40 a 70 °C), en dos lecturas seguidas; se anuncia de nuevo cuando ha bajado 3 °C por debajo, y no dos veces en 30 minutos. Un disco en reposo nunca se despierta para leerla. Información transmitida: nombre del servidor, nombre del disco, temperatura, umbral.
  • Comprobación de paridad de Unraid terminada: ha terminado una comprobación de paridad, una reconstrucción o el borrado de un disco. Filtro: el resultado (sin errores, con errores, detenido antes del final). Información transmitida: nombre del servidor, resultado, errores encontrados, duración en minutos, operación. Una comprobación que termina mientras Gladys está detenida se anuncia en la lectura siguiente.
  • Contenedor de Unraid detenido: un contenedor que estaba en marcha se ha detenido o eliminado, en dos lecturas seguidas y desde hace un minuto al menos (una actualización lo recrea en segundos), y no por Gladys. Filtro: un contenedor (vacío: cualquiera). Información transmitida: nombre del servidor, nombre del contenedor, estado.
  • Notificación de Unraid: Unraid ha publicado una nueva notificación (avisos SMART, temperaturas, eventos del array, actualizaciones, un disco casi lleno…). Filtro: la importancia (alerta, aviso, información; vacío: cualquiera). Información transmitida: nombre del servidor, importancia, título, asunto, descripción. Las notificaciones presentes al iniciar la integración no se anuncian.

Los estados y temperaturas de los discos son también funciones: para un umbral propio, use una condición sobre la función.

Acciones​

  • Controlar un contenedor de Unraid: inicia, detiene o reinicia un contenedor. Salida: el nombre del contenedor.
  • Controlar una VM de Unraid: inicia una VM o la apaga correctamente. Salida: el nombre de la VM.
  • Estado del servidor Unraid: lee el servidor para las acciones siguientes. Salidas: responde (sí/no), un resumen listo para enviar («Array: Iniciado. 6 disco(s) correctos. 12/14 contenedor(es) en marcha.»), estado del array, discos que requieren atención, procesador, memoria, contenedores en marcha, alertas sin leer.

Nada detiene el array ni el servidor desde Gladys: demasiado arriesgado para una escena o una orden de voz. Use la interfaz de Unraid para ello.

Ideas de escenas​

  • Comprobación de paridad terminada con errores → envíese un mensaje: «Comprobación de paridad: {errores} errores en {duración} minutos».
  • Notificación de Unraid, importancia alerta → una notificación en su teléfono con su asunto.
  • Cada noche a las 4:00 → Controlar un contenedor de Unraid: reiniciar el contenedor que lo necesita (un servidor multimedia bloqueado, una VPN).
  • Disco de Unraid demasiado caliente, 50 °C → encender el ventilador del armario.
  • Cada mañana → Estado del servidor Unraid, y luego enviar su resumen.

Solución de problemas​

  • «Clave de API rechazada»: la clave se ha eliminado o se ha copiado mal. Cree una nueva en Settings → Management Access → API Keys.
  • «No hay API de Unraid en esta dirección»: Unraid anterior a 7.2 (sin el plugin Unraid Connect), o la dirección de otro servicio.
  • «La API de Unraid no responde»: la interfaz web responde, pero no la API que hay detrás: Unraid se está iniciando o la API se ha detenido (unraid-api restart en un terminal).
  • «Certificado rechazado»: «Use SSL/TLS» está en «Yes»: marque «Aceptar certificados autofirmados».
  • «Su DNS bloquea myunraid.net»: con «Use SSL/TLS» en «Strict», Unraid redirige a una dirección myunraid.net que muchos routers bloquean (protección contra el DNS rebinding). Introduzca https:// y la IP del servidor, y marque «Aceptar certificados autofirmados»; o permita myunraid.net en su router.
  • Se rechaza una orden: conceda a la clave de API los permisos Docker y VMs.
  • Sin temperatura para un disco: está en reposo; la temperatura vuelve cuando gira.
  • Un dispositivo muestra «Actualizar» en Descubrir: ha aparecido una función (una primera comprobación de paridad, un campo nuevo de la API). Actualícelo para tenerla.

Límites​

  • Un solo servidor Unraid por instalación.
  • Lectura cada 15 segundos a 5 minutos: un cambio aparece en la lectura siguiente.
  • Sin procesador ni memoria por contenedor (la API solo los da por una conexión permanente), sin tráfico de red, sin recursos compartidos.
  • La API no informa de las actualizaciones del propio Unraid: solo de las de los contenedores.
  • La integración solo guarda en /data lo que comparan los disparadores de escena (estados de los discos, contenedores vistos en marcha, la operación de paridad en curso, las notificaciones ya anunciadas) y las funciones de cada dispositivo; la clave de API se queda en la configuración de Gladys y nunca se escribe en los registros.
  • Sin relación con Lime Technology, Inc. Unraid es una marca de Lime Technology, Inc.

Parámetros de configuración​

Estos son los parámetros que Unraid te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Su servidor UnraidsectionNoUnraid 7.2 o posterior (su API está integrada). En Unraid, cree una clave de API: Settings, Management Access, API Keys, rol Viewer. Para iniciar y detener contenedores y VM desde Gladys, concédale también los permisos Docker y VMs.
DirecciónstringSíDirección IP o nombre del servidor Unraid, como en su navegador: con https:// para HTTPS y :puerto si no es el estándar.
Clave de APIsecretSíCreada en Unraid: Settings, Management Access, API Keys.
NombrestringNoNombre del servidor en Gladys. Vacío: el nombre del servidor Unraid.
OpcionessectionNo
Aceptar certificados autofirmadosbooleanNoCuando «Use SSL/TLS» de Unraid está en «Yes»: su certificado es autofirmado. Márquelo solo para su propio servidor.
Intervalo de actualizaciónselectNoCon qué frecuencia se lee el servidor Unraid. La lectura nunca despierta un disco en reposo.
Idioma de los nombres y textosselectNoNombres de las funciones al añadir un dispositivo, textos de estado y textos de los eventos de escena.

Cómo instalar Unraid en Gladys​

  1. En Gladys, abre Integraciones: Unraid 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/guim31/gladys-unraid:1.0.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/guim31/gladys-unraid.

Unraid 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​

Unraid 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 guim31, 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 🙂