I am mainly interrested, if the OP´s problem was fixed. Describing my Setup is not required to know this… ![]()
I had a very similar problem and solved it. But that solution will only fit in some cases, depending on network topology. I guess you‘ll have to figure it out your own.
I finally solved this, and in my case it was not a firewall, TTL, VLAN, or SSDP problem.
Root cause:
When running openHAB in Docker (with --net=host) on a system with multiple network interfaces / IPs (Docker bridges, VLANs, etc.), jUPnP binds to all available interfaces and addresses.
As a result, SSDP packets are visible on the wire (tcpdump shows them), but jUPnP drops the devices internally, so:
- Sonos never appears in the Inbox
RegistryImplhas no local or remote devices- Sonos things stay at
(COMMUNICATION_ERROR / not registered)
This is a jUPnP multi-homed host issue, not a Sonos binding bug.
The fix: explicitly pin jUPnP to the correct interface or IP.
Example (Docker):
-e "EXTRA_JAVA_OPTS=-Dorg.jupnp.network.useAddresses=192.168.178.29
(replace with your actual LAN IP/interface.)
After restart, jUPnP binds to one address only, SSDP discovery works immediately, Sonos appears in the Inbox, and the “UPnP device is not yet registered” error disappears.
This only shows up on Docker/hosts with multiple NICs, which is why it’s so hard to diagnose without debugging jUPnP internals.
I have a similar issue,
After a while my devices go tot hat error:
UPnP device RINCON_B8E937BECD000XXXX not yet registered
When i run in the console:
openhab> bundle:restart org.jupnp
The devices come online again.
As I‘m running in docker what also helped was setting :
org.jupnp.network.useInterfaces = eth0
openhab> config:list "(service.pid=org.jupnp*)"
----------------------------------------------------------------
Pid: org.jupnp
BundleLocation: ?
Properties:
asyncThreadPoolSize = 30
felix.fileinstall.filename = file:/openhab/userdata/etc/org.jupnp.cfg
multicastResponsePort = 0
**org.jupnp.network.useInterfaces = eth0**
service.pid = org.jupnp
threadPoolSize = 15
openhab>
And in the end of userdata/etc/system.properties
frsc@raspi:/opt/openhab3 $ tail -10 data/openhab/userdata/etc/system.properties
# You can specify the location of the lock file using the
# karaf.lock.dir=/path/to/the/directory/containing/the/lock
#
# By default, the slave instances start but are passive.
# If you want to prevent the slave instances startup, you can use
# the karaf.lock.slave.block property (false by default):
# karaf.lock.slave.block=true
# SONOS Docker container cannot be used
org.jupnp.network.useInterfaces=eth0