Ajout intégration sonos - notamment enceintes

Prise en charge de appareil sonos

Salut à tous :slight_smile:

Cette fonctionnalité est assez demandée (dans le top 5 demande), mais force est de constater que personne ne se lance dessus :grimacing:

Mon avis personnel est qu’on a peut-être été trop gourmand et ambitieux sur les différentes fonctionnalités demandées dans ce sujet.

Quand je lis les différentes demandes, en gros il faut recoder l’application Sonos entièrement dans Gladys (player musique complet, gestion des playlists, gestions des sources) et en plus ajouter des fonctionnalités annexes (Musique dans les scènes, TTS, etc…)

Sauf que Sonos, c’est 1.7 milliards de chiffre d’affaires en 2022 :sweat_smile:

… Et que nous on s’attend à ce qu’un inconnu passe sur ce sujet et recode ça en mieux :joy:

Revenons sur terre

Je propose qu’on reparte de zéro sur ce sujet (quitte à supprimer tous les anciens messages), et qu’on décrive ce que serait une intégration Sonos minimale.

En gros, faire une petite liste des différentes fonctionnalités de base qui seraient utile dans Gladys, et qui prendraient seulement quelques jours/semaines à développer.

On oublie tout ce qui est player musique, etc…

Ceux qui utilisent déjà Sonos avec Gladys via Node-RED, que faites-vous avec ? :slight_smile:

Hâte d’avoir vos retours !

Mon utilisation :
Du tts et radio
Mes sonos embarquent des assistant vocaux pour mettre de la musique.

Mon futur usage (comme sur gladys v3)
affichier et faire play pause next previous avec un widget pour les piloter sur les tablettes au mur quand il y a beaucoup de monde (et quelle ne tentendent pas dire « ok google »)

1 « J'aime »

Ok ! Pour le TTS, tu utilises quel API actuellement ?

ça pour le coup c’est largement faisable :slight_smile:

D’autres retours ?

Oui TTS,
On avait fait ce tutoriel avec @spenceur diffusion de son à un moment donné via les scènes.

  • Pouvoir télécharger un son (sirène, aboiement, …)
  • Madame n’utilise pas du tout l’application sonos donc le fait d’avoir la possibilité de mettre la musique sur la tablette au mur serais une bonne chose pour elle.

Oui j’avais vu, mais je n’ai pas trouvé quelle API vous utilisez ce n’est pas mentionné dans le tutoriel. Quand je lis la documentation de ultimate-tts, ils parlent de plein d’API différent (AWS Polly, Google, etc…)

ça par contre je pense pas que ce soit possible, désolé mais re-coder l’application Sonos c’est juste irréaliste comme je disais dans mon message :slight_smile:

Salut à tous !!

Suite au live stream d’aujourd’hui (live coding de l’intégration Sonos), en replay ici :

Une image Docker est disponible pour tester cette intégration.

Je suis preneur de tout retour avant de publier cette intégration :slight_smile:

Je n’ai notamment pas pu tester le multi-enceinte car je n’ai qu’une seule enceinte Sonos !

L’image Docker :

gladysassistant/gladys:sonos-integration

Comment lancer une image de test ? → Tutoriel: Lancer une image Docker de test

3 « J'aime »

Malheureusement je n’ai pas d’enceinte Sonos pour tester.
Avis à un généreux donateur :innocent: , à des fins de débogage UNIQUEMENT !!!

Super le live, je l’ai suivi en petits morceaux mais c’est super interessant et ça dynamise la communauté :slight_smile:

Moi j’ai acheté la mienne sur Leboncoin, la Sonos One Gen 2 pour 150€, en quasi neuf (229€ vendu neuf)

Sinon ils ont une offre black Friday comme vu sur leur site pendant le live :joy:

Et oui, j’espère que ça inspirera du monde !!

2 « J'aime »

J’ai trop hâte de tester, je verrais si j’ai le temps dimanche de faire quelque chose. J’ai un pi3 en stock.
Je testerai le multi-enceinte si possible.

Comme je connaissais pas quel modèle pouvait convenir et les différences entre les principales enceintes j’ai cherché et trouvé ce tableau récapitulatif

et un lien pdf avec les differents modèles de Sonos

si ca peut aider d’autres dans le choix … :wink:

2 « J'aime »
  • Dans l’onglet découverte il y a le sélecteur de pièce mais on ne peut rien sélectionner, est ce qu’il est vraiment utile ?
  • Gladys récupère le « nom de la pièce » de l’application sonos et met dans le « nom de l’appareil ». Dans l’application il y a bien le produit de mentionné, est ce que l’on peut récupérer ces informations ?
  • lorsque l’on change de page, et que l’on revient sur la dashboard où se trouve la box musique le sélecteur de volume revient toujours à 50% (pas tout le temps, je n’ai pas réussi à reproduire systématiquement le bug).
  • lorsque l’on met pause, le bouton play ne s’affiche pas pour relancer la musique.
  • En ce qui concerne la détection des appareils, ça détecte votre configuration dans l’application. J’ai un regroupement de 2 play 1, une playbar et un sub dans l’application et dans Gladys idem. Elle a même découvert mon sonos port de ma platine vinyle.
    Tout fonctionne pour moi.

Voici l’ordre:
Système:

  • Produits (salle à manger et salon)
    • salle à manger
      • produit (port)
    • salon
      • produit (play 1, play 1, playbar, sub)

Je verrais bien en plus juste le titre et l’interprète dans la box musique.

Ok merci pour les retours @Tlse-vins ! :slight_smile:

Effectivement, il faut le virer !

Comme vu dans le live, je ne crois pas qu’on ait ces informations dans le JSON malheureusement !

Ces états proviennent du retour d’état de Sonos. Peut-être que ce retour d’état n’est pas fiable, auquel cas je peux forcer l’état dans Gladys quand tu le contrôle ce qui évitera ces bugs.

Excellent :sunglasses:

Pour une prochaine release peut-être ! :slight_smile:

L’idée de ce POC c’était de motiver un peu du monde autour de cette intégration, maintenant j’aimerais bien passer le flambeau de cette intégration à quelqu’un, car si je me dédie à l’intégration Sonos, qui s’occupe de Gladys ?! :joy:

1 « J'aime »

Je viens de builder une image Docker avec les retours de @Tlse-vins !

gladysassistant/gladys:sonos-integration

Je stop et je redémarre la container, ca suffit ?

Non ! Suis ce tutoriel → Tutoriel: Lancer une image Docker de test

Le bouton play / pause fonctionne maintenant.

  • Il y a un délais d’affichage du bouton pause après avoir cliqué sur play qui est assez long j’ai eu jusqu’ 10 secondes.
  • Dans l’onglet découverte il y a le sélecteur de pièce mais on ne peut rien sélectionner. Toujours en place.

Je peux commencer la documentation pour l’intégration, je peux utiliser https://www.notion.so/ aussi ?

Tu fais toujours tourner l’ancienne version du coup, ces 2 points sont corrigés sur la nouvelle ! (c’était d’ailleurs les 2 seules corrections)

Oui tu peux ! Tu seras capable ensuite de faire une PR à partir du Notion ou il faudra t’aider ?

Tu m’envoie en DM ton email Notion ?

J’ai fait:

docker stop gladys
docker pull gladysassistant/gladys:sonos-integration
docker start Gladys

C’est pas bon ?

Sur la première version, le bouton stop ne s’affichait pas du tout, là c’est bon, mais je
trouve la réactivité assez longue.
Pour la PR on verra.

docker stop gladys
docker rm gladys
docker pull gladysassistant/gladys:sonos-integration
docker run -d --log-driver json-file --log-opt max-size=10m --cgroupns=host --restart=always --privileged --network=host --name gladys -e NODE_ENV=production -e SERVER_PORT=80 -e TZ=Europe/Paris -e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/gladysassistant:/var/lib/gladysassistant -v /dev:/dev -v /run/udev:/run/udev:ro gladysassistant/gladys:sonos-integration

:warning: Attention à adapter la dernière commande si tu veux une base de test, un port différent, un nom de container différent