I’ve just installed the latest HA (0.110.4) on Docker on Ubuntu. Once I start it and log in it discovers several devices on my network, such as my Harmony remote and my Shield TV. However when I use the SONOS integration it doesn’t discover any Sonos devices - I just get an error message:
Aborted
No Sonos devices found on the network.
I have 3 devices, a Sonos 1, a Move and a Connect and all 3 are switched on. All devices, including the HA, are on the same network. I can ping the Sonos 1 from the Linux box, including from within Docker, and can even wget the xml files (can’t remember the exact names) from the Sonos 1.
If I check the home-assistant.log I don’t see any messages relating to Sonos.
Just tried adding the IP address to the config file and that seems to work, so I guess the question is, why doesn’t the discovery work? How do I diagnose or further investigate the issue?
Check out the “Advanced Use” segment: https://www.home-assistant.io/integrations/sonos/#advanced-use
Maybe you need to specify an advertise_addr or interface_addr?
Could also be some firewall issue on your host, did you check the ufw status on Ubuntu and the net rules for docker?
I also have some SONOS devices, however I’ve set my router to give them a static IP and just included that in the HA config. If your setup isn’t changing constantly that might be an option.
Yes, I’ve gone with the static IP approach for now.
I think the HA Sonos integration is based on the SoCo Python package. If I run soco.discover() then it also fails to discover anything. If I specify the host address it again fails.
I guess there is something unusual with my home network , but no idea what.
My Sonos device was not auto-discovered, and when I added mannually the IP address as explained in the Advanced mode configuration, I had something like “can’t reply on address 172.X.X.X”
It means that the device is not able to connect to the DOCKER ip, because i think it’s not coded very well since it should not use the container IP address, but the host URL to configure the integration.
In any way, I was able to deal with this just with adding “–net=host” parameter in my docker launching container command.
Maybe there is a better way to deal with this, but it works well while waiting for an update on the integration, if possible of course.