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?