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

Siga y controle las descargas de aria2: velocidades, cola, completadas, errores, pausa, enlaces.
Siga y controle aria2, la utilidad de descarga ligera (HTTP, FTP, SFTP, BitTorrent, Metalink), desde Gladys, en su red local. Vea las velocidades de descarga y de subida y las descargas en curso, ponga todo en pausa o frénelo cuando empieza una película en la tele, añada un enlace desde una escena, y reciba un aviso cuando una descarga termina o falla.
Probada con un aria2 real, todavía no en una casa real: sus comentarios son bienvenidos. Esta integración se ha probado con aria2 1.37.0, con descargas reales (completadas, con error, en pausa), pero todavía no en una instalación real de Gladys con su NAS, su proxy inverso o su interfaz (AriaNg, Motrix…). Si algo no funciona como se describe, dígalo en el foro de Gladys o en las issues.
La integración nunca elimina una descarga ni un archivo. Sus órdenes son la pausa, la reanudación, el límite de descarga y añadir un enlace.
Lo que necesita
- Gladys Assistant 5.1.0 o posterior.
- aria2 1.18 o posterior iniciado con su interfaz RPC, accesible desde Gladys:
aria2c --enable-rpc --rpc-listen-all --rpc-secret=<un secreto>, o las mismas opciones enaria2.conf(enable-rpc=true,rpc-listen-all=true,rpc-secret=…). Las imágenes Docker (p3terx/aria2-pro…) y los paquetes de NAS lo hacen con una variableRPC_SECRETo un ajuste. - El secreto RPC (
--rpc-secret), el que introduce en AriaNg como token secreto. aria2 también funciona sin él, pero cualquiera en su red podría entonces controlarlo.
--rpc-listen-all importa: sin él, aria2 solo responde en localhost, y
Gladys se ejecuta en otro contenedor.
Configuración
- Instale la integración desde el catálogo de Gladys.
- En Configuración, introduzca la Dirección RPC de aria2 (por ejemplo
192.168.1.10:6800; puerto 6800 si no se indica ninguno) y el Secreto RPC, y opcionalmente un Nombre. También vale la URL completa, tal como la muestra AriaNg:ws://192.168.1.10:6800/jsonrpc, ohttps://nas.example.com/aria2/jsonrpcdetrás de un proxy inverso. - Guarde y haga clic en Probar la conexión: el mensaje bajo el botón dice si aria2 responde, su versión, sus descargas y si las notificaciones instantáneas funcionan.
- Abra la pestaña Descubrimiento: un dispositivo, aria2. Haga clic en Añadir, elija una habitación y guarde.
Opciones:
- Límite de «Frenar» (kB/s): la velocidad del conjunto de las descargas mientras Frenar está activo (1000 kB/s por defecto, es decir 8 Mbit/s).
- Intervalo de actualización: frecuencia de lectura de aria2, de 10 segundos a 2 minutos (30 segundos por defecto). Los disparadores de escena no lo esperan: aria2 avisa a la integración enseguida.
- Aceptar certificados autofirmados: para un aria2 servido en HTTPS
(
--rpc-secure) con su propio certificado. - Idioma de los textos de los dispositivos: inglés, francés, alemán o español, para los nombres de las funciones (dados al añadir el dispositivo) y la lista de descargas (francés por defecto).
El dispositivo aria2
| Función | Qué es |
|---|---|
| Velocidad de descarga | Velocidad del conjunto de las descargas, en kB/s |
| Velocidad de subida | Velocidad del conjunto de las subidas (torrents compartiendo), en kB/s |
| Descargas activas | Descargas que reciben datos |
| Descargas en espera | Descargas en la cola, esperando un hueco o en pausa |
| Descargas completadas | Descargas terminadas desde el inicio de aria2 (torrent compartiendo incl.) |
| Descargas con error | Descargas detenidas por un error desde el inicio de aria2 |
| Descargas en curso | Texto: las tres primeras descargas activas con su porcentaje |
| Pausar todo | Interruptor: encendido pausa todo; apagado lo reanuda |
| Frenar | Interruptor: encendido fija el límite de la configuración; apagado lo quita |
| Límite de descarga | El límite global de descarga de aria2, en kB/s (0: ninguno) |
| aria2 conectado | 1 mientras aria2 responde, 0 si no |
Descargas completadas y Descargas con error cuentan lo que aria2 recuerda:
los resultados de la sesión (1000 como máximo, --max-download-result), hasta
que aria2 se reinicia o se purgan desde AriaNg. Los metadatos de un enlace
magnet y el archivo .torrent de una descarga no cuentan: solo la descarga
real.
Pausar todo está encendido cuando queda algo por descargar y todo está en pausa. Un enlace añadido mientras todo está en pausa empieza enseguida: aria2 pausa lo que existe, no lo que llega después.
Frenar está encendido en cuanto hay un límite global de descarga, lo haya puesto quien sea (el interruptor, el widget, la acción Fijar el límite de descarga, AriaNg).
Panel
El widget Descargas aria2 muestra las velocidades de descarga y de subida, el número de descargas activas, las descargas en curso con su porcentaje y su velocidad, y los números en espera, completadas y con error. Tres botones:
- Pausar todo: pausa todas las descargas;
- Reanudar todo: reanuda todas las descargas;
- Frenar: fija el límite de la configuración, o quita el límite cuando hay uno (una marca lo indica).
El widget funciona en cuanto la integración está configurada, incluso antes de añadir el dispositivo.
Escenas
Disparadores
- Descarga completada: una descarga ha terminado. Un torrent cuenta en cuanto está completo, mientras sigue compartiendo, una sola vez. Variables: el nombre del archivo, el tamaño en GB y la carpeta.
- Descarga con error: aria2 ha detenido una descarga por un error (enlace roto, rechazo del servidor, disco lleno…). Variables: el nombre del archivo, el mensaje de error de aria2 y su código de error (3: recurso no encontrado, 9: espacio en disco insuficiente…).
- Nada más que descargar: la última descarga activa o en espera ha terminado (completada, con error o eliminada). Las descargas en pausa siguen pendientes: pausarlo todo no lo dispara. Variables: los números de completadas y con error de la sesión.
Las descargas presentes al iniciar la integración no se anuncian. aria2 avisa a la integración por su WebSocket (mismo puerto que el RPC): los disparadores llegan en menos de un segundo. Sin WebSocket (un proxy inverso que no lo deja pasar), llegan en la lectura siguiente.
Acciones
- Añadir un enlace de descarga: da un enlace a aria2:
http,https,ftp,sftp, un enlacemagnet:, o la dirección de un archivo.torrento.metalink(aria2 descarga entonces lo que describe). La Carpeta es opcional: una ruta absoluta en el servidor aria2 (/downloads/peliculas); vacía, la carpeta predeterminada de aria2. La salida es el identificador (GID) de la nueva descarga. - Pausar todas las descargas: pausa las descargas activas y en espera.
- Reanudar todas las descargas: reanuda las descargas en pausa.
- Fijar el límite de descarga: el límite global de aria2 para todas las descargas juntas, en kB/s, hasta el próximo cambio; 0 lo quita.
Ideas de escenas
- Empieza una película: cuando la tele o el reproductor empieza a reproducir, encienda Frenar (acción «controlar un dispositivo» sobre el interruptor); cuando se detiene, apáguelo.
- Videollamada: desde un evento de calendario o un botón, Pausar todas las descargas, y Reanudar todas las descargas una hora después.
- Descargas nocturnas: a la 1, Fijar el límite de descarga a 0; a las 8, a 2000.
- Película lista: con Descarga completada, envíe un mensaje «{{triggerEvent.data.name}} está lista ({{triggerEvent.data.size_gb}} GB)».
- Enlace roto: con Descarga con error, envíe «{{triggerEvent.data.name}}: {{triggerEvent.data.error}}».
- Nada más: con Nada más que descargar, apague el ventilador del NAS o deje que el ordenador entre en reposo.
Actualización y carga
La integración lee aria2 con su propio temporizador (cada 30 segundos por
defecto), no con el planificador de Gladys, y justo después de cada
notificación de aria2 (una vez por ráfaga). Una lectura es una sola petición
(system.multicall) con solo los campos usados, para 1000 descargas en espera
y 1000 terminadas como máximo. Cuando aria2 deja de responder, se vuelve a leer
15 segundos después. Un valor que no cambia se envía igualmente a Gladys cada 6
horas. El WebSocket se reconecta solo, tras 5 segundos y luego hasta 5
minutos.
La API es local, sin cuota.
Solución de problemas
- «aria2 no responde»: compruebe la dirección y el puerto desde la máquina
de Gladys (
curl http://192.168.1.10:6800/jsonrpcdebe obtener respuesta), que aria2 se ejecuta con--enable-rpcy--rpc-listen-all, y que el puerto está publicado si aria2 se ejecuta en Docker. - «secreto rechazado»: el secreto RPC no coincide con
--rpc-secret. Sin secreto en aria2, deje el campo vacío. - «no hay RPC de aria2 en esta dirección»: algo responde, pero no aria2: a menudo la página web de AriaNg (puerto 6880) en lugar del RPC (puerto 6800), o falta una ruta detrás de un proxy inverso.
- «certificado rechazado»: marque Aceptar certificados autofirmados.
- «sin notificaciones instantáneas» en el informe de la prueba: el WebSocket se rechaza, a menudo por un proxy inverso sin soporte de WebSocket, o un certificado autofirmado (que el WebSocket no puede aceptar). Todo funciona, al intervalo de actualización.
- «orden rechazada por aria2»: aria2 no ha aceptado el enlace (esquema desconocido, dirección no válida) o la carpeta. Su motivo está en los registros de la integración.
- Más detalles: ponga la variable de entorno
LOG_LEVEL=debugen el contenedor para ver cada lectura y cada notificación en los registros. El secreto y los enlaces nunca se escriben (solo el host de un enlace).
Límites
- Un solo servidor aria2. Un dispositivo, no uno por descarga.
- Ninguna eliminación de descargas ni de archivos, a propósito.
- Las velocidades y el límite son los del conjunto de aria2, no de una descarga.
- Los números de completadas y con error son los de la sesión de aria2: vuelven a cero cuando aria2 se reinicia.
- Una descarga añadida y eliminada entre dos lecturas, con el WebSocket cortado, no se ve.
- Los nombres de las funciones se fijan al añadir el dispositivo: cambiar el idioma después no renombra nada en Gladys.
- Sin relación con el proyecto aria2.
Parámetros de configuración
Estos son los parámetros que aria2 te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Su servidor aria2 | section | No | aria2 iniciado con --enable-rpc y --rpc-listen-all (puerto 6800), en su red. AriaNg, Motrix o un paquete de NAS: el mismo RPC. Nunca borra una descarga ni un archivo. |
| Dirección RPC | string | Sí | Dirección IP o nombre, con :puerto (6800 si no). También vale la URL completa: http(s):// o ws(s)://…/jsonrpc. |
| Secreto RPC | secret | No | El valor de --rpc-secret (el «token secreto» de AriaNg). Vacío si aria2 no tiene. |
| Nombre | string | No | Nombre del dispositivo en Gladys. Vacío: aria2 seguido de la dirección. |
| Opciones | section | No | |
| Límite de «Frenar» (kB/s) | number | No | Velocidad del conjunto de las descargas mientras «Frenar» está activo. 1000 kB/s = 8 Mbit/s. |
| Intervalo de actualización | select | No | Frecuencia de lectura de aria2. Los disparadores de escena son inmediatos: aria2 avisa a Gladys. |
| Aceptar certificados autofirmados | boolean | No | Para un aria2 servido en HTTPS (--rpc-secure) con su propio certificado. |
| Idioma de los textos de los dispositivos | select | No | Nombres de las funciones (fijados al añadir el dispositivo) y textos enviados por la integración. |
Cómo instalar aria2 en Gladys
- En Gladys, abre Integraciones: aria2 aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/guim31/gladys-aria2: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). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-aria2.
aria2 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
aria2 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.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación