Saltar al contenido principal

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

Integración Mopidy para Gladys Assistant

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.3.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], ponga hostname = 0.0.0.0 (el valor por defecto 127.0.0.1 solo 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​

  1. 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).
  2. En Configuración, introduzca la dirección de su servidor (192.168.1.20, mopidy.home, 192.168.1.20:6681 para 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.
  3. Elija el Idioma de los dispositivos (nombres de las funciones, mensajes) y, si lo desea, el Volumen de las notificaciones. Guarde.
  4. 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.
  5. 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 y las acciones de escena Hablar en un altavoz y Reproducir música en un altavoz funcionan con él (vea la sección siguiente).

Función (nombres en español)Qué hace
ReproducirReproduce la cola (una pista en pausa sigue donde estaba).
PausaPausa.
Pista anteriorPasa a la pista anterior.
Pista siguientePasa a la pista siguiente.
Volumen0 a 100 %, tal como lo ve Mopidy. Sin valor cuando Mopidy no tiene mezclador (mixer = none).
SilencioActivado o no: el silencio del mezclador de Mopidy.
Estado de reproducción1 reproduciendo, 0 en pausa, 2 detenido. Modificable: Gladys reproduce, pausa y detiene a través de él. Utilizable como disparador o condición de escena.
TítuloTítulo de la pista, o la canción que anuncia una radio web. Vacío cuando no hay nada cargado.
ArtistaArtista(s) de la pista.
ÁlbumÁlbum de la pista, o la emisora de una radio web.
CarátulaCarátula de la pista, mostrada por la caja Música (vea Límites).
DuraciónDuración de la pista en segundos, 0 para una radio web.
PosiciónPosición en la pista en segundos; cambiarla salta a ella. Se envía en cada cambio de pista o de estado y en cada salto: Gladys avanza la barra por sí misma.
Reproducción aleatoriaLa reproducción aleatoria de Mopidy.
RepeticiónDesactivada, toda la cola o la pista actual.
Reproduciendo ahora«Título — Artista», «En pausa · …» o «Detenido». Para una radio web, la canción que anuncia. Desde la versión 1.0, se conserva para los paneles y escenas que la usan.
Lista de reproducciónLa lista de las listas de Mopidy: elegir una sustituye la cola por ella y la reproduce.
NotificaciónRecibe 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.

Reproductor de música de Gladys 5.3​

Desde Gladys 5.3, la caja Música del panel es un verdadero reproductor, y Mopidy la llena por completo:

  • la carátula, el título, el artista y el álbum, una barra de progreso que se arrastra para saltar, reproducir y pausa, anterior, siguiente, reproducción aleatoria, repetición, el volumen y el silencio;
  • la cola (botón de lista): las pistas de la cola de Mopidy, la actual resaltada; un toque reproduce otra;
  • buscar y explorar (botón de lupa): la búsqueda consulta cada backend de Mopidy que sabe buscar (artistas, álbumes, pistas) y los nombres de las listas; la exploración empieza por Listas de reproducción y luego las carpetas de Mopidy (Files, Local media con Mopidy-Local, las de sus otras extensiones). Un toque reproduce el elemento en lugar de la cola; el gesto secundario lo añade después de la pista actual o al final de la cola. Una carpeta se abre, no se reproduce.

La acción de escena Reproducir música en un altavoz de Gladys elige una lista, un álbum o una pista en el mismo panel, y lo reproduce cuando se ejecuta la escena.

Un dispositivo añadido antes de la versión 1.1.0 funciona como antes, sin las nuevas funciones: abra la pestaña Descubrir de la integración y haga clic en Actualizar en el servidor (Gladys lo propone porque las funciones cambiaron). Las nuevas funciones se añaden; las existentes conservan sus escenas y paneles. Dos cambian: Silencio pasa a ser un silencio de música (antes era un interruptor), y Estado de reproducción vale 2 en lugar de 0 cuando Mopidy está detenido.

Las carátulas vienen de Mopidy: Mopidy-Local da el archivo de carátula de la carpeta del álbum o la carátula integrada en los archivos, las demás extensiones las suyas. Gladys muestra una carátula de 300 KB como máximo, y Mopidy-Local sirve el archivo tal como está en el disco: la integración reduce una carátula más pesada (un JPEG de 400 píxeles como máximo), hasta 10 MB (vea Límites).

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. La caja Música de Gladys 5.3 (arriba) es el reproductor completo; este widget añade el formulario Opciones… y no tiene carátula.

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:

  1. 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);
  2. 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);
  3. 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​

  • Música por la mañana: a las 7:00, Reproducir música en un altavoz con la lista Mañana en el servidor de la cocina.
  • Timbre: cuando se pulsa el botón del timbre, Reproducir una dirección en Mopidy file:///musica/sonidos/timbre.ogg en 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 port de la sección [http] de mopidy.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 = false en [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/ws no 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 = none en 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_dir de 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=debug para 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.
  • Las carátulas de más de 10 MB o de 25 megapíxeles no se muestran, ni las de otro formato que JPEG, PNG y WebP (GIF…), ni las WebP de más de 300 KB: la integración solo reduce JPEG y PNG.
  • La búsqueda de la caja Música consulta todos los backends a la vez: una extensión de streaming lenta la ralentiza (Gladys espera 10 segundos).
  • 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.3.0 o posterior (el reproductor de música y sus paneles).

Parámetros de configuración​

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

ParámetroTipoObligatorioDescripción
Sus servidores MopidysectionNoMopidy 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 servidorstringNoDirección IP o nombre del servidor Mopidy, con :puerto si no es el 6680. La dirección de su cliente web también sirve.
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Mopidy» seguido de la dirección.
Segundo servidorsectionNoLos mismos campos, para otro servidor Mopidy de su red.
Dirección del servidorstringNo
NombrestringNo
Tercer servidorsectionNoLos mismos campos, para otro servidor Mopidy de su red.
Dirección del servidorstringNo
NombrestringNo
Cuarto servidorsectionNoLos mismos campos, para otro servidor Mopidy de su red.
Dirección del servidorstringNo
NombrestringNo
OpcionessectionNoLa notificación de un servidor reproduce una dirección (un timbre, un aviso) y luego vuelve a lo que sonaba.
Volumen de las notificacionesselectNoVolumen 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 dispositivosselectNoNombres de las funciones al añadir un dispositivo (Volumen, Lista de reproducción…) e idioma de los mensajes.

Cómo instalar Mopidy en Gladys​

  1. En Gladys, abre Integraciones: Mopidy 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-mopidy:1.1.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-mopidy.

Mopidy requiere Gladys >=5.3.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.

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 🙂