I’ve got a few Sonos One SL speakers on my network which the sonos binding doesn’t find. (It does happily find the Symphonisk speaker that’s one the network.)
There’s a log extract below - essentially it seems that the One SL speakers end up with “One SL” as part of the UID, which fails the pattern check when validating the UID.
Jon
From the logs:
2019-12-27 16:44:59.877 [ERROR] [y.upnp.internal.UpnpDiscoveryService] - Participant 'org.openhab.binding.sonos.internal.discovery.ZonePlayerDiscoveryParticip
ant' threw an exception
java.lang.IllegalArgumentException: ID segment 'One SL' contains invalid characters. Each segment of the ID must match the pattern [A-Za-z0-9_-]*.
at org.eclipse.smarthome.core.common.AbstractUID.validateSegment(AbstractUID.java:97) ~[bundleFile:?]
at org.eclipse.smarthome.core.common.AbstractUID.<init>(AbstractUID.java:75) ~[bundleFile:?]
at org.eclipse.smarthome.core.common.AbstractUID.<init>(AbstractUID.java:58) ~[bundleFile:?]
at org.eclipse.smarthome.core.thing.UID.<init>(UID.java:57) ~[bundleFile:?]
at org.eclipse.smarthome.core.thing.ThingTypeUID.<init>(ThingTypeUID.java:39) ~[bundleFile:?]
at org.openhab.binding.sonos.internal.discovery.ZonePlayerDiscoveryParticipant.getThingUID(ZonePlayerDiscoveryParticipant.java:86) ~[?:?]
at org.openhab.binding.sonos.internal.discovery.ZonePlayerDiscoveryParticipant.createResult(ZonePlayerDiscoveryParticipant.java:50) ~[?:?]
at org.eclipse.smarthome.config.discovery.upnp.internal.UpnpDiscoveryService.remoteDeviceAdded(UpnpDiscoveryService.java:187) [bundleFile:?]
at org.jupnp.registry.RemoteItems$1.run(RemoteItems.java:114) [bundleFile:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_232]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_232]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_232]