Bonjour à toutes et tous, c’est Pierre-Yves. Aujourd’hui nous allons parler du plugin SONOS. Je vais vous présenter l’usage que j’en fais, mais également ce qu’il est possible d’en faire. Nous avons déjà parlé du plugin Squeezebox à deux reprises (une troisième fois viendra pour voir comment s’en servir sur un design jeedom). Je sais que certains parmis vous sont en attente de cet article. Je ne l’ai pas oublié ;).

Scénario de Gestion LMS (Logitech Media Server) via des boutons Xiaomi – Avancé

Plugin Sonos – Présentation

Je vais vous parler du plugin Sonos, même si je n’en fais pas le plus gros usage possible. Oui, vous devez vous dire, mais le gars nous parle du plugin SQUEEZEBOX et de LMS (Logitech Media Server) et la il bascule sur le plugin SONOS. Il ne doit pas être très net. Pourtant je le suis encore, mais pour combien de temps? @Ludovic, faut un système de sondage pour voir dans combien de temps je serai déclaré fou :D. Plugin_Sonos_1
J’utilise donc le plugin Sonos, plugin officiel Jeedom et gratuit qui plus est ! Aucune raison de se priver non ?
Mais pourquoi faire? je vais vous l’expliquer dans un prochain paragraphe.

Etat des lieux avant la mise en place

J’ai voulu faire du multiroom. Kézako ? C’est le fait d’avoir la même musique jouée sur les différentes enceintes de la maison. C’est quand même plus sympa d’avoir la musique dans les pièces ou l’on se déplace et ne pas devoir pousser le son fortement sur une seule enceinte afin de l’entendre au loin (oui ok j’exagère, je n’ai pas un château 🙂 ). Mais avec LMS, il faut des clients compatibles avec un protocole permettant la synchronisation. et mes enceintes étant en Upnp, je ne pouvais pas m’en servir pour avoir du multiroom en l’état actuel.
A ce stade plusieurs solutions s’offre à moi :

  • Avoir des clients squeezeplayer (application sur un tel android par exemple et sortie jack vers mes enceintes xiaomi Upnp) mais trop de câble, de téléphone à trouver etc.
    • Testé avec succès mais pas retenu
  • Avoir des raspberry et des enceintes en sortie, mais mon câblage n’est pas prévu pour ça à la base.
    • Par contre un beau matin vous aurez des informations sur ce genre de montage.
      • Info en provenance de mon petit doigt :D,surveillez bien les articles de Ludovic
  • Acheter du matériel Sonos qui me permettra de faire de la synchro entre les enceintes de la marque.

Vous vous doutez de la solution retenue vu le sujet de l’article. J’y reviens juste après.

Le matériel mis en oeuvre

Je possédais une playbar de chez Sonos pour faire barre de son sous la télévision. Vu mon besoin c’était un peu surfait, mais j’avais une idée en tête, le multi-room. N’ayant pas prévu cet aspect lors des travaux de rénovation suite à l’achat (Oui j’ai décidé de me pencher sur la domotique genre 2 semaines avant d’avoir la maison. Prévoyant le mec vous vous dites. Je n’ai donc pas pu réfléchir à grand chose. J’aurais peut-être prévu le multi-room correctement sinon avec de l’enceinte au plafond sur raspberry reliés dans une baie domotique. C’est un exemple.

Plugin_Sonos_3 Playbar

Une playbar c’est super, mais pour grouper des enceintes, une seule ne peut pas faire un groupe.
Bénéficiant d’un super deal, j’ai pu me trouver une paire de play:3. Un coup de bol, une noir et une blanche dans le doute. selon leur potentiel positionnement et c’était commandé.

Plugin_Sonos_4 Play:3

Maintenant avec ça on peut travailler et envisager de faire quelque chose via Jeedom.

Plugin Sonos – Quelques informations importantes

Le plugin SONOS dans sa version STABLE manque de certaines fonctionnalités par rapport à la version BETA, ou certaines ne fonctionne pas pleinement. En tout cas chez moi, si certains ont le plugin SONOS parmi-vous, je suis preneur de vos retours.

  • Jouer des playlist favorites en est une, version Beta nécessaire suite à une requête faite à Loïc qui a trouvé la solution et poussé la modification. Merci encore.
  • Grouper les enceintes entre-elles
    • Je n’ai pas réussi à grouper trois enceintes entre elles, seulement deux, j’ai fais plusieurs tests sans succès en version stable.  En version beta ça fonctionne impeccablement bien par contre

La version beta ne peut pas être installé sur une debian 8, du moins, il faut PHP 7 en pré-requis au fonctionnement du plugin SONOS en version Beta. J’ai donc monté une machine virtuelle pour installer le plugin, faire les tests et valider que tout fonctionnait comme je le souhaitais. Je vais faire un paragraphe dédié à la partie installation Jeedom chez moi.

Il faut savoir que si vous avez un plugin en version Beta vous perdez l’accès au support, d’ou le paragraphe suivant

Plugin Sonos – Partie logicielle

Comme évoqué juste avant, j’ai donc un jeedom de prod et un jeedom dédié au plugin Sonos. Afin d’y voir plus clair, voici déjà un schéma de principe.

Plugin_Sonos_2

Comme vous pouvez le voir, j’ai donc une VM (Machine Virtuelle ) de production avec que des plugins en version Stable et une VM avec des plugins en version Beta. La communication entre les deux étant assurée par le plugin Jeelink. Je ne m’atterderai pas sur ce plugin. La documentation est je pense claire sur son fonctionnement. Si besoin d’aide, vous savez ou nous trouver via telegram. CONTACT

Cette solution me permet d’éviter de perdre le support sur ma version production dite Stable.
Ma version production dite Beta (oui ça n’est pas très logique, je suis d’accord 🙂 ) ne contient que le plugin Sonos en beta (peut-être aurais-je un jour d’autre plugin en version Beta dessus) pour contourner cette limitation de PHP 7 obligatoire.

Plugin Sonos – Mon usage

Si vous avez consulté les deux articles concernant LMS, vous avez déjà les informations sur mon usage du plugin Squeezebox et du serveur LMS. Je me sers donc du plugin SONOS pour grouper les enceintes entres-elles en utilisant deux boutons sur une tablette tactile.  Je vous ai également fait pour l’article un petit scénario rapide pour que ça groupe ou dégroupe une enceinte en fonction d’un capteur de mouvement. Le but étant de partager des idées d’utilisation possible.
Et vu que j’ai eu la partie favoris Sonos activée sur le plugin, je vais également vous parler de cette partie là. Je ne m’en sers pas pour l’instant, j’ai beaucoup de scénarios avec LMS, il me faudrait du temps devant moi pour tout basculer. J’ai d’autres choses sur le feux en attendant et toutes mes enceintes ne sont pas des sonos.

Plugin Sonos – Groupement entre les enceintes via bouton

Pour faire le groupage, j’utilise deux boutons, un pour le groupage, l’autre pour le dégroupage. Je les ai crée dans le plugin virtuel, ils sont très simple. Comme le plugin Jeelink, je ne m’attarde pas trop sur l’aspect création d’un virtuel, mais dans les grandes lignes :

  • Installer le plugin Virtuel (Officiel Jeedom)
  • Activer le plugin
  • Ajouter un équipement virtuel
  • Donner un nom et un parent à votre équipement virtuel
  • Activer et rendre visible l’équipement (c’est plus pratique pour le tester 😉 )
  • Dans l’onglet Commandes utiliser le bouton
    Plugin_Sonos_6
  • Saisir un nom dans votre commande de type action
  • Saisir un nom dans le champ Nom Equipement
  • Sauvegarder
  • Une information virtuelle va se créer automatiquement et portera le nom que vous aurez indiqué dans le champ Nom Equipement
  • Refaire la même chose pour la commande de dégroupage des enceintes

Plugin_Sonos_7

Voici  les déclencheurs de mon scénario pour grouper et dégrouper les enceintes. Comme vous pouvez le constater, les Evénements ne sont ni plus ni moins que les deux information créées dans le plugin virtuel.

Plugin_Sonos_8

Maintenant, passons au scénario à proprement parlé :

Plugin_Sonos_9

Oui, je suis bien d’accord avec vous, rien d’insurmontable, mais on va quand même l’expliquer rapidement :

  • SI le déclencheur ( # trigger# ) est égal ( == ) à  l’événement Groupage ( [MAISON][Liste de Lecture – Bureau – Virtuel][Groupage] )  ALORS
    • On définit le volume de la playbar en prenant la valeur du volume actuel de l’enceinte que l’on souhaite utiliser comme base du groupement
    • Idem avec la play3 du coin enfants
    • Petite pause, j’ai eu des loupés, c’est mieux avec la pause (c’est tout frais, peut-être quelques ajustement si j’ai des loupés)
    • Ajout d’un haut parleur nommé Salon *
    • Ajout d’un haut parleur nommé CoinEnfants *
  • SINON ( Ce n’est pas l’événement Groupage, donc c’est le dégroupage)
    • On supprime l’association du haut parleur Salon *
    • On supprime l’association du haut parleur CoinEnfants *
    • Pause de 2 secondes
    • Je remet le volume de la playbar à 50% car elle sert pour la télévision et à 50% pour la musique ça commence à donner, pour la télé, selon le volume sur la source ça peut être faible

* Comme vous pouvez le voir, j’utilise le plugin jeelink pour faire le groupage via le jeedom de production qui contient le plugin Sonos en version BETA.
Le nom des enceintes n’est pas du au hasard, mais voici le nom des enceintes dans le logiciel SONOS

Plugin_Sonos_10

 

Plugin Sonos – Groupement entre les enceintes via détecteur de mouvement

Le but est donc de faire un scénario qui sur détection de mouvement dans une pièce va grouper l’enceinte de la pièce que l’on vient de quitter avec celle(s) de la pièce ou l’on rentre. Dans mon cas, les enceintes sont dans deux pièces différentes. donc c’est très simple à gérer.

Le déclencheur de ce scénario :Plugin_Sonos_12

Ceci est un scénario d’exemple afin de donner une idée, il y a plusieurs solutions possible, tout dépend de votre besoin et votre mode de vie.Plugin_Sonos_11

 

Je n’aborderai que les modifications que j’ai faite entourée en rouge par rapport à mon précédent scénario, les autres commandes sont identiques. Bien entendu, tout est modulable, vous pouvez en faire ce que vous voulez, une enceinte par une enceinte ou autre mode de fonctionnement.

  • Le premier rectangle rouge contient la condition suivante :
    • SI l’enceinte du bureau est en statut Lecture ET que le capteur de mouvement est à 1 (donc qu’un mouvement est détecté ALORS
      • Vous pouvez retrouver les mêmes commandes donc on passe au second rectangle rouge
  • SINON (donc pas en lecture ou capteur de mouvement à zéro)
    • DANS 5 minutes
      • SI l’enceinte est toujours en statut Lecture ET le capteur de mouvement est à 0 ALORS
        • On dégroupe les enceintes

On pourrait dans le SINON, mettre le bloc DANS dans un bloc IF Lecture en cours, ou bien encore, mettre un gros bloc IF Lecture en cours tout seul en haut puis faire un

  • SI Détection de mouvement à 1
    • action
  • SINON Détection de mouvement à 0
    • action

Tout est possible, ça dépend de votre logique et de votre facilité à revenir plus tard sur un scénario. La fonction de duplication de scénario est très très pratique pour ce genre de modification afin de ne pas casser quelque chose qui fonctionne.

Plugin Sonos – Appel aux favoris Sonos

On passe maintenant à la dernière partie qui concerne l’appel des favoris Sonos. Pourquoi est-ce que je vous parle des Favoris ? Si vous avez lu mon premier article sur l’utilisation de LMS, et surtout la partie commentaire, via les favoris LMS, mes playlist sont dynamique lors d’un appel via le plugin Squeezebox, toute modification est répercutée directement lorsque l’on appelle le favori. Les playlist sont figées à l’instant T ou l’on les appelle.
Je n’aime pas faire deux fois le même travail, c’est souvent générateur d’erreur.

J’avais donc le même comportement sur SONOS que sur LMS via les playlist.
Les favoris SONOS permettent de s’affranchir du fait de devoir reproduire les modifications faites sur Spotify dans les playlist SONOS.

Pour ajouter une playlist spotify en Favoris dans SONOS, via le client lourd sur Windows il faut choisir une source pour la musique, dans mon cas Spotify :

Plugin_Sonos_13

On navigue ensuite jusqu’à nos playlist : Your Music (Votre Musique) / Playlist (Liste de lecture).
Ensuite on survole une playlist que l’on souhaite ajouter au Favoris SONOS puis via la flèche on obtient un menu et on choisit Add to Sonos Favorites (Ajouter au favoris Sonos)

Plugin_Sonos_14
Si on va maintenant dans les Favoris Sonos on retrouve bien notre playlist dans la liste des Favoris Sonos

Afin de l’appeler coté Jeedom, il faut faire ceci :

Plugin_Sonos_16

L’affaire est faite.

Conclusion

J’espère que cet article vous aura plus et qu’il peut donner quelques idées. Je sais que ces produits de la marque SONOS on un coût certains. C’est le prix de la facilité pour le multi-room. L’intégration complète dans Jeedom (ok via la BETA du plugin, je vous l’accorde, mais vous avez une solution dans l’article pour rester sur une version stable de votre production).

Si jamais le même matériel peut vous plaire, n’hésitez pas à cliquez ICI pour retrouver ces produits sur Amazon

Si besoin, je suis trouvable dans les commentaires et sur telegram.

A bientôt pour un nouvel article



Partager sur :

Infos de l'auteur

Je m'appelle Pierre-Yves,Je suis dans l'informatique de profession, dans la domotique par hasard pour voir un peu si je pouvais relever le défis de piloter deux trois trucs chez moi. Je crois maintenant que j'ai réussi à me faire attraper par la domotique vu tout ce que j'ai à la maison. Je fais également un peu de VTT, de moto quand le temps le permet.

4 commentaires

  1. Chez moi, la version beta se met en erreur
    Erreur sur sonos3::pull() : Return value of duncan3dc\Sonos\Network::getControllerByIp() must be an instance of duncan3dc\Sonos\Interfaces

  2. Bonjour, es qu’il est possible de faire parlé les enceintes Sonos (TTS) ? Si oui, quels sont les règlages pour que sa fonctionne ?

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.