No Sonos discovered, do you have Sonos speaker on the same network?

Bonjour,

Depuis la mise à jour du plugin (version du 26/04/25) mes radios ne fonctionnent plus ni aucun favoris.

Traceback (most recent call last):
File "/var/www/html/plugins/sonos3/resources/sonosd.py", line 6, in <module>
from soco import SoCo, discover, events_asyncio
ModuleNotFoundError: No module named 'soco'
[2025-04-30 07:58:09] INFO  : Starting daemon (lib version 1.2.9) with log level: info
[2025-04-30 07:58:09] INFO  : Listening on 127.0.0.1:42042
[2025-04-30 07:58:22]WARNING : No Sonos discovered, do you have Sonos speaker on the same network?
[2025-04-30 07:58:22]WARNING : No speakers available to get favorites, playlists & radios
[2025-04-30 07:58:22] INFO  : Start auto update
[2025-04-30 07:58:22] INFO  : Send async started with a cycle of 0.5s
[2025-04-30 07:59:34]WARNING : No Sonos discovered, do you have Sonos speaker on the same network?
[2025-04-30 07:59:34]WARNING : No speakers available to get favorites, playlists & radios

Et la page santé :

Effectivement, j’ai les enceintes sur un réseau différent, mais les routes sont faites pour assurer la communication. Tout fonctionnait bien avant la dernière mise à jour. J’ai l’impression que c’est le port d’écoute qui a peut-être changé (127.0.0.1).

De nouveau, ca n’a aucun rapport avec les favoris
Je ne comprends pas ce qui n’était pas clair dans ma réponse précédente

127.0.0.1 est l’ip locale (de jeedom); ce n’est pas un port

Veuillez fournir tous les logs et en particulier celui des dépendances pour commencer afin de vérifier qu’elles ont été installées


Encore faut-il les emprunter

+ echo '*******************Begin of package installation******************'
*******************Begin of package installation******************
+ touch /tmp/jeedom_install_in_progress_sonos3
+ echo 1
+ echo 2
++ awk '$1 <= 4'
++ find /usr/local/lib/python3.9/dist-packages/ -mindepth 1 -maxdepth 1 -type d -exec du -ks '{}' +
++ cut -f 2-
+ RESULTTODELETE=
++ echo ''
++ sed 's, ,\ ,g'
+ RESULTTODELETE2=
+ echo ''
+ xargs rm -rf
+ echo 3
+ sudo pip3 cache purge
Files removed: 320
+ echo 4
+ sudo pip3 install --upgrade pip
Requirement already satisfied: pip in /usr/local/lib/python3.9/dist-packages (23.3.1)
Collecting pip
Downloading pip-25.0.1-py3-none-any.whl.metadata (3.7 kB)
Downloading pip-25.0.1-py3-none-any.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 4.2 MB/s eta 0:00:00
DEPRECATION: gpg 1.14.0-unknown has a non-standard version number. pip 24.0 will enforce this behaviour change. A possible replacement is to upgrade to a newer version of gpg or contact the author to suggest that they release a version with a conforming version number. Discussion can be found at https://github.com/pypa/pip/issues/12063
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 23.3.1
Uninstalling pip-23.3.1:
Successfully uninstalled pip-23.3.1
Successfully installed pip-25.0.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
+ echo 5
+ sudo python3 -m pip install --force-reinstall --upgrade defusedxml
Collecting defusedxml
Downloading defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB)
Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
WARNING: Error parsing dependencies of gpg: Invalid version: '1.14.0-unknown'
Installing collected packages: defusedxml
Successfully installed defusedxml-0.7.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
+ echo 6
+ sudo python3 -m pip install --force-reinstall --upgrade soco
Collecting soco
Downloading soco-0.30.9-py2.py3-none-any.whl.metadata (10 kB)
Collecting requests (from soco)
Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting xmltodict (from soco)
Downloading xmltodict-0.14.2-py2.py3-none-any.whl.metadata (8.0 kB)
Collecting ifaddr (from soco)
Downloading ifaddr-0.2.0-py3-none-any.whl.metadata (4.9 kB)
Collecting appdirs (from soco)
Downloading appdirs-1.4.4-py2.py3-none-any.whl.metadata (9.0 kB)
Collecting lxml (from soco)
Downloading lxml-5.4.0-cp39-cp39-manylinux_2_28_aarch64.whl.metadata (3.5 kB)
Collecting charset-normalizer<4,>=2 (from requests->soco)
Downloading charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (35 kB)
Collecting idna<4,>=2.5 (from requests->soco)
Downloading idna-3.10-py3-none-any.whl.metadata (10 kB)
Collecting urllib3<3,>=1.21.1 (from requests->soco)
Downloading urllib3-2.4.0-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests->soco)
Downloading certifi-2025.4.26-py3-none-any.whl.metadata (2.5 kB)
Downloading soco-0.30.9-py2.py3-none-any.whl (162 kB)
Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Downloading ifaddr-0.2.0-py3-none-any.whl (12 kB)
Downloading lxml-5.4.0-cp39-cp39-manylinux_2_28_aarch64.whl (4.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 4.4 MB/s eta 0:00:00
Downloading requests-2.32.3-py3-none-any.whl (64 kB)
Downloading xmltodict-0.14.2-py2.py3-none-any.whl (10.0 kB)
Downloading certifi-2025.4.26-py3-none-any.whl (159 kB)
Downloading charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (141 kB)
Downloading idna-3.10-py3-none-any.whl (70 kB)
Downloading urllib3-2.4.0-py3-none-any.whl (128 kB)
WARNING: Error parsing dependencies of gpg: Invalid version: '1.14.0-unknown'
Installing collected packages: ifaddr, appdirs, xmltodict, urllib3, lxml, idna, charset-normalizer, certifi, requests, soco
Attempting uninstall: urllib3
Found existing installation: urllib3 2.0.7
Uninstalling urllib3-2.0.7:
Successfully uninstalled urllib3-2.0.7
Attempting uninstall: idna
Found existing installation: idna 3.4
Uninstalling idna-3.4:
Successfully uninstalled idna-3.4
Attempting uninstall: charset-normalizer
Found existing installation: charset-normalizer 2.0.12
Uninstalling charset-normalizer-2.0.12:
Successfully uninstalled charset-normalizer-2.0.12
Attempting uninstall: certifi
Found existing installation: certifi 2023.7.22
Uninstalling certifi-2023.7.22:
Successfully uninstalled certifi-2023.7.22
Attempting uninstall: requests
Found existing installation: requests 2.31.0
Uninstalling requests-2.31.0:
Successfully uninstalled requests-2.31.0
Successfully installed appdirs-1.4.4 certifi-2024.2.2 charset-normalizer-3.3.2 idna-3.10 ifaddr-0.2.0 lxml-5.4.0 requests-2.31.0 soco-0.30.9 urllib3-2.2.1 xmltodict-0.14.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
+ echo 7
+ sudo python3 -m pip install --force-reinstall --upgrade jeedomdaemon
Collecting jeedomdaemon
Downloading jeedomdaemon-1.2.9-py3-none-any.whl.metadata (5.2 kB)
Collecting aiohttp (from jeedomdaemon)
Downloading aiohttp-3.11.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (7.7 kB)
Collecting aiohappyeyeballs>=2.3.0 (from aiohttp->jeedomdaemon)
Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl.metadata (5.9 kB)
Collecting aiosignal>=1.1.2 (from aiohttp->jeedomdaemon)
Downloading aiosignal-1.3.2-py2.py3-none-any.whl.metadata (3.8 kB)
Collecting async-timeout<6.0,>=4.0 (from aiohttp->jeedomdaemon)
Downloading async_timeout-5.0.1-py3-none-any.whl.metadata (5.1 kB)
Collecting attrs>=17.3.0 (from aiohttp->jeedomdaemon)
Downloading attrs-25.3.0-py3-none-any.whl.metadata (10 kB)
Collecting frozenlist>=1.1.1 (from aiohttp->jeedomdaemon)
Downloading frozenlist-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (16 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp->jeedomdaemon)
Downloading multidict-6.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (5.3 kB)
Collecting propcache>=0.2.0 (from aiohttp->jeedomdaemon)
Downloading propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (10 kB)
Collecting yarl<2.0,>=1.17.0 (from aiohttp->jeedomdaemon)
Downloading yarl-1.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (72 kB)
Collecting typing-extensions>=4.1.0 (from multidict<7.0,>=4.5->aiohttp->jeedomdaemon)
Downloading typing_extensions-4.13.2-py3-none-any.whl.metadata (3.0 kB)
Collecting idna>=2.0 (from yarl<2.0,>=1.17.0->aiohttp->jeedomdaemon)
Using cached idna-3.10-py3-none-any.whl.metadata (10 kB)
Downloading jeedomdaemon-1.2.9-py3-none-any.whl (10 kB)
Downloading aiohttp-3.11.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 965.6 kB/s eta 0:00:00
Downloading aiohappyeyeballs-2.6.1-py3-none-any.whl (15 kB)
Downloading aiosignal-1.3.2-py2.py3-none-any.whl (7.6 kB)
Downloading async_timeout-5.0.1-py3-none-any.whl (6.2 kB)
Downloading attrs-25.3.0-py3-none-any.whl (63 kB)
Downloading frozenlist-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (288 kB)
Downloading multidict-6.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (217 kB)
Downloading propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (209 kB)
Downloading yarl-1.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (332 kB)
Using cached idna-3.10-py3-none-any.whl (70 kB)
Downloading typing_extensions-4.13.2-py3-none-any.whl (45 kB)
WARNING: Error parsing dependencies of requests: [Errno 2] No such file or directory: '/usr/local/lib/python3.9/dist-packages/requests-2.31.0.dist-info/METADATA'
WARNING: Error parsing dependencies of gpg: Invalid version: '1.14.0-unknown'
Installing collected packages: typing-extensions, propcache, idna, frozenlist, attrs, async-timeout, aiohappyeyeballs, multidict, aiosignal, yarl, aiohttp, jeedomdaemon
Attempting uninstall: typing-extensions
Found existing installation: typing_extensions 4.8.0
Uninstalling typing_extensions-4.8.0:
Successfully uninstalled typing_extensions-4.8.0
Attempting uninstall: idna
Found existing installation: idna 3.10
Uninstalling idna-3.10:
Successfully uninstalled idna-3.10
Attempting uninstall: frozenlist
Found existing installation: frozenlist 1.4.0
Uninstalling frozenlist-1.4.0:
Successfully uninstalled frozenlist-1.4.0
Attempting uninstall: attrs
Found existing installation: attrs 23.1.0
Uninstalling attrs-23.1.0:
Successfully uninstalled attrs-23.1.0
Attempting uninstall: async-timeout
Found existing installation: async-timeout 4.0.3
Uninstalling async-timeout-4.0.3:
Successfully uninstalled async-timeout-4.0.3
Attempting uninstall: multidict
Found existing installation: multidict 6.0.4
Uninstalling multidict-6.0.4:
Successfully uninstalled multidict-6.0.4
Attempting uninstall: aiosignal
Found existing installation: aiosignal 1.3.1
Uninstalling aiosignal-1.3.1:
Successfully uninstalled aiosignal-1.3.1
Attempting uninstall: yarl
Found existing installation: yarl 1.4.2
Uninstalling yarl-1.4.2:
Successfully uninstalled yarl-1.4.2
Attempting uninstall: aiohttp
Found existing installation: aiohttp 3.8.6
Uninstalling aiohttp-3.8.6:
Successfully uninstalled aiohttp-3.8.6
Successfully installed aiohappyeyeballs-2.6.1 aiohttp-3.11.18 aiosignal-1.3.2 async-timeout-5.0.1 attrs-25.3.0 frozenlist-1.6.0 idna-3.10 jeedomdaemon-1.2.9 multidict-6.4.3 propcache-0.3.1 typing-extensions-4.13.2 yarl-1.20.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
+ echo 8
+ php /var/www/html/core/class/../php/jeecli.php plugin dependancy_end sonos3
+ echo 9
+ rm /tmp/jeedom_install_in_progress_sonos3
+ echo '*******************End of package installation******************'
*******************End of package installation******************

je peux avoir un peu plus de détails à ce propos?
déjà quel est le réseau de jeedom et celui de sonos du coup? elles sont toutes en wifi ou ethernet (sur un autre réseau) ou vous parlez de sonosnet?
ou est-ce un mélange?

Réseau de Jeedom = 192.168.38.0
Réseau des enceintes sonos = 192.168.35.0 toutes en wifi, elles ont chacune une ip sur ce réseau
Routeur synology avec des règles de communication

le plugin envoie un packet multicast sur le port 1900 pour découvrir les sonos, est-ce que ceci est bien routé aussi?
un peu comme l’app en fait, comment faites-vous pour ajouter/découvrir un nouveau sonos avec l’app; ok via bluetooth mais ensuite vous devez reconfigurer le wifi à la main chaque fois? ou vous vous connectez sur le « wifi sonos » le temps de le faire?
et à l’usage, l’app trouve les sonos sur le réseau? car si pas le meme réseau vous devez avoir le meme problème

L’app sur mon téléphone est sur le même réseau que les enceintes. Sur le plugin, quand je lance une synchro j’ai un message de réussite. Les enceintes sonos ont une ip fixe. Ce que je ne comprends pas, c’est que cela fonctionnait jusqu’à la dernière mise à jour. Qu’est ce qui a changé dans le plug in ?
Est ce que je dois ajouter un transfert du port 1900 sur le routeur des sonos vers la jeedom maintenant ?

Oui, l’ordre a ete envoyé au démon.
Ca ne veut pas dire que le plugin va trouver; cf. message dans le log

Tout, lire le changelog.

Pas compris ça; c’est le téléphone qui est sur le même réseau que les sonos plutôt c’est ça?

En fait c’est jeedom qui est sur un réseau à part?

Ca serait plutôt dans l’autre sens et c’est le multicast qui doit être autorisé.

Oui le tel est sur le réseau principal avec les sonos.
Jeedom est sur le vlan serveur.

Oui, j’ai lu et ce que je ne comprends pas c’est que cette grosse maj est d’aout 2024. Je l’avais faite depuis longtemps et ça fonctionnait donc ce n’est pas la dernière qui est mineure qui devait me bloquer.

page config plugin? comme je demande systématiquement
histoire de vérifier quelle version vous avez exactement?
car je ne suis pas sur de comprendre d’où vous tenez ces infos:


sinon dans l’immédiat vous pouvez restaurer un backup, vous serez fixé

si vous ne parvenez pas à configurer le multicast sur votre réseau, je testerai une solution dans le plugin mais ca sera la semaine prochaine

Du chancelog non ?

C’est vrai, je peux tenter même si je suis un peu frileux sur les backup. Je vous tiens au courant.

Je n’ai pas beaucoup de réglages là dessus sur mon routeur. Pour chaque réseau, j’ai coché l’activation de l’IGMP snooping.

Ah, si vous faite ça c’est top !

Ok donc vous êtes bien en stable et donc la dernière mise à jour en stable contient tous les changements qui se trouvaient en beta depuis début août.
C’est donc bien une mise à jour majeure

D’accord, merci. De mon côté je n’arrive toujours pas à trouver un réglage sur mon routeur pour laisser passer le multicast. En espérant que vous puissiez tester une solution sur le plugin la semaine prochaine …
Bon week end

je pense que oui
je suis en congé à l’étranger donc je ne sais pas tester immédiatement mais j’ai noté un rappel

Dans l’app c’est Réseaux > Multicast settings.

La partie iot comme ils l’appelle maintenant c’est pour faire un proxy multicast entre les réseaux.

Igmp snooping il faut un peu comprendre le fonctionnement… mais pour résumer, ne l’activez pas si vous avez du matériel non unifi sur votre réseau (switch, point d’accès). Mais si vous êtes complètement en unifi allez y.

C’est bien des vlans différents ?

Tu parles d’une app et un réglage synology ou unifi?
Car il est sur synology si j’ai bien suivi

Oui, ce sont deux Vlans différents. Et j’ai un Vlan Iot aussi en 192.168.37

C’est ça, routeur Synology RT 6600 qui permet de créer des Vlan. j’ai rien en Unifi

Ok mal lu, au temps pour moi

Mais le principe reste le meme

1 « J'aime »