Saltar al contenido principal

Integración domótica Music Player Daemon, gratuita y de código abierto

Integración Music Player Daemon para Gladys Assistant

Controle sus reproductores MPD (moOde, Volumio, piCorePlayer…): música, volumen, listas, avisos.

Controle sus reproductores MPD desde Gladys: una Raspberry Pi conectada a un amplificador con moOde, Volumio, piCorePlayer o el propio MPD. Reproducir, pausar, cambiar de canción y de volumen, lanzar una lista de reproducción, reproducir un timbre o una radio web y después volver a la música, y ver en el panel lo que suena. Todo se queda en su red local: sin nube, sin cuenta.

Desarrollada sin el hardware: sus comentarios son bienvenidos. La integración se construyó y probó con un MPD 0.24 real en Docker (sin tarjeta de sonido) y un servidor simulado, no en un reproductor moOde, Volumio o piCorePlayer. Indique lo que funciona y lo que no en las issues.

Esta integración no está afiliada al proyecto MPD, ni a moOde, Volumio o piCorePlayer.

Lo que necesita​

  • Gladys Assistant 5.3.0 o posterior.
  • Para los paneles de búsqueda, navegación y cola de la caja Música: MPD 0.21 o posterior (carátulas incluidas en los archivos: 0.22). moOde, Volumio 3 y las distribuciones recientes traen la 0.23 o la 0.24.
  • Un reproductor con MPD, accesible desde Gladys en la red, en su puerto MPD (6600 por defecto). moOde y piCorePlayer (con su extensión MPD) lo exponen de serie; el propio MPD escucha en la red cuando bind_to_address vale any o la IP de la máquina en mpd.conf.
  • La contraseña de MPD si mpd.conf tiene una línea password. Necesita los permisos read, add y control (password "secret@read,add,control"). La mayoría de los reproductores no tienen.

Puesta en marcha​

  1. En Gladys, abra Integraciones, luego Instalar desde GitHub, e introduzca https://github.com/guim31/gladys-mpd (o instale Music Player Daemon desde el catálogo cuando aparezca).
  2. En Configuración, introduzca la dirección de su reproductor (192.168.1.20, moode.home, o 192.168.1.20:6601 para otro puerto), su contraseña si la tiene y un nombre (Salón). Hasta tres reproductores 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 reproductor, con la versión de MPD, lo que está haciendo, su volumen y sus listas de reproducción.
  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 reproductor​

Cada reproductor 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)Lo que hace
ReproducirReproduce la cola (una canción en pausa sigue donde estaba).
PausaPone en pausa.
Pista anteriorPasa a la canción anterior.
Pista siguientePasa a la canción siguiente.
Volumen0 a 100 %, tal como lo ve MPD. Sin valor cuando MPD no tiene mezclador (volumen fijo).
Estado de reproducción0 en pausa, 1 reproduciendo, 2 detenido. Escribirlo pausa, reproduce o detiene.
TítuloEl título de la canción (la que anuncia una radio web).
ArtistaSu artista.
ÁlbumSu álbum (la emisora de una radio web).
CarátulaLa carátula, mostrada por la caja Música (ver más abajo).
DuraciónEn segundos; 0 para una radio web.
PosiciónEn segundos; escribirla salta a ese punto de la canción.
Reproducción aleatoriaLa reproducción aleatoria de MPD, activada o no.
RepeticiónDesactivada, toda la cola o la canción actual (repeat y single de MPD).
Lista de reproducciónLa lista de las listas guardadas en MPD: 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 sigue a MPD: una lista guardada o borrada en el reproductor 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 MPD la llena por completo:

  • la carátula, el título, el artista y el álbum, una barra de progreso que se puede arrastrar para saltar, reproducir y pausa, anterior, siguiente, aleatorio, repetición y el volumen;
  • la cola (botón de lista): las canciones de la cola de MPD, la actual resaltada; un toque reproduce otra;
  • búsqueda y navegación (botón de lupa): la búsqueda pide a MPD canciones (cualquier etiqueta) y busca en los nombres de los artistas, los álbumes y las listas; la navegación empieza por Carpetas (el directorio musical de MPD), Artistas, Álbumes y Listas de reproducción. Un toque reproduce el elemento en lugar de la cola; el gesto secundario lo añade después de la canción actual o al final de la cola. Una carpeta, un artista o un álbum se reproduce entero (500 canciones como máximo).

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

Un dispositivo añadido antes de la versión 1.1.0 sigue funcionando como antes, sin las nuevas funciones: abra la pestaña Descubrir de la integración y haga clic en Actualizar en el reproductor (Gladys lo propone porque las funciones han cambiado). Las nuevas funciones se añaden; las existentes conservan sus escenas y paneles. Estado de reproducción cambia: vale 2 en lugar de 0 cuando MPD está detenido, y ya no se guarda en el historial (Gladys no guarda historial de las funciones de música).

Las carátulas vienen de MPD: primero la imagen incluida en el archivo, si no el archivo de carátula de su carpeta (cover.jpg, folder.png…). MPD la envía tal como está en el archivo, a menudo un escaneo de varios megabytes, y Gladys muestra una carátula de 300 KB como máximo: la integración reduce una más grande (un JPEG de 400 píxeles como máximo), hasta 10 MB (ver Límites).

MPD no tiene silencio: no hay botón Silencio para un reproductor MPD (poner el volumen a 0 perdería el volumen al que volver).

Widget del panel​

Añada el widget Reproductor MPD a un panel. En sus ajustes, elija un reproductor (vacío: el primero de la configuración). Muestra:

  • el título de la canción y, debajo, el artista y el álbum (o el nombre de la radio web);
  • el volumen como indicador;
  • el estado (reproduciendo, en pausa, detenido), la posición en la cola, el modo 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, el modo aleatorio y la repetición. Solo se envía lo que usted cambia.

El widget sigue al reproductor: se actualiza en menos de diez segundos cuando empieza una canción, cambia el volumen o se guarda una lista. La caja Música de Gladys 5.3 (más arriba) es el reproductor completo; este widget añade el formulario Opciones… y no tiene carátula.

Escenas​

Acciones​

El reproductor se elige entre los dispositivos de la integración.

  • Reproducir una lista de MPD: sustituye la cola por una lista guardada en MPD, según su nombre (mayúsculas y acentos indiferentes), y la reproduce. El número de canciones en cola puede usarse 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 un desplegable con la acción Controlar un dispositivo del núcleo, en la función Lista de reproducción.
  • Reproducir una dirección en MPD: reproduce una dirección — una radio web (http://…, https://…), un sonido en un servidor web o un archivo de la biblioteca musical de MPD (sonidos/timbre.mp3) — 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 MPD no puede reproducir la dirección.
  • Vaciar la cola de MPD: quita todas las canciones de la cola; el reproductor se detiene.
  • Reproducción aleatoria MPD: activar, desactivar o invertir. El resultado (activa o no) puede usarse en las acciones siguientes.
  • Repetición MPD: desactivada, toda la cola o la canción actual.

Notificaciones y «Hablar en un altavoz»​

La función Notificación de un reproductor, la acción Reproducir una dirección en MPD 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. MPD se detiene después; entonces se quita de la cola, y el volumen y las opciones (aleatorio, repetición, single, consume) vuelven;
  3. la canción que sonaba sigue en el segundo en que se interrumpió; una canción en pausa sigue en pausa, un reproductor detenido sigue detenido.

Una segunda notificación durante la primera la sustituye. Si alguien toma el control del reproductor mientras tanto (otra canción, la siguiente), la notificación termina sin tocar la música. Una notificación que sigue sonando a los 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 MPD sonidos/timbre.mp3 en el reproductor 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 MPD con la dirección de su radio favorita, Seguir, volumen 25; a las 7:45, la función Pausa.
  • Nadie en casa: cuando la casa se queda vacía, la función Pausa de cada reproductor.
  • La luz sigue a la música: cuando el Estado de reproducción del reproductor del salón pasa a 1 después de la puesta de sol, encender las lámparas del salón.
  • Tarde: a la puesta de sol, Reproducir una lista de MPD «Apéro» y luego Reproducción aleatoria MPD activada.

Actualización​

La integración mantiene una conexión abierta con cada reproductor y espera sus cambios (la orden idle de MPD): lo que pasa en el reproductor, desde Gladys o desde otra aplicación, llega a Gladys en menos de un segundo. Además, cada reproductor se lee cada 30 segundos (lo que también comprueba que sigue respondiendo). Solo se envían los cambios a Gladys; la posición en la canción solo cuando salta (Gladys hace avanzar la barra de progreso ella misma).

Un reproductor que deja de responder se muestra inaccesible (indicador de transporte del dispositivo, estado de conexión de la integración), y la integración vuelve a intentarlo: tras 2, 5, 15, 30 segundos y luego cada minuto. No hay nada que hacer cuando vuelve.

MPD no tiene cuota: la integración envía unos pocos comandos por cambio y dos cada 30 segundos, con una conexión por reproductor.

Solución de problemas​

  • «MPD ha respondido con demasiados datos a la vez» en el panel de música: una carpeta o una lista más grande de lo que lee la integración (4 MB de texto): abra una carpeta más pequeña, o busque.
  • «no responde»: compruebe la dirección y el puerto (6600, o el de port en mpd.conf), que MPD escucha en la red (bind_to_address) y que ningún cortafuegos bloquea el puerto entre Gladys y el reproductor.
  • «contraseña rechazada» o «se necesita una contraseña»: introduzca la contraseña de la línea password de mpd.conf; necesita los permisos read, add y control.
  • «no hay ningún servidor MPD en esta dirección y puerto»: otra cosa responde en ese puerto (una interfaz web, por ejemplo): MPD escucha en el 6600 por defecto.
  • El volumen se queda vacío: MPD no tiene mezclador (mixer_type "none" en moOde para un DAC de volumen fijo, por ejemplo): cambie el volumen en el amplificador.
  • Una notificación no suena: la dirección debe ser accesible desde el propio reproductor (no desde Gladys), en un formato que MPD sepa decodificar; un archivo de la biblioteca se indica con su ruta en la biblioteca. Probar la conexión y los registros de la integración dicen por qué MPD la rechazó.
  • La lista de reproducción está vacía: MPD no tiene playlist_directory, o todavía no hay ninguna lista guardada.
  • Más detalles: los registros de la integración (Integraciones → Music Player Daemon → Registros) muestran las conexiones, las pérdidas y los regresos, y una línea por comando. Reinicie el contenedor con LOG_LEVEL=debug para ver cada cambio recibido y cada lectura. Las contraseñas nunca se escriben.

Límites​

  • Hasta cuatro reproductores. Un reproductor se reconoce por su posición en la configuración: cambiar su dirección conserva el dispositivo y su historial.
  • No se muestran las carátulas de más de 10 MB o 25 megapíxeles, 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 MPD ignora las mayúsculas; los acentos solo si MPD está compilado con ICU (si no, cafe puede no encontrar Café).
  • Sin silencio (MPD no tiene).
  • Sin agrupación de reproductores (Snapcast) ni elección de salidas.
  • MPD no se descubre 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 Music Player Daemon te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Sus reproductores MPDsectionNoCualquier Music Player Daemon: una Raspberry Pi con moOde, Volumio, piCorePlayer o el propio MPD. Introduzca su dirección IP (puerto 6600 por defecto, si no añada :puerto) y la contraseña de mpd.conf si la hay. Hasta cuatro reproductores.
Dirección del reproductorstringNoDirección IP o nombre del reproductor, con :puerto si MPD no escucha en el 6600.
ContraseñasecretNoLa línea password de mpd.conf. Vacía si MPD no tiene (lo habitual).
NombrestringNoNombre del dispositivo en Gladys. Vacío: «MPD» seguido de la dirección.
Segundo reproductorsectionNoLos mismos campos, para otro reproductor MPD de su red.
Dirección del reproductorstringNo
ContraseñasecretNo
NombrestringNo
Tercer reproductorsectionNoLos mismos campos, para otro reproductor MPD de su red.
Dirección del reproductorstringNo
ContraseñasecretNo
NombrestringNo
Cuarto reproductorsectionNoLos mismos campos, para otro reproductor MPD de su red.
Dirección del reproductorstringNo
ContraseñasecretNo
NombrestringNo
OpcionessectionNoLa notificación de un reproductor 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 Music Player Daemon en Gladys​

  1. En Gladys, abre Integraciones: Music Player Daemon 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-mpd:1.1.0), 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-mpd.

Music Player Daemon 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​

Music Player Daemon 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 🙂