Aller au contenu principal

Intégration domotique Volumio, gratuite et open source

Intégration Volumio pour Gladys Assistant

Lecteurs réseau Volumio : lecture, volume, notifications, playlists, webradios.

Présentation​

Cette intégration amène vos lecteurs réseau Volumio dans Gladys : un Raspberry Pi sous Volumio branché à un ampli ou à un DAC, un Volumio Primo, Rivo ou Motivo. Chaque lecteur devient un appareil musique de Gladys : lecture, pause, piste précédente et suivante, volume, état de la lecture, et « Diffuser une notification » pour la synthèse vocale et les sons de vos scènes. Avec Gladys 5.3, la boîte Musique du tableau de bord devient un vrai lecteur : pochette, titre, barre de progression, lecture aléatoire, répétition, sourdine, file d'attente, recherche et navigation dans toute la bibliothèque Volumio. Un widget du tableau de bord montre ce qui joue, et des actions de scène jouent une playlist Volumio, une webradio favorite ou n'importe quelle adresse de flux.

Tout reste sur votre réseau local : l'intégration parle à l'API REST de Volumio et écoute les mises à jour en temps réel que Volumio envoie à sa propre interface web. Pas de compte, pas de cloud.

Développée sans le matériel : vos retours sont les bienvenus. Cette intégration a été écrite à partir de la documentation et du code source de Volumio, sans lecteur réel sous la main. Dites-nous comment elle marche chez vous dans les issues.

Cette intégration n'est pas affiliée à Volumio.

Prérequis​

  • Gladys Assistant 5.3.0 ou plus récent.
  • Un lecteur Volumio (Volumio 2 ou 3) sur le même réseau local que Gladys, joignable sur son port 3000 (celui par défaut).

Configuration​

  1. Installez l'intégration depuis Intégrations → Installer depuis GitHub.
  2. Ouvrez l'onglet Découverte : les lecteurs trouvés y apparaissent. Ajoutez ceux que vous voulez avec Ajouter à Gladys.
  3. Si aucun lecteur n'apparaît, ouvrez l'onglet Configuration et saisissez l'adresse IP d'un lecteur dans Adresses des lecteurs (affichée dans Volumio, Paramètres, Réseau). Les autres lecteurs sont alors trouvés grâce à lui : les lecteurs Volumio se connaissent entre eux.

Réglages :

RéglageEffet
Adresses des lecteursAdresses IP ou noms d'hôte facultatifs, séparés par des virgules. Le port 3000 est utilisé si aucun n'est indiqué.
Mises à jour en temps réelActivé par défaut : l'intégration écoute les changements que Volumio annonce. Désactivé : elle interroge les lecteurs.
Volume des notifications (%)Volume des notifications diffusées par Gladys. 0 garde le volume actuel.
Durée maximale des notifications (s)Une notification plus longue est arrêtée et la musique reprend (60 s par défaut).
Langue des noms de fonctionnalitésNoms donnés aux fonctionnalités des nouveaux appareils, et langue des messages des actions de scène (français par défaut).

Deux boutons aident : Rechercher les lecteurs relance la recherche et liste chaque lecteur avec son état, et Lister playlists et webradios favorites affiche les noms exacts à saisir dans les actions de scène.

Appareils​

Chaque lecteur Volumio est un appareil, nommé comme dans Volumio, avec ces fonctionnalités :

FonctionnalitéTypeEffet
Volumevolume de la musique, 0 à 100Lit et règle le volume du lecteur.
Lecturebouton lecture musiqueJoue la file d'attente.
Pausebouton pause musiqueMet en pause. Une webradio est arrêtée à la place (un flux ne se met pas en pause).
Piste précédentebouton précédent musiquePiste précédente de la file d'attente.
Piste suivantebouton suivant musiquePiste suivante de la file d'attente.
État de la lectureétat de la lecture musique1 en lecture, 0 en pause, 2 à l'arrêt. Le modifier lance, met en pause ou arrête.
Diffuser une notificationdiffuser une notificationJoue un son ou un message parlé, puis reprend ce qui jouait.
Titretitre musiqueTitre du morceau (ou ce qu'annonce une webradio).
Artisteartiste musiqueArtiste du morceau.
Albumalbum musiqueAlbum du morceau.
Pochettepochette musiqueLa pochette, affichée par la boîte Musique.
Duréedurée musique (s)Longueur du morceau, 0 pour une webradio.
Positionposition musique (s)Où en est le morceau ; la modifier s'y déplace.
Lecture aléatoirealéatoire musiqueLecture aléatoire de la file, activée ou non.
Répétitionrépétition musique0 désactivée, 1 toute la file, 2 le morceau en cours.
Sourdinesourdine musiqueCoupe le son du lecteur en gardant son volume.

Grâce à ces fonctionnalités, le lecteur fonctionne avec la boîte Musique du tableau de bord de Gladys, et avec l'action de scène de Gladys qui prononce un texte sur une enceinte. Une notification mémorise la file d'attente, le morceau, la position, le volume et la répétition, joue le son au volume des notifications, puis remet tout en place.

Les fonctionnalités sont nommées dans la langue choisie dans la configuration, au moment de l'ajout de l'appareil.

Lecteur Musique de Gladys 5.3​

Depuis Gladys 5.3, la boîte Musique du tableau de bord est un vrai lecteur, et Volumio 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 (désactivée, la file, un morceau), sourdine et le volume ;
  • la file d'attente (bouton liste) : les morceaux de la file de Volumio, celui en cours en surbrillance ; un appui en lance un autre ;
  • recherche et navigation (bouton loupe) : la recherche interroge Volumio, qui cherche partout où il le peut (bibliothèque, webradios, plugins de streaming installés) ; la navigation commence par les sources de Volumio (Music Library, Artists, Albums, Genres, Playlists, Web Radio, Favorites, Media Servers, vos plugins, dans la langue de Volumio). 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 album, un artiste ou une playlist se joue en entier ; un dossier s'ouvre, il ne se joue pas.

L'action de scène Lancer une musique sur une enceinte de Gladys choisit une playlist, un album, un artiste, une webradio 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écouverte 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 la lecture change : il vaut 2 au lieu de 0 quand Volumio 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 Volumio (/albumart) : le fichier de pochette du dossier de l'album, ou celle que Volumio a trouvée sur Internet, ou le logo d'une webradio. Volumio envoie une pochette locale telle qu'elle est sur le disque (jusqu'à 5 Mo) et Gladys affiche une pochette de 300 Ko au plus : l'intégration réduit une pochette plus grande (un JPEG de 400 pixels au plus). Un morceau sans pochette montre le logo Volumio, comme dans Volumio.

Deux commandes n'existent pas dans l'API REST de Volumio et passent par son canal temps réel (socket.io), ouvert pour la commande quand Mises à jour en temps réel est désactivé : répéter un morceau, et lire ensuite (les éléments sont ajoutés en fin de file, puis déplacés après le morceau en cours).

Widget du tableau de bord​

Le widget Volumio en cours affiche le titre, l'artiste et l'album, la pochette quand Volumio en sert une que Gladys accepte, le lecteur, son état, la source (bibliothèque musicale, webradio, Spotify, AirPlay…), le volume, l'aléatoire et la répétition. Choisissez le lecteur dans les réglages du widget, ou laissez vide pour le premier lecteur ajouté.

Ses boutons :

  • Lecture / Pause ;
  • Suivant ;
  • Volume : un petit formulaire pour saisir le volume et couper ou rétablir le son ;
  • Playlist : la liste des playlists Volumio, pour en lancer une. Sans playlist, ou quand Volumio ne pilote pas le volume, un bouton Précédent prend la place libre.

Déclencheur de scène​

Un nouveau morceau est joué : un lecteur a commencé un morceau d'un autre titre ou artiste, y compris une nouvelle chanson sur une webradio qui l'annonce. Vous pouvez choisir le lecteur. Variables : titre, artiste, album et source, pour envoyer « En cours de lecture » sur votre téléphone ou l'afficher sur un écran. Les notifications diffusées par Gladys ne le déclenchent jamais.

Actions de scène​

ActionEffet
Jouer une playlist VolumioJoue une playlist enregistrée dans Volumio, par son nom (majuscules et accents indifférents).
Jouer une webradio favoriteJoue une radio des favoris de Volumio (Radios favorites ou Mes webradios), par son nom.
Jouer une adresseJoue un flux ou un fichier son par son adresse http(s), au volume choisi, en reprenant la musique ensuite en option.
Régler aléatoire et répétitionActive ou désactive l'aléatoire et la répétition de la file d'attente, ou les laisse inchangés.
Vider la file d'attenteVide la file d'attente du lecteur (la musique s'arrête).

Une webradio trouvée avec l'intégration Radio Browser de Gladys se joue avec Jouer une adresse.

Exemples de scènes​

  • Réveil : chaque jour de semaine à 7 h, Jouer une playlist Volumio « Réveil » dans la chambre, puis monter le volume par étapes avec la fonctionnalité Volume.
  • Sonnette : quand on sonne, Jouer une adresse avec un son de cloche, à 70 %, en cochant « Puis reprendre ce qui jouait » ; ou faire dire à Gladys « Quelqu'un sonne à la porte » sur le lecteur.
  • Départ de la maison : quand la dernière personne part, commander la fonctionnalité Pause du lecteur, ou Vider la file d'attente.
  • En cours sur la télé : sur Un nouveau morceau est joué, envoyer un message avec le titre et l'artiste.

Temps réel et interrogation​

Volumio n'a ni compte ni quota : tout passe par le réseau local. L'intégration écoute le canal socket.io de Volumio (celui de son interface web) et lit le lecteur une fois toutes les 5 minutes par sécurité. Quand ce canal n'est pas disponible, elle lit le lecteur toutes les 10 secondes pendant la lecture et chaque minute sinon. Un lecteur qui ne répond pas est réessayé après 15 secondes, puis chaque minute. Seuls les lecteurs ajoutés à Gladys sont lus. Seuls les changements sont envoyés à Gladys : la position du morceau part quand il commence, se met en pause ou saute, et la boîte Musique fait avancer la barre de progression elle-même.

Dépannage​

  • Aucun lecteur dans l'onglet Découverte : saisissez l'adresse IP d'un lecteur dans la configuration, puis appuyez sur Rechercher les lecteurs. La découverte automatique (mDNS) de Gladys 5.2 peut ne pas trouver Volumio, qui s'annonce avec des majuscules que le cœur ne reconnaît pas.
  • « Salon : ne répond pas » : le lecteur est éteint, ou son adresse a changé. Vérifiez que http://<adresse>:3000/api/v1/getState s'ouvre dans un navigateur du même réseau.
  • Une action de scène dit que la playlist est introuvable : appuyez sur Lister playlists et webradios favorites et copiez le nom affiché.
  • Le widget ou la boîte Musique n'affiche pas de pochette : la pochette n'est pas une image PNG, JPEG ou WebP (une icône SVG de Volumio), ou elle dépasse 10 Mo.
  • « Ajouté en fin de file » après lire ensuite : le lecteur n'a pas déplacé les éléments après le morceau en cours (canal temps réel perdu entre-temps) ; ils restent en fin de file.
  • La boîte Musique n'a pas les nouvelles commandes sur un ancien appareil : cliquez sur Mettre à jour sur le lecteur dans l'onglet Découverte (voir « Lecteur Musique de Gladys 5.3 »).
  • Réglez LOG_LEVEL=debug sur l'intégration pour voir chaque lecture dans ses journaux.

Limites​

  • Développée sans le matériel : le canal temps réel (socket.io), les notifications et la reprise sont testés contre un lecteur simulé ; le lecteur Musique de Gladys 5.3 (navigation, recherche, file, lire ensuite, répéter un morceau, pochettes) contre un vrai Volumio 2 lancé dans Docker (image x86, sans carte son), ni contre Volumio 3, ni sur un vrai appareil.
  • Lire ensuite en lecture aléatoire : Volumio choisit le morceau suivant au hasard, les éléments ajoutés ne passent pas forcément ensuite.
  • Jouer un élément qui n'existe plus (une scène gardée des mois, un fichier supprimé) vide la file : Volumio la vide avant de s'en apercevoir. Gladys le signale.
  • Un déplacement juste au début d'un morceau peut être ignoré par Volumio 2 (vu sur un banc de test).
  • Gladys 5.2 ne transmet pas aux intégrations externes le volume de son action de scène « diffuser une notification » : c'est le volume des notifications de la configuration qui s'applique.
  • Après une notification, une file d'attente qui était en pause revient sans jouer, depuis son premier morceau.
  • Le son de la notification est joué par Volumio lui-même : il doit pouvoir joindre l'adresse (Gladys Plus pour la synthèse vocale).
  • Une file d'un service de streaming (Spotify Connect, AirPlay) ne peut pas reprendre après une notification.

Paramètres de configuration​

Voici les paramètres demandés par Volumio dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Trouver vos lecteurssectionNonLes lecteurs Volumio sont recherchés automatiquement : ouvrez l'onglet Découverte. Si aucun n'apparaît, saisissez ci-dessous l'adresse IP d'un lecteur (affichée dans Volumio, Paramètres, Réseau) : les autres sont trouvés grâce à lui.
Adresses des lecteursstringNonFacultatif, séparées par des virgules. Le port 3000 est utilisé si aucun n’est indiqué.
Mises à jour en temps réelbooleanNonÉcouter les changements que Volumio annonce, comme son interface web. Désactivé : les lecteurs sont lus toutes les 10 s pendant la lecture, chaque minute sinon.
Volume des notifications (%)numberNonVolume des notifications diffusées par Gladys (synthèse vocale, sons), puis le volume revient. 0 : garder le volume actuel.
Durée maximale des notifications (s)numberNonUne notification plus longue est arrêtée et la musique reprend (un flux ne se termine jamais de lui-même).
Langue des noms de fonctionnalitésselectNonNoms donnés aux fonctionnalités des nouveaux appareils, et langue des messages des actions de scène.

Comment installer Volumio dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Volumio apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/guim31/gladys-volumio: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).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/guim31/gladys-volumio.

Volumio 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​

Volumio 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.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂