No Sonos devices found when InfluxDB2 Docker container is running

I’m running openHAB 3.3.0 in a Docker/Portainer setup, together with InfluxDB and Grafana, as described in Initial Setup of OH3 with Docker/Portainer, InfluxDB, Grafana and NodeRed on a Pi4 + SSD.
All is running well, except that I noticed that the Sonos binding can’t find any device.

In the logging I found
org.openhab.core.net.NetUtil Found multiple local interfaces - ignoring ....
After searching the community messages that led me to update the openHAB network settings, selecting the 192.xxx as primary and broadcast addresses.
However, still no effect.

Because I knew the Sonos binding worked perfectly well before I switched to the Docker setup, I tried the process of elimination. Once I stopped the InlfuxDB and Grafana containers, suddenly the Sonos binding was able to detect my Sonos hardware.

As per the installation instructions, openHAB is running on the host network, while the InfluxDB container has its own influxdb network.

Anyone got an explanation & solution for this clash?

I’m pretty sure you don’t need neither InfluxDB nor the Grafana container to use the host network. For openHAB it’s mandatory, because otherwise multicast wont work (which avahi will use to autodiscover things)

Hi Udo, thanks for your response.
I’ve narrowed it further down to InfluxDB as the conflicting container. The thing is that InfluxDB is running on its own bridged netwerk called “influxdb”, shared with the Telegraf container, only exposing port 8086.

Once I started InfluxDB I found this entry in the openHAB logging:

[ERROR] [y.upnp.internal.UpnpDiscoveryService] - Could not restart UPnP network components.
org.jupnp.transport.RouterException: Router wasn't available exclusively after waiting 6000ms, lock failed: WriteLock
	at org.jupnp.transport.RouterImpl.lock(RouterImpl.java:481) ~[?:?]
	at org.jupnp.transport.RouterImpl.lock(RouterImpl.java:494) ~[?:?]
	at org.jupnp.transport.RouterImpl.disable(RouterImpl.java:151) ~[?:?]
	at org.openhab.core.config.discovery.upnp.internal.UpnpDiscoveryService.lambda$1(UpnpDiscoveryService.java:247) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]

and then some time later

[ab.event.ThingStatusInfoChangedEvent] - Thing 'sonos:PLAY1:RINCON_xxxx' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): The Sonos player RINCON_xxxx is not available in local network.

How is it possible that a container with a bridged network interferes with the openHAB PnP?

Sorry, I’m not that deep in docker :confused: