Aller au contenu principal

Intégration domotique KEF Wireless Speakers, gratuite et open source

Intégration KEF Wireless Speakers pour Gladys Assistant

Enceintes sans fil KEF (LS50 Wireless II, LSX II, LS60) en local : marche, volume, source.

Pilotez vos enceintes sans fil KEF (LS50 Wireless II, LSX II, LSX II LT, LS60) depuis Gladys, en local, sans aucun cloud : allumage, veille, volume, sourdine, source, lecture, pause, suivant, précédent et titre en cours.

Important. Cette intégration n'a jamais été testée avec une vraie enceinte : elle a été écrite à partir de la bibliothèque pykefcontrol, et l'API KEF qu'elle utilise n'est pas documentée par KEF. Elle a été testée avec une fausse enceinte seulement. Vos retours sont les bienvenus. Intégration non officielle, sans lien avec KEF. La barre de son XIO n'est pas confirmée (pykefcontrol ne la cite pas).

Mise en place​

  1. Donnez à chaque enceinte une adresse IP fixe dans votre box (bail DHCP réservé).
  2. Dans Gladys, installez l'intégration KEF Wireless Speakers, puis ouvrez sa configuration.
  3. Saisissez les adresses IP, séparées par des virgules (par exemple 192.168.1.50, 192.168.1.51).
  4. Choisissez le plafond de volume (40 % par défaut) et l'intervalle de lecture (10 s par défaut, de 5 à 300 s).
  5. Les enceintes apparaissent dans l'onglet Découverte : créez-les.

L'intégration lit chaque enceinte par son API HTTP (http://<ip>/api/…, port 80) à l'intervalle choisi. Un changement fait sur l'enceinte, sa télécommande ou l'application KEF Connect apparaît dans Gladys à la lecture suivante.

Ce que vous obtenez​

FonctionType GladysRemarque
Marcheétat binaire (lecture seule)1 allumée, 0 en veille ou sans réponse
Allumerboutonréveille l'enceinte
Veilleboutonmet l'enceinte en veille ; n'attend jamais, jamais bloquée
Volumemusique / volume (0 à 100)plafonné
Sourdinebouton (télévision / sourdine)coupe le son (volume 0), ou le remet au plus au plafond
Lecture, pauseboutons musiquepar la bascule lecture/pause, seulement quand il le faut
Suivant, précédentboutons musiquerefusés en veille
Lecture en coursétat musique (lecture seule)1 en lecture, 0 sinon
Sourceliste déroulanteWi-Fi, Bluetooth, TV, optique, coaxiale, analogique
Titre en courstexte (lecture seule)« Artiste - Titre » ; « — » sans lecture ou en veille

Volontairement, pas d'interrupteur : un « tout éteindre » ou « tout allumer » d'un assistant vocal ou d'une scène ne réveille ni ne coupe vos enceintes.

Plafond de volume​

Le volume demandé depuis Gladys (tableau de bord, scène, assistant vocal) ne dépasse jamais le plafond de la configuration : un volume plus fort est ramené au plafond. Le plafond est relu juste avant l'envoi : une nouvelle valeur enregistrée s'applique tout de suite. Le volume réglé sur l'enceinte elle-même (télécommande, application) n'est pas modifié, sauf quand Gladys le rendrait audible :

  • Allumer, ou une source choisie quand l'enceinte est en veille (cela la réveille) : le volume est relu après le réveil et ramené au plafond s'il le dépasse ; la vérification est refaite toutes les 2,5 s pendant environ 15 s, et un volume monté au-dessus du plafond pendant ces 15 s est baissé aussi.
  • Une baisse ignorée : un volume envoyé et non relu (l'enceinte l'a accepté puis ignoré) est « envoyé, sans confirmation », et les mêmes vérifications suivent pendant environ 15 s.
  • Fin de sourdine : la sourdine de cette intégration est un volume mis à 0 (comme pykefcontrol) ; la retirer remet le volume d'avant, au plus le plafond. Une enceinte mise en sourdine par sa propre télécommande ou son application est laissée telle quelle (commande refusée) : retirez la sourdine depuis celles-ci.

Commandes​

Chaque commande reçoit sa réponse en moins de 4 secondes (Gladys attend 5 secondes).

  • Avant chaque commande, l'adresse MAC de l'enceinte à l'adresse est relue : quand une autre enceinte y répond (adresse changée), rien n'est envoyé et l'adresse est oubliée (saisissez la nouvelle dans la configuration). Une réponse illisible refuse la commande, rien n'est envoyé, l'adresse est gardée.
  • Une commande n'est confirmée que lorsque l'enceinte rend la valeur demandée (marche, volume, source, état de lecture) ; sinon elle est annoncée « envoyée, sans confirmation ». Une commande qui n'a pas pu partir est annoncée « rien n'a été envoyé », et une commande encore en attente à la fin de ses 4 secondes est abandonnée, jamais envoyée en retard.
  • Veille et Pause n'attendent jamais derrière une autre commande. Veille annule les commandes encore en attente qui pourraient réveiller l'enceinte (allumer, source, lecture, suivant, précédent) ; Pause annule lecture, suivant et précédent (« annulée par Veille / Pause, rien n'a été envoyé »). Une Veille non confirmée (par exemple pendant le réveil après un Allumer) est réaffirmée pendant environ 20 s dès que l'enceinte se lit « allumée » ; un Allumer depuis Gladys y met fin.
  • Lecture n'agit qu'en pause, Pause qu'en lecture (l'API KEF n'a qu'une bascule), une seule bascule à la fois par enceinte : deux appuis sur Pause, ou une Pause juste après une Lecture, finissent en pause. Pause attend, dans ses 4 secondes, un état stable (fin de mise en mémoire tampon) ; Lecture dans un autre état est refusée, rien n'est envoyé.
  • L'ordre des demandes décide : un Allumer demandé après une Veille l'emporte (la Veille n'est plus réaffirmée), une Veille demandée après un Allumer l'emporte. Une Sourdine annule les volumes demandés avant elle et encore en attente.

Lectures​

  • Une enceinte est lue à chaque intervalle, jamais plus tôt : ni les boutons, ni une recherche de Découverte, ni une reconnexion à Gladys, ni une configuration enregistrée à nouveau, ni un redémarrage de l'intégration (l'heure de la dernière lecture est gardée dans /data) ne la font relire plus tôt.
  • Une enceinte qui ne répond pas deux fois de suite est affichée éteinte et citée dans le statut de l'intégration ; elle est alors lue à intervalles espacés (doublés jusqu'à 5 minutes).

Boutons de la configuration​

  • Chercher les enceintes : lit les adresses dont la lecture est due, puis publie la liste de Découverte.
  • Vérifier les enceintes : la dernière lecture de chaque enceinte (marche, volume, source, il y a combien de temps) et le plafond en vigueur. Ce bouton ne lit rien.

Données et vie privée​

L'intégration ne demande ni compte ni mot de passe : l'API KEF n'en a pas. Elle garde dans /data/kef.json les enceintes connues (adresse MAC, adresse, nom, modèle, volume remplacé par une sourdine) et l'heure de la dernière lecture de chaque adresse. Rien ne quitte votre réseau local.

Limites connues​

  • L'API KEF n'est pas documentée : ses réponses peuvent différer sur une vraie enceinte ou après une mise à jour du micrologiciel.
  • Pas encore de recherche automatique sur le réseau : saisissez les adresses.
  • Pas d'égaliseur, de préréglages, de listes de lecture, de répétition ni de lecture aléatoire.
  • Jamais testé avec un vrai appareil : aucune vraie enceinte KEF n'a été essayée.

Paramètres de configuration​

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

ParamètreTypeObligatoireDescription
Vos enceintes KEF, sur votre réseau localsectionNonAllumage, veille, volume, sourdine, source, lecture, pause, suivant, précédent et titre en cours de chaque enceinte sans fil KEF (LS50 Wireless II, LSX II, LSX II LT, LS60 ; XIO non confirmée), par son API HTTP locale, sans aucun cloud. Donnez à chaque enceinte une adresse IP fixe dans votre box et saisissez-la ci-dessous : les enceintes apparaissent alors dans l'onglet Découverte. Le volume réglé depuis Gladys ne dépasse jamais le plafond ci-dessous, y compris au réveil d'une enceinte ou à la fin d'une sourdine. L'API KEF n'est pas documentée : jamais testé avec une vraie enceinte. Intégration non officielle, sans lien avec KEF.
Adresses IP des enceintesstringNonSéparées par des virgules, par exemple 192.168.1.50, 192.168.1.51.
Plafond de volume (%)numberNonLe volume le plus fort que Gladys peut régler, de 1 à 100 % (100 : pas de plafond). Un volume plus fort demandé par une scène, un assistant vocal ou le tableau de bord est ramené à ce plafond ; une enceinte réveillée ou sortie de sourdine par Gladys est ramenée sous ce plafond. Le volume réglé sur l'enceinte elle-même (télécommande, application) n'est pas modifié.
Intervalle de lecture (s)numberNonFréquence de lecture de chaque enceinte, de 5 à 300 secondes. Une enceinte n'est jamais relue plus tôt, quels que soient les boutons ou un redémarrage.

Comment installer KEF Wireless Speakers dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : KEF Wireless Speakers 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-kef:0.1.2), 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-kef.

KEF Wireless Speakers 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​

KEF Wireless Speakers 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 🙂