Aller au contenu principal

Intégration domotique Devialet, gratuite et open source

Intégration Devialet pour Gladys Assistant

Enceintes Devialet Phantom en local : volume, sourdine, source, lecture, titre.

Pilotez vos enceintes Devialet Phantom depuis Gladys, sur votre réseau local, sans aucun cloud : volume, sourdine, source, lecture, pause, suivant, précédent, le titre en cours, et la mise en veille. L'intégration utilise l'API de contrôle IP que les enceintes proposent sur votre réseau (HTTP simple), celle qu'utilise l'intégration Devialet de Home Assistant.

Intégration non officielle, sans lien avec Devialet. Ce premier jalon a été écrit et vérifié contre une enceinte simulée seulement : l'intégration n'a jamais été testée avec une vraie enceinte. Vos retours sont les bienvenus.

Préparer les enceintes​

  1. Installez les enceintes avec l'application Devialet comme d'habitude (Wi-Fi ou Ethernet).
  2. Donnez à chaque enceinte une adresse IP fixe dans votre box (bail DHCP réservé). L'adresse est visible dans l'application Devialet, ou dans la liste des appareils de votre box.
  3. Gladys doit joindre les enceintes sur le réseau (même réseau, port 80).

Ajouter une enceinte​

  • Par son adresse (conseillé) : saisissez l'adresse IP dans « Adresses IP des enceintes » (plusieurs adresses séparées par des virgules) et enregistrez. Pour une paire stéréo, une seule adresse suffit : les deux enceintes forment un seul système ; si les deux sont saisies, un seul appareil est affiché.
  • Par la recherche (facultatif) : utilisez Chercher les enceintes. Gladys parcourt le réseau (mDNS, service _devialet-http._tcp) pour l'intégration. Une enceinte en veille, ou un réseau qui bloque le multicast, peut ne pas répondre : saisissez alors l'adresse. La recherche n'est jamais nécessaire au reste.

L'enceinte apparaît dans l'onglet Découverte de l'intégration : créez-la.

Ce que vous obtenez​

Un appareil Gladys par système Devialet (une Phantom, ou une paire stéréo) :

FonctionDétail
MarcheLecture seule : 1 l'enceinte répond, 0 en veille, éteinte ou injoignable
VeilleBouton : met le système en veille
Volume0 à 100, lu et réglé (nombres entiers seulement)
SourdineBouton : chaque appui lit la sourdine sur l'enceinte et règle l'inverse
Lecture, PauseBoutons
Suivant, Préc.Boutons
État de lectureLecture seule : 1 en lecture, 0 en pause
SourceListe, lue et réglée : les sources que cette enceinte a montrées (AirPlay…)
En coursTexte : « Artiste - Titre », ou « — » quand rien ne joue

Le volume et la veille agissent sur le système. La lecture, la sourdine et la source agissent sur le groupe : quand plusieurs systèmes jouent ensemble (groupés dans l'application Devialet), une commande passée par l'un d'eux s'applique à tout le groupe.

La liste « Source » reprend les sources que l'enceinte annonce (Spotify Connect, AirPlay, Bluetooth, UPnP, Roon Ready, optique…). Sur une paire stéréo, l'entrée optique de chaque enceinte est indiquée avec son côté (« Optical left », « Optical right »). Une source vue une fois reste dans la liste ; choisir une source indisponible à ce moment est refusé et rien n'est envoyé.

Veille, et allumage​

L'API de contrôle IP ne sait pas réveiller une enceinte : il n'existe pas de commande « allumer ». C'est pourquoi la marche est un état en lecture seule et la veille un bouton, pas un interrupteur : un « tout allumer » n'aurait rien à envoyer. Une enceinte se réveille d'elle-même quand on lui envoie de la musique (AirPlay, Spotify Connect…), ou depuis l'application Devialet ou sa surface tactile.

Une enceinte en veille ne répond pas au réseau : elle est affichée à 0 (veille, éteinte ou injoignable), le statut de l'intégration la nomme, et elle est redemandée de moins en moins souvent : après l'intervalle de rafraîchissement, puis deux fois plus longtemps à chaque fois, 5 minutes au plus. Dès qu'elle répond, elle est relue à l'intervalle normal. Une enceinte qui accepte la connexion puis ne dit rien est dans un état inconnu : rien n'est publié, Gladys garde le dernier état connu.

Appuyer sur Veille pour une enceinte qui ne répond pas ne fait rien et n'est pas une erreur (elle est déjà en veille, ou hors du réseau).

Une enceinte qui a changé d'adresse​

Chaque enceinte est reconnue par son numéro de série, pas par son adresse. Quand une autre enceinte répond à l'adresse d'une enceinte créée (la box l'a donnée à un autre appareil), l'intégration n'y envoie jamais rien : l'enceinte est affichée à 0, le statut indique « adresse inconnue », et une recherche se lance d'elle-même toutes les 10 minutes jusqu'à la retrouver. Vous pouvez aussi utiliser Chercher les enceintes, ou saisir sa nouvelle adresse. Une adresse fixe dans la box l'évite.

Commandes​

Chaque commande reçoit sa réponse dans les 5 secondes qu'attend Gladys. Les commandes vers une même enceinte partent une à une ; une commande qui ne peut pas partir à temps est abandonnée, jamais envoyée en retard. Un volume qui n'est pas un nombre entier de 0 à 100 (vide, 12,5, texte…) est refusé avant tout envoi. Quand une commande a pu atteindre l'enceinte sans être confirmée à temps, Gladys affiche « Sent, without confirmation » (envoyée, sans confirmation ; ces messages sont en anglais) et l'état est relu deux secondes plus tard ; « nothing sent » (rien n'a été envoyé) n'est dit que si aucune requête de commande n'est partie.

Réglages​

  • Intervalle de rafraîchissement : fréquence de lecture du volume, de la sourdine, de la source et du titre, de 5 à 300 secondes (10 par défaut).
  • Vérifier les enceintes : interroge tout de suite chaque enceinte connue et indique celles qui répondent, avec leur volume.

Vie privée et sécurité​

L'intégration ne parle qu'aux enceintes, sur votre réseau local, en HTTP simple (les enceintes ne proposent rien d'autre). Elle garde la liste des enceintes connues (numéro de série, adresse, nom, sources) dans son dossier de données (/data). Il n'y a ni compte ni mot de passe. Les réponses des enceintes sont lues avec une taille maximale (64 Ko), et seuls les champs attendus sont gardés.

Limites​

  • Réseau local seulement ; l'API est celle du logiciel des enceintes, qui peut changer.
  • Pas d'« allumer » (voir plus haut), ni égaliseur ni mode nuit, ni lecture de notifications dans cette première version.
  • Jamais testée avec une vraie enceinte à ce jour.

Crédits​

Logique portée en JavaScript depuis devialet de fwestenberg (licence MIT), la bibliothèque de l'intégration Devialet de Home Assistant. Devialet et Phantom sont des marques de Devialet, citées seulement pour nommer les produits compatibles.

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Vos enceintes Devialet, sur votre réseau localsectionNonVolume, sourdine, source, lecture, pause, suivant, précédent, titre et mise en veille de chaque système Devialet (une Phantom, ou une paire stéréo), par l'API de contrôle IP des enceintes (HTTP simple sur votre réseau), sans aucun cloud. Donnez à chaque enceinte une adresse IP fixe dans votre box et saisissez-la ci-dessous ; « Chercher les enceintes » peut aussi les trouver (facultatif). Les enceintes apparaissent alors dans l'onglet Découverte. Une enceinte en veille ne répond pas : elle est affichée éteinte, et redemandée à intervalles espacés. L'API ne sait pas réveiller une enceinte. Jamais testée avec une vraie enceinte. Intégration non officielle, sans lien avec Devialet.
Adresses IP des enceintesstringNonSéparées par des virgules, par exemple 192.168.1.30, 192.168.1.31. Pour une paire stéréo, une seule adresse suffit. Les enceintes trouvées par la recherche sont gardées sans être saisies ici.
Intervalle de rafraîchissement (s)numberNonFréquence de lecture du volume, de la sourdine, de la source et du titre, en secondes. Une enceinte qui ne répond pas est redemandée de moins en moins souvent (5 minutes au plus).

Comment installer Devialet dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Devialet 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/lm1lc3n7/gladys-devialet:0.1.1), 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/LM1LC3N7/gladys-devialet.

Devialet nécessite Gladys >=5.1.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​

Devialet 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 LM1LC3N7, 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 🙂