Intégration domotique Music Player Daemon, gratuite et open source

Pilotez vos lecteurs MPD (moOde, Volumio, piCorePlayer…) : musique, volume, playlists, annonces.
Pilotez vos lecteurs MPD depuis Gladys : un Raspberry Pi branché à un ampli sous moOde, Volumio, piCorePlayer, ou MPD lui-même. Lecture, pause, morceau suivant, volume, lancement d'une playlist, son de sonnette ou webradio puis retour à la musique, et ce qui joue affiché sur le tableau de bord. Tout reste sur votre réseau local : pas de cloud, pas de compte.
Développée sans le matériel : vos retours sont les bienvenus. L'intégration a été construite et testée contre un vrai MPD 0.24 lancé dans Docker (sans carte son) et un serveur simulé, pas sur un lecteur moOde, Volumio ou piCorePlayer. Dites ce qui marche et ce qui ne marche pas dans les issues.
Cette intégration n'est affiliée ni au projet MPD, ni à moOde, Volumio ou piCorePlayer.
Ce qu'il vous faut
- Gladys Assistant 5.3.0 ou plus récent.
- Pour les panneaux recherche, navigation et file d'attente de la boîte Musique : MPD 0.21 ou plus récent (pochettes intégrées aux fichiers : 0.22). moOde, Volumio 3 et les distributions récentes ont la 0.23 ou la 0.24.
- Un lecteur qui fait tourner MPD, joignable depuis Gladys sur le réseau,
sur son port MPD (6600 par défaut). moOde et piCorePlayer (avec son
extension MPD) l'exposent d'origine ; MPD lui-même écoute le réseau quand
bind_to_addressvautanyou l'IP de la machine dansmpd.conf. - Le mot de passe de MPD si
mpd.confa une lignepassword. Il lui faut les droitsread,addetcontrol(password "secret@read,add,control"). La plupart des lecteurs n'en ont pas.
Mise en route
- Dans Gladys, ouvrez Intégrations, puis Installer depuis GitHub, et
saisissez
https://github.com/guim31/gladys-mpd(ou installez Music Player Daemon depuis le catalogue quand elle y figure). - Dans Configuration, saisissez l'adresse de votre lecteur
(
192.168.1.20,moode.home, ou192.168.1.20:6601pour un autre port), son mot de passe s'il en a un, et un nom (Salon). Jusqu'à trois autres lecteurs en dessous. - Choisissez la Langue des appareils (noms des fonctionnalités, messages) et, si vous le souhaitez, le Volume des notifications. Enregistrez.
- Cliquez sur Tester la connexion : une ligne par lecteur, avec la version de MPD, ce qu'il fait, son volume et ses playlists.
- Ouvrez l'onglet Découverte et ajoutez les appareils.
Utilisez des adresses IP fixes (une réservation DHCP dans votre box) ou des
noms que votre DNS résout : les noms en .local ne se résolvent pas dans le
conteneur de l'intégration.
L'appareil de chaque lecteur
Chaque lecteur est un appareil. Gladys le voit comme un lecteur de musique : la boîte Musique du tableau de bord (lecture, pause, précédent, suivant, volume) et l'action de scène Parler sur une enceinte fonctionnent avec.
| Fonctionnalité (noms en français) | Ce qu'elle fait |
|---|---|
| Lecture | Joue la file d'attente (un morceau en pause reprend où il en était). |
| Pause | Met en pause. |
| Morceau précédent | Passe au morceau précédent. |
| Morceau suivant | Passe au morceau suivant. |
| Volume | 0 à 100 %, tel que MPD le voit. Pas de valeur quand MPD n'a pas de mixer (volume fixe). |
| État de lecture | 0 en pause, 1 en lecture, 2 à l'arrêt. L'écrire met en pause, lance ou arrête. |
| Titre | Le titre du morceau (celui qu'annonce une webradio). |
| Artiste | Son artiste. |
| Album | Son album (la station d'une webradio). |
| Pochette | La pochette, affichée par la boîte Musique (voir plus bas). |
| Durée | En secondes ; 0 pour une webradio. |
| Position | En secondes ; l'écrire déplace la lecture dans le morceau. |
| Lecture aléatoire | La lecture aléatoire de MPD, activée ou non. |
| Répétition | Désactivée, toute la file, ou le morceau en cours (repeat et single de MPD). |
| Playlist | La liste des playlists enregistrées dans MPD : en choisir une remplace la file d'attente par elle et la joue. |
| Notification | Reçoit une adresse à jouer, puis remet ce qui jouait (voir plus bas). |
La liste des playlists suit MPD : une playlist enregistrée ou supprimée sur le lecteur apparaît ou disparaît de la liste.
Lecteur Musique de Gladys 5.3
Depuis Gladys 5.3, la boîte Musique du tableau de bord est un vrai lecteur, et MPD la remplit entièrement :
- la pochette, le titre, l'artiste et l'album, une barre de progression qu'on fait glisser pour se déplacer, lecture et pause, précédent, suivant, lecture aléatoire, répétition et le volume ;
- la file d'attente (bouton liste) : les morceaux de la file de MPD, celui en cours en surbrillance ; un appui en lance un autre ;
- recherche et navigation (bouton loupe) : la recherche interroge MPD pour les morceaux (tous les tags) et cherche dans les noms des artistes, des albums et des playlists ; la navigation commence par Dossiers (le répertoire musical de MPD), Artistes, Albums et Playlists. Un appui joue l'élément à la place de la file ; le geste secondaire l'ajoute après le morceau en cours ou en fin de file. Un dossier, un artiste ou un album se joue en entier (500 morceaux au plus).
L'action de scène Lancer une musique sur une enceinte de Gladys choisit une playlist, un album, un artiste, un dossier ou un morceau dans ce même panneau, et le joue quand la scène s'exécute.
Un appareil ajouté avant la version 1.1.0 continue de marcher comme avant, sans les nouvelles fonctionnalités : ouvrez l'onglet Découvrir de l'intégration et cliquez sur Mettre à jour sur le lecteur (Gladys le propose parce que les fonctionnalités ont changé). Les nouvelles fonctionnalités s'ajoutent ; les anciennes gardent leurs scènes et tableaux de bord. État de lecture change : il vaut 2 au lieu de 0 quand MPD est arrêté, et il n'est plus gardé dans l'historique (Gladys ne garde pas d'historique des fonctionnalités musique).
Les pochettes viennent de MPD : l'image intégrée au fichier d'abord, sinon le
fichier de pochette de son dossier (cover.jpg, folder.png…). MPD l'envoie
telle qu'elle est dans le fichier, souvent un scan de quelques mégaoctets, et
Gladys affiche une pochette de 300 Ko au plus : l'intégration réduit une
pochette plus grosse (un JPEG de 400 pixels au plus), jusqu'à 10 Mo (voir
Limites).
MPD n'a pas de sourdine : pas de bouton Muet pour un lecteur MPD (mettre le volume à 0 perdrait le volume à retrouver).
Tableau de bord
Ajoutez le widget Lecteur MPD à un tableau de bord. Dans ses réglages, choisissez un lecteur (vide : le premier de la configuration). Il affiche :
- le titre du morceau et, en dessous, l'artiste et l'album (ou le nom de la webradio) ;
- le volume en jauge ;
- l'état (lecture, pause, arrêt), la position dans la file d'attente, la lecture aléatoire et la répétition ;
- quatre boutons : Précédent, Lecture ou Pause, Suivant et Options…. Options… ouvre un formulaire rempli avec les valeurs actuelles : le volume, une playlist à jouer, la lecture aléatoire et la répétition. Seul ce que vous changez est envoyé.
Le widget suit le lecteur : il se met à jour en moins de dix secondes quand un morceau commence, que le volume bouge ou qu'une playlist est enregistrée. La boîte Musique de Gladys 5.3 (plus haut) est le lecteur complet ; ce widget y ajoute le formulaire Options… et n'a pas de pochette.
Scènes
Actions
Le lecteur se choisit parmi les appareils de l'intégration.
- Jouer une playlist MPD : remplace la file d'attente par une playlist enregistrée dans MPD, d'après son nom (majuscules et accents indifférents), et la joue. Le nombre de morceaux mis en file peut servir dans les actions suivantes de la scène. Un nom inconnu fait échouer l'action avec la liste des playlists. Vous pouvez aussi choisir une playlist dans une liste avec l'action Contrôler un appareil du cœur, sur la fonctionnalité Playlist.
- Jouer une adresse sur MPD : joue une adresse — une webradio
(
http://…,https://…), un son sur un serveur web, ou un fichier de la bibliothèque musicale de MPD (sons/sonnette.mp3) — au volume indiqué (vide : inchangé). Ensuite : Reprendre la musique d'avant (l'adresse joue une fois, puis ce qui jouait revient, voir plus bas) ou Continuer (remplace la file d'attente). L'action échoue quand MPD ne peut pas lire l'adresse. - Vider la file d'attente MPD : retire tous les morceaux de la file ; le lecteur s'arrête.
- Lecture aléatoire MPD : activer, désactiver ou inverser. Le résultat (active ou non) peut servir dans les actions suivantes.
- Répétition MPD : désactivée, toute la file, ou le morceau en cours.
Notifications et « Parler sur une enceinte »
La fonctionnalité Notification d'un lecteur, l'action Jouer une adresse sur MPD avec Reprendre la musique d'avant, et l'action Parler sur une enceinte de Gladys (la voix vient de Gladys Plus) fonctionnent de la même façon :
- l'adresse est ajoutée à la fin de la file d'attente (votre file n'est jamais remplacée) et jouée aussitôt, au Volume des notifications de la configuration (ou au volume de l'action) ;
- MPD s'arrête après elle ; elle est alors retirée de la file, et le volume et les options (aléatoire, répétition, single, consume) reviennent ;
- le morceau qui jouait reprend à la seconde où il a été interrompu ; un morceau en pause reste en pause, un lecteur arrêté reste arrêté.
Une deuxième notification pendant la première la remplace. Si quelqu'un prend la main sur le lecteur entre-temps (un autre morceau, le suivant), la notification se termine sans toucher à la musique. Une notification qui joue encore au bout de cinq minutes est arrêtée et la musique revient. Une webradio envoyée en notification n'est pas une notification : elle continue de jouer (son adresse reste dans la file).
L'action Parler sur une enceinte a un curseur de volume, mais Gladys ne le transmet pas aux intégrations externes : utilisez le Volume des notifications de la configuration.
Idées de scènes
- Sonnette : quand le bouton de sonnette est appuyé, Jouer une adresse
sur MPD
sons/sonnette.mp3sur le lecteur du salon, volume 70, puis reprendre la musique d'avant. - Radio-réveil : à 7 h en semaine, Jouer une adresse sur MPD avec l'adresse de votre radio préférée, Continuer, volume 25 ; à 7 h 45, la fonctionnalité Pause.
- Personne à la maison : quand la maison devient vide, la fonctionnalité Pause de chaque lecteur.
- La lumière suit la musique : quand l'État de lecture du lecteur du salon passe à 1 après le coucher du soleil, allumer les lampes du salon.
- Soirée : au coucher du soleil, Jouer une playlist MPD « Apéro », puis Lecture aléatoire MPD activée.
Rafraîchissement
L'intégration garde une connexion ouverte vers chaque lecteur et attend ses
changements (la commande idle de MPD) : ce qui se passe sur le lecteur,
depuis Gladys ou depuis une autre application, arrive dans Gladys en moins
d'une seconde. En plus, chaque lecteur est lu toutes les 30 secondes (ce qui
vérifie aussi qu'il répond encore). Seuls les changements sont envoyés à
Gladys ; la position dans le morceau seulement quand elle saute (Gladys fait
avancer la barre de progression elle-même).
Un lecteur qui ne répond plus est affiché injoignable (badge de transport de l'appareil, état de connexion de l'intégration), et l'intégration réessaie : après 2, 5, 15, 30 secondes, puis chaque minute. Rien à faire quand il revient.
MPD n'a pas de quota : l'intégration envoie quelques commandes par changement et deux toutes les 30 secondes, sur une connexion par lecteur.
Dépannage
- « MPD a répondu avec trop de données d'un coup » dans le panneau musique : un dossier ou une liste plus gros que ce que l'intégration lit (4 Mo de texte) : ouvrez un dossier plus petit, ou cherchez.
- « ne répond pas » : vérifiez l'adresse et le port (6600, ou celui de
portdansmpd.conf), que MPD écoute le réseau (bind_to_address) et qu'aucun pare-feu ne bloque le port entre Gladys et le lecteur. - « mot de passe refusé » ou « un mot de passe est nécessaire » :
saisissez le mot de passe de la ligne
passworddempd.conf; il lui faut les droitsread,addetcontrol. - « aucun serveur MPD à cette adresse et ce port » : autre chose répond sur ce port (une interface web, par exemple) : MPD écoute le 6600 par défaut.
- Le volume reste vide : MPD n'a pas de mixer (
mixer_type "none"dans moOde pour un DAC à volume fixe, par exemple) : changez le volume sur l'ampli. - Une notification ne joue pas : l'adresse doit être joignable depuis le lecteur lui-même (pas depuis Gladys), dans un format que MPD sait décoder ; un fichier de la bibliothèque se donne par son chemin dans la bibliothèque. Tester la connexion et les logs de l'intégration disent pourquoi MPD l'a refusée.
- La liste Playlist est vide : MPD n'a pas de
playlist_directory, ou aucune playlist n'est encore enregistrée. - Plus de détails : les logs de l'intégration (Intégrations → Music Player
Daemon → Journaux) montrent les connexions, les pertes et les retours, et une
ligne par commande. Relancez le conteneur avec
LOG_LEVEL=debugpour voir chaque changement reçu et chaque lecture. Les mots de passe ne sont jamais écrits.
Limites
- Jusqu'à quatre lecteurs. Un lecteur est connu par son emplacement dans la configuration : changer son adresse garde l'appareil et son historique.
- Les pochettes de plus de 10 Mo ou 25 mégapixels ne s'affichent pas, ni celles dans un autre format que JPEG, PNG et WebP (GIF…), ni les WebP de plus de 300 Ko : l'intégration ne réduit que le JPEG et le PNG.
- La recherche de MPD ignore les majuscules ; les accents seulement si MPD est
compilé avec ICU (sinon
cafepeut ne pas trouverCafé). - Pas de sourdine (MPD n'en a pas).
- Pas de regroupement de lecteurs (Snapcast) ni de choix des sorties.
- MPD ne se découvre pas tout seul sur le réseau : saisissez les adresses.
- Le volume de l'action Parler sur une enceinte n'est pas transmis par Gladys (le Volume des notifications s'applique).
- Gladys 5.3.0 ou plus récent (le lecteur Musique et ses panneaux).
Paramètres de configuration
Voici les paramètres demandés par Music Player Daemon dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Vos lecteurs MPD | section | Non | Tout Music Player Daemon : un Raspberry Pi sous moOde, Volumio, piCorePlayer, ou MPD lui-même. Saisissez son adresse IP (port 6600 par défaut, sinon ajoutez :port) et le mot de passe de mpd.conf s'il y en a un. Jusqu'à quatre lecteurs. |
| Adresse du lecteur | string | Non | Adresse IP ou nom du lecteur, avec :port si MPD n'écoute pas sur le 6600. |
| Mot de passe | secret | Non | La ligne password de mpd.conf. Vide si MPD n'en a pas (le cas courant). |
| Nom | string | Non | Nom de l'appareil dans Gladys. Vide : « MPD » suivi de l'adresse. |
| Deuxième lecteur | section | Non | Mêmes champs, pour un autre lecteur MPD de votre réseau. |
| Adresse du lecteur | string | Non | |
| Mot de passe | secret | Non | |
| Nom | string | Non | |
| Troisième lecteur | section | Non | Mêmes champs, pour un autre lecteur MPD de votre réseau. |
| Adresse du lecteur | string | Non | |
| Mot de passe | secret | Non | |
| Nom | string | Non | |
| Quatrième lecteur | section | Non | Mêmes champs, pour un autre lecteur MPD de votre réseau. |
| Adresse du lecteur | string | Non | |
| Mot de passe | secret | Non | |
| Nom | string | Non | |
| Options | section | Non | La notification d'un lecteur joue une adresse (un son de sonnette, une annonce), puis remet ce qui jouait. |
| Volume des notifications | select | Non | Volume pendant une notification, l'ancien revient après. Gladys ne transmet pas le volume de son action « Parler sur une enceinte ». |
| Langue des appareils | select | Non | Noms donnés aux fonctionnalités quand un appareil est ajouté (Volume, Playlist…), et langue des messages. |
Comment installer Music Player Daemon dans Gladys
- Dans Gladys, ouvrez Intégrations : Music Player Daemon apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/guim31/gladys-mpd:1.1.0), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-mpd.
Music Player Daemon nécessite Gladys >=5.3.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
Music Player Daemon est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par guim31, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation