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

RomM en Gladys: juegos y plataformas de su biblioteca retro, juegos nuevos, escaneos.
Lleve su servidor RomM (el gestor autoalojado de su biblioteca de juegos retro) a Gladys, a través de su red local: los juegos, las plataformas, el tamaño de la biblioteca, los juegos todavía sin metadatos, los últimos juegos añadidos en un panel, escenas que reaccionan cuando llega un juego nuevo o termina un escaneo, y una acción de escena para escanear la biblioteca.
La integración se ha probado con un RomM 5.4.1 real (la imagen Docker oficial, con juegos homebrew), todavía no en una instalación real de Gladys: sus comentarios son bienvenidos en el foro de Gladys o en los issues.
Lo que necesita
- Gladys Assistant 5.1.0 o posterior.
- Un servidor RomM accesible desde Gladys (misma red), en el puerto de su
interfaz web (
8080por defecto). RomM 5.4 o posterior para iniciar un escaneo desde Gladys. - Una forma de acceder, una de las dos:
- recomendado, un token de API de cliente: en RomM, abra su perfil y
luego Client API tokens, cree un token con los permisos View ROMs,
View platforms y, para ver y lanzar los escaneos, Run tasks (cuenta
de administrador), y cópielo (empieza por
rmm_); - o el usuario y la contraseña de un usuario de RomM (un administrador para ver y lanzar los escaneos).
- recomendado, un token de API de cliente: en RomM, abra su perfil y
luego Client API tokens, cree un token con los permisos View ROMs,
View platforms y, para ver y lanzar los escaneos, Run tasks (cuenta
de administrador), y cópielo (empieza por
Configuración
- Instale la integración desde el catálogo de Gladys.
- En Configuración, introduzca la Dirección de RomM (por ejemplo
192.168.1.2:8080; sin puerto se usa8080), luego el Token de API de cliente, o el Usuario y la Contraseña. - Guarde y haga clic en Probar la conexión: el mensaje bajo el botón indica la versión de RomM, los juegos y el tamaño de la biblioteca, las plataformas y los juegos sin metadatos.
- Abra la pestaña Descubrir: un dispositivo para el servidor. Haga clic en Añadir, elija una habitación y guarde.
Opciones:
- Intervalo de actualización: de 1 a 10 minutos (2 minutos por defecto). Cada actualización son cinco pequeñas peticiones a la API de RomM.
- Idioma de los nombres de funciones: los nombres dados a las funciones al añadir el dispositivo (francés por defecto) y las frases de las acciones de escena.
La integración lee RomM. Solo cambia algo cuando usted lo pide: el botón Escanear del widget y la acción de escena Escanear la biblioteca de RomM.
El dispositivo
Un dispositivo, RomM seguido de la dirección del servidor:
| Función | Lo que da |
|---|---|
| En línea | 1 cuando RomM responde, 0 si no |
| Plataformas | plataformas con juegos en la biblioteca |
| Juegos | juegos de la biblioteca |
| Tamaño de la biblioteca | tamaño de los archivos de juegos en disco, en GB |
| Juegos sin metadatos | juegos que RomM no ha asociado a ninguna fuente de metadatos |
| Último juego añadido | su nombre y su plataforma, como texto |
Las cifras cambian en cada actualización.
Panel
El widget RomM muestra tres casillas (juegos, plataformas, juegos sin metadatos), el escaneo en curso con su progreso, la lista de los últimos juegos añadidos (nombre, plataforma y fecha) y un botón Escanear que lanza un escaneo rápido (solo juegos nuevos).
Añádalo desde el editor del panel. Ajustes: el número de juegos de la lista (3, 5 u 8), un interruptor para ocultar las casillas y otro para ocultar el botón. Funciona antes incluso de añadir el dispositivo.
Escenas
Disparadores
- Juego añadido en RomM: ha aparecido un nuevo juego en la biblioteca de
RomM (tras un escaneo o una subida). Filtro: Plataforma (el nombre de la
plataforma, exactamente como lo muestra RomM, por ejemplo
Game Boy Advance; vacío: cualquiera). Información transmitida a las acciones: el nombre del juego, su plataforma, su nombre de archivo, el enlace al juego en RomM y el número de juegos de la biblioteca. Mientras RomM sigue buscando los metadatos de un juego, el evento espera su nombre definitivo (30 minutos como máximo). - Escaneo de RomM terminado: ha terminado un escaneo de la biblioteca, sea
cual sea su origen (Gladys, la interfaz web de RomM, su programación).
Información: el tipo de escaneo como lo nombra RomM (
Quick Scan…), los juegos nuevos, identificados y escaneados (contados por RomM), los juegos de la biblioteca y la duración en minutos. Requiere una cuenta que vea las tareas (administrador, o token con Run tasks).
Cada evento se anuncia una sola vez, incluso tras un reinicio de la integración. Lo que RomM ya tenía al iniciarse la integración no se anuncia.
Acciones
- Escanear la biblioteca de RomM: inicia un escaneo, como el botón Scan de RomM. Opción Qué escanear: Solo juegos nuevos (rápido) (por defecto), Juegos sin metadatos (para reintentar las fuentes de metadatos) o Toda la biblioteca (completo, lento). Requiere RomM 5.4 o posterior y una cuenta de administrador (o un token con Run tasks). Un escaneo ya en curso hace fallar la acción.
- Leer los últimos juegos de RomM: lee RomM ahora y da una frase para un mensaje o un aviso de voz, como «RomM: 152 juegos en 6 plataformas. Últimos añadidos: Tobu Tobu Girl (Game Boy), …», con las cifras por separado (juegos, plataformas, juegos sin metadatos, nombre y plataforma del último juego añadido). Opción: el número de juegos citados en la frase (3 por defecto).
Ideas de escenas
- Cada noche a las 3, escanear la biblioteca de RomM; cuando el escaneo termine con juegos nuevos, enviarse un mensaje «{new_games} juego(s) nuevo(s) en RomM».
- Cuando se añada un juego en la plataforma Game Boy Advance, avisar a los niños: «Nuevo juego: {name}».
- El sábado por la mañana, leer los últimos juegos de RomM y anunciar la frase en el altavoz del salón.
Solución de problemas
- «RomM no responde»: compruebe la dirección y el puerto (
8080), y que Gladys puede acceder al servidor (misma red, cortafuegos). - «RomM ha rechazado el acceso»: copie de nuevo el token de API de cliente (un token puede caducar o ser revocado), o compruebe el usuario y la contraseña.
- «Esta cuenta no puede leer los juegos»: al token le faltan los permisos View ROMs y View platforms: cree uno nuevo con ellos.
- «Un escaneo requiere una cuenta de administrador»: el usuario no es administrador, o el token no tiene Run tasks. Los juegos se siguen leyendo; Escaneo de RomM terminado no se dispara.
- «Iniciar un escaneo desde Gladys requiere RomM 5.4 o posterior»: actualice RomM; las versiones anteriores solo lanzan un escaneo desde su interfaz web.
- «No hay ningún RomM en esta dirección»: otro servicio responde en este puerto.
- «La dirección redirige»: un proxy inverso envía a una página de acceso o a HTTPS; introduzca la dirección directa de RomM en su red.
- Más detalles: ponga el
LOG_LEVELde la integración endebugy abra sus registros.
Límites
- Las cifras y los eventos son tan recientes como el intervalo de actualización.
- Solo se comparan los 10 juegos más recientes en cada actualización: más allá de 10 juegos nuevos de golpe (una carpeta entera copiada), los juegos se cuentan, pero no se anuncian todos.
- Las cifras de Escaneo de RomM terminado son las de RomM, que puede contar menos juegos de los que realmente se han añadido.
- Sin carátula en el widget: las carátulas de RomM requieren un acceso que el panel no tiene.
- La integración está escrita para la API de RomM 5 (probada con 5.4.1): una versión futura que la cambie podría requerir una actualización.
- Sin relación con RomM.
Parámetros de configuración
Estos son los parámetros que RomM te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Servidor RomM | section | No | Dirección de RomM y acceso. La integración lee la biblioteca; solo lanza un escaneo cuando usted lo pide. |
| Dirección | string | No | Dirección IP o nombre del servidor, con el puerto de la interfaz web (8080 por defecto). |
| Token de API de cliente | secret | No | Recomendado: Perfil → Client API tokens en RomM, con View ROMs, View platforms y Run tasks. Si no, los dos campos de abajo. |
| Usuario | string | No | Solo sin token: un usuario de RomM (administrador para ver y lanzar escaneos). |
| Contraseña | secret | No | |
| Intervalo de actualización | select | No | Con qué frecuencia se lee RomM: juegos nuevos, cifras, escaneos. |
| Idioma de los nombres de funciones | select | No | Nombres de las funciones al añadir el dispositivo y frases de las acciones de escena. |
Cómo instalar RomM en Gladys
- En Gladys, abre Integraciones: RomM 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-romm:1.0.0), 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-romm.
RomM 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
RomM 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