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

Controle sus servidores Mopidy: música, volumen, listas, radios web, búsqueda, avisos.
Controle sus servidores de música Mopidy desde Gladys: archivos locales, radios web y cualquier fuente que añada una extensión de Mopidy (Jellyfin, YouTube Music, TuneIn, Subsonic…). Reproducir, pausar, cambiar la pista, el volumen y el silencio, lanzar una lista o una búsqueda, reproducir un timbre o una radio web y luego volver a la música, ver lo que suena en el panel. Todo se queda en su red local: sin nube, sin cuenta.
La integración habla con Mopidy mediante su API nativa (Mopidy-HTTP: JSON-RPC y el WebSocket de eventos): ve los cambios en el momento en que ocurren y conoce las URI de Mopidy. Se ha probado con servidores Mopidy reales, Mopidy 3.4.2 (paquete de Debian) y 4.0.5. Si su Mopidy solo ofrece MPD (Mopidy-MPD), use en su lugar la integración gladys-mpd. Sus comentarios son bienvenidos en las issues.
Esta integración no está afiliada al proyecto Mopidy.
Requisitos
- Gladys Assistant 5.2.0 o posterior.
- Mopidy 3 o 4 con su interfaz HTTP (Mopidy-HTTP, activada por defecto),
accesible desde Gladys en la red: en
mopidy.conf, sección[http], pongahostname = 0.0.0.0(el valor por defecto127.0.0.1solo responde a la propia máquina). El puerto es 6680 por defecto. - Mopidy-HTTP no tiene contraseña: manténgalo en su red doméstica. Un Mopidy
detrás de un proxy inverso en HTTPS también funciona (introduzca
https://…), siempre que el proxy no pida contraseña a Gladys.
Configuración
- En Gladys, abra Integraciones, luego Instalar desde GitHub, e
introduzca
https://github.com/guim31/gladys-mopidy(o instale Mopidy desde el catálogo cuando aparezca). - En Configuración, introduzca la dirección de su servidor
(
192.168.1.20,mopidy.home,192.168.1.20:6681para otro puerto, o la dirección de su cliente web copiada del navegador,http://192.168.1.20:6680/iris/) y un nombre (Salón). Hasta tres servidores más debajo. - Elija el Idioma de los dispositivos (nombres de las funciones, mensajes) y, si lo desea, el Volumen de las notificaciones. Guarde.
- Pulse Probar la conexión: una línea por servidor, con la versión de Mopidy, lo que está haciendo, su volumen y sus listas.
- Abra la pestaña Descubrir y añada los dispositivos.
Use direcciones IP fijas (una reserva DHCP en su router) o nombres que su DNS
resuelva: los nombres que terminan en .local no se resuelven dentro del
contenedor de la integración.
El dispositivo de cada servidor
Cada servidor Mopidy es un dispositivo. Gladys lo muestra como un reproductor de música: la caja Música del panel (reproducir, pausa, anterior, siguiente, volumen) y la acción de escena Hablar en un altavoz funcionan con él.
| Función (nombres en español) | Qué hace |
|---|---|
| Reproducir | Reproduce la cola (una pista en pausa sigue donde estaba). |
| Pausa | Pausa. |
| Pista anterior | Pasa a la pista anterior. |
| Pista siguiente | Pasa a la pista siguiente. |
| Volumen | 0 a 100 %, tal como lo ve Mopidy. Sin valor cuando Mopidy no tiene mezclador (mixer = none). |
| Silencio | Activado o no: el silencio del mezclador de Mopidy. |
| Estado de reproducción | 1 mientras reproduce, 0 en pausa o detenido. Guardado en el historial, utilizable como disparador o condición de escena. |
| Reproduciendo ahora | «Título — Artista», «En pausa · …» o «Detenido». Para una radio web, la canción que anuncia. |
| Lista de reproducción | La lista de las listas de Mopidy: elegir una sustituye la cola por ella y la reproduce. |
| Notificación | Recibe una dirección que reproducir y luego vuelve a lo que sonaba (ver más abajo). |
La lista de listas sigue a Mopidy: una lista creada o borrada aparece o desaparece de la lista.
Widget del panel
Añada el widget Reproductor Mopidy a un panel. En su configuración, elija un servidor (vacío: el primero de la configuración). Muestra:
- el título de la pista y, debajo, el artista y el álbum (o la emisora de una radio web);
- el volumen en un indicador;
- el estado (reproduciendo, en pausa, detenido), la posición en la cola, el aleatorio y la repetición;
- cuatro botones: Anterior, Reproducir o Pausa, Siguiente y Opciones…. Opciones… abre un formulario con los valores actuales: el volumen, una lista que reproducir, la reproducción aleatoria y la repetición. Solo se envía lo que usted cambia.
El widget sigue al servidor: se actualiza en diez segundos como máximo cuando empieza una pista, cambia el volumen o se crea una lista. Sin carátula (ver Límites).
Escenas
Disparadores
- Pista de Mopidy iniciada: Mopidy empieza una pista — reproducir, pista siguiente, una lista, otro cliente como Iris o una aplicación de teléfono. Se puede limitar a un servidor. La escena recibe el título, el artista, el álbum, la URI de la pista y «artista · álbum». Las notificaciones no lo disparan, ni la pista reanudada después de una.
- Servidor Mopidy perdido: un servidor que respondía deja de responder (apagado, colgado, fuera de la red). Se puede limitar a un servidor; la escena recibe su nombre.
Si suena música o no lo dice la función Estado de reproducción: use para ello el disparador del núcleo sobre el estado de un dispositivo.
Acciones
El servidor se elige entre los dispositivos de la integración (vacío: el primero de la configuración).
- Reproducir una lista de Mopidy: sustituye la cola por una lista de Mopidy, por su nombre (mayúsculas y acentos indiferentes) o su URI, y la reproduce. El número de pistas en la cola se puede usar en las acciones siguientes de la escena. Un nombre desconocido hace fallar la acción con la lista de las listas. También puede elegir una lista en una lista desplegable con la acción Controlar un dispositivo del núcleo, en la función Lista de reproducción.
- Reproducir una dirección en Mopidy: reproduce una dirección — una radio
web (
http://…,https://…), un sonido en un servidor web o una URI de Mopidy (file:///musica/timbre.ogg,local:track:…,tunein:station:…) — al volumen indicado (vacío: sin cambios). Después: Volver a la música anterior (la dirección suena una vez y luego vuelve lo que sonaba, ver más abajo) o Seguir (sustituye la cola). La acción falla cuando Mopidy no puede reproducir la dirección. - Buscar y reproducir en Mopidy: busca en la biblioteca de Mopidy (todos los backends que saben buscar: archivos locales con Mopidy-Local, Jellyfin, YouTube Music…) un artista, un álbum o un título, y reproduce las 50 primeras pistas encontradas en lugar de la cola. El número de pistas se puede usar en las acciones siguientes.
- Vaciar la cola de Mopidy: detiene el servidor y quita todas las pistas de su cola.
- Reproducción aleatoria Mopidy: activar, desactivar o invertir. El resultado (activa o no) se puede usar en las acciones siguientes.
- Repetición Mopidy: desactivada, toda la cola o la pista actual.
Notificaciones y «Hablar en un altavoz»
La función Notificación de un servidor, la acción Reproducir una dirección en Mopidy con Volver a la música anterior y la acción Hablar en un altavoz de Gladys (la voz viene de Gladys Plus) funcionan igual:
- la dirección se añade al final de la cola (su cola nunca se sustituye) y se reproduce enseguida, con el Volumen de las notificaciones de la configuración (o el volumen de la acción);
- Mopidy se detiene después; la dirección se quita de la cola, y vuelven el volumen y las opciones (aleatorio, repetición, single, consume);
- la pista que sonaba sigue en el segundo en que se cortó; una pista en pausa sigue en pausa, un servidor detenido sigue detenido.
Una segunda notificación durante la primera la sustituye. Si alguien toma el control del servidor mientras tanto (otra pista, la siguiente), la notificación termina sin tocar la música. Una notificación que sigue sonando al cabo de cinco minutos se termina y la música vuelve. Una radio web enviada como notificación no es una notificación: sigue sonando (su dirección se queda en la cola).
La acción Hablar en un altavoz tiene un control de volumen, pero Gladys no lo transmite a las integraciones externas: use el Volumen de las notificaciones de la configuración.
Ideas de escenas
- Timbre: cuando se pulsa el botón del timbre, Reproducir una dirección
en Mopidy
file:///musica/sonidos/timbre.oggen el servidor del salón, volumen 70, y luego volver a la música anterior. - Radio despertador: a las 7:00 entre semana, Reproducir una dirección en Mopidy con la dirección de su radio favorita, Seguir, volumen 25; a las 7:45, la función Pausa.
- Velada: al atardecer, Buscar y reproducir en Mopidy «jazz» y luego Reproducción aleatoria Mopidy activada.
- Nadie en casa: cuando la casa se queda vacía, la función Pausa de cada servidor.
- Servidor caído: con Servidor Mopidy perdido, enviar un mensaje a la familia: el servidor de música del salón ya no responde.
Actualización
La integración mantiene abierto el WebSocket de eventos de Mopidy en cada servidor: lo que pasa en Mopidy, desde Gladys o desde otro cliente, está en Gladys en menos de un segundo. Además, cada servidor se lee cada 30 segundos (eso comprueba también que sigue respondiendo y vuelve a abrir el WebSocket si un proxy lo ha cortado), y un valor sin cambios se reenvía cada seis horas para que Gladys nunca lo muestre como antiguo. Solo se envían los cambios a Gladys.
Un servidor que deja de responder se muestra inaccesible (insignia de transporte del dispositivo, estado de conexión de la integración), y la integración lo vuelve a intentar: tras 2, 5, 15, 30 segundos, y luego cada minuto. No hay nada más que hacer cuando vuelve.
Mopidy no tiene cuota: la integración envía un lote de lecturas por cambio y uno cada 30 segundos por servidor.
Solución de problemas
- «no responde»: compruebe la dirección y el puerto (6680, o el
portde la sección[http]demopidy.conf), que Mopidy escucha en la red (hostname = 0.0.0.0) y que ningún cortafuegos bloquea el puerto entre Gladys y el servidor. - «no hay Mopidy-HTTP en esta dirección y puerto»: otra cosa responde en
ese puerto, o Mopidy-HTTP está desactivado (
enabled = falseen[http]). - «acceso denegado (¿un proxy delante de Mopidy?)»: un proxy inverso pide una contraseña: deje que Gladys llegue a Mopidy directamente por el puerto 6680.
- «sin eventos en directo» en Probar la conexión: el WebSocket
/mopidy/wsno se puede abrir (un proxy que no deja pasar los WebSockets): los estados se leen entonces cada 30 segundos. - El volumen queda vacío: Mopidy no tiene mezclador (
mixer = noneen la sección[audio], para una salida de volumen fijo): cambie el volumen en el amplificador. - Una notificación no suena: la dirección debe ser accesible desde el
propio servidor Mopidy (no desde Gladys) y conocida por un backend
instalado:
http(s)://necesita el backend Stream (incluido),file://una carpeta de la sección[file],tunein:la extensión TuneIn. Ninguna extensión de Mopidy puede reproducir esta dirección significa que ningún backend conoce su esquema. - La lista Lista de reproducción está vacía: Mopidy aún no tiene ninguna
lista (las listas M3U están en el
playlists_dirde la sección[m3u]). - Más detalles: los registros de la integración (Integraciones → Mopidy →
Registros) muestran las conexiones, las pérdidas y las vueltas, y una línea
por orden. Reinicie el contenedor con
LOG_LEVEL=debugpara ver cada evento recibido.
Límites
- Hasta cuatro servidores. Un servidor se conoce por su lugar en la configuración: cambiar su dirección conserva el dispositivo y su historial.
- Sin carátula en el widget: Mopidy da direcciones de imágenes en su propia red, que el panel no siempre alcanza.
- Sin navegación por la biblioteca: listas, búsquedas, direcciones y URI.
- La búsqueda pone como máximo 50 pistas en la cola, una lista como máximo 500.
- Mopidy no se encuentra solo en la red: introduzca las direcciones.
- Gladys no transmite el volumen de la acción Hablar en un altavoz (se aplica el Volumen de las notificaciones).
- Gladys 5.2.0 o posterior (el formulario Opciones… del widget).
Parámetros de configuración
Estos son los parámetros que Mopidy te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Sus servidores Mopidy | section | No | Mopidy con su interfaz HTTP (Mopidy-HTTP, puerto 6680), accesible desde Gladys: ponga hostname = 0.0.0.0 en la sección [http] de mopidy.conf. Introduzca su dirección IP (añada :puerto si no es 6680). Hasta cuatro servidores. |
| Dirección del servidor | string | No | Dirección IP o nombre del servidor Mopidy, con :puerto si no es el 6680. La dirección de su cliente web también sirve. |
| Nombre | string | No | Nombre del dispositivo en Gladys. Vacío: «Mopidy» seguido de la dirección. |
| Segundo servidor | section | No | Los mismos campos, para otro servidor Mopidy de su red. |
| Dirección del servidor | string | No | |
| Nombre | string | No | |
| Tercer servidor | section | No | Los mismos campos, para otro servidor Mopidy de su red. |
| Dirección del servidor | string | No | |
| Nombre | string | No | |
| Cuarto servidor | section | No | Los mismos campos, para otro servidor Mopidy de su red. |
| Dirección del servidor | string | No | |
| Nombre | string | No | |
| Opciones | section | No | La notificación de un servidor reproduce una dirección (un timbre, un aviso) y luego vuelve a lo que sonaba. |
| Volumen de las notificaciones | select | No | Volumen durante una notificación, después vuelve el anterior. Gladys no transmite el volumen de su acción «Hablar en un altavoz». |
| Idioma de los dispositivos | select | No | Nombres de las funciones al añadir un dispositivo (Volumen, Lista de reproducción…) e idioma de los mensajes. |
Cómo instalar Mopidy en Gladys
- En Gladys, abre Integraciones: Mopidy 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-mopidy: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-mopidy.
Mopidy requiere Gladys >=5.2.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
Mopidy 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