[Solved] Sonos Binding Errors

I keep getting errors of the following form:

2017-02-06 21:11:38.680 [ERROR] [.io.transport.upnp.UpnpIOServiceImpl] - Participant threw an exception onValueReceived
java.lang.IllegalArgumentException: Malformed escape pair at index 75: http://opml.radiotime.com/Describe.ashx?c=nowplaying&partnerId=IAeIhU42&id=%id&serial=00:0E:58:AE:CB:56
	at java.net.URI.create(URI.java:852)[:1.8.0_121]
	at org.eclipse.jetty.client.HttpClient.newRequest(HttpClient.java:404)[69:org.eclipse.jetty.client:9.2.19.v20160908]
	at org.eclipse.smarthome.io.net.http.HttpUtil.executeUrl(HttpUtil.java:185)[113:org.eclipse.smarthome.io.net:0.9.0.201702010824]
	at org.eclipse.smarthome.io.net.http.HttpUtil.executeUrl(HttpUtil.java:130)[113:org.eclipse.smarthome.io.net:0.9.0.201702010824]
	at org.eclipse.smarthome.io.net.http.HttpUtil.executeUrl(HttpUtil.java:86)[113:org.eclipse.smarthome.io.net:0.9.0.201702010824]
	at org.eclipse.smarthome.io.net.http.HttpUtil.executeUrl(HttpUtil.java:65)[113:org.eclipse.smarthome.io.net:0.9.0.201702010824]
	at org.eclipse.smarthome.binding.sonos.handler.ZonePlayerHandler.updateMediaInformation(ZonePlayerHandler.java:874)[213:org.eclipse.smarthome.binding.sonos:0.9.0.201702010824]
	at org.eclipse.smarthome.binding.sonos.handler.ZonePlayerHandler.onValueReceived(ZonePlayerHandler.java:384)[213:org.eclipse.smarthome.binding.sonos:0.9.0.201702010824]
	at org.eclipse.smarthome.io.transport.upnp.UpnpIOServiceImpl$UpnpSubscriptionCallback.eventReceived(UpnpIOServiceImpl.java:144)[214:org.eclipse.smarthome.io.transport.upnp:0.9.0.201702010824]
	at org.jupnp.controlpoint.SubscriptionCallback$2.eventReceived(SubscriptionCallback.java:222)[162:org.jupnp:2.2.0]
	at org.jupnp.model.gena.RemoteGENASubscription.receive(RemoteGENASubscription.java:114)[162:org.jupnp:2.2.0]
	at org.jupnp.protocol.sync.ReceivingEvent$2.run(ReceivingEvent.java:130)[162:org.jupnp:2.2.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
	at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
Caused by: java.net.URISyntaxException: Malformed escape pair at index 75: http://opml.radiotime.com/Describe.ashx?c=nowplaying&partnerId=IAeIhU42&id=%id&serial=00:0E:58:AE:CB:56
	at java.net.URI$Parser.fail(URI.java:2848)[:1.8.0_121]
	at java.net.URI$Parser.scanEscape(URI.java:2978)[:1.8.0_121]
	at java.net.URI$Parser.scan(URI.java:3001)[:1.8.0_121]
	at java.net.URI$Parser.checkChars(URI.java:3019)[:1.8.0_121]
	at java.net.URI$Parser.parseHierarchical(URI.java:3111)[:1.8.0_121]
	at java.net.URI$Parser.parse(URI.java:3053)[:1.8.0_121]
	at java.net.URI.<init>(URI.java:588)[:1.8.0_121]
	at java.net.URI.create(URI.java:850)[:1.8.0_121]
	... 14 more

I’ve tried uninstalling / reinstalling but keep getting the same types of errors. Any ideas of what I might have configured wrong?

See this post, could it be the same explanation?

See post #4 to disable the error logs.

I don’t think so since the serial ID’s in the call are those of the Sonos device, but thanks for the heads up on how to turn off the error logging for this particular issue.

@m0wlheld Thanks. That points back to an issue in the binding.

@Kai I can’t seem to find who is the official owner of the Sonos binding since I see a lot of back and forth between you and multiple parties in the general Eclipse issues thread. Should I just submit this there?

Now I feel like an idiot (happens quite a bit). Turns out the issue was I don’t actually have TuneIn setup. Once I deleted the ‘OPML Service URL’ value from the Sonos Config the error went away.

But it means that with the default setup you always have this error in the log? It should not be necessary to remove the value of the OPML Service URL parameter. So please enter an issue about this at https://github.com/eclipse/smarthome/issues - thanks!

Before I submitted it, I went through and did an uninstall, deleted the sonos.cfg file, and reinstalled the binding. It didn’t configure it with the OPML address this time. I’m guessing it was a bug in an earlier version and since I wasn’t deleting the config file when I did my uninstall/reinstall it was just picking it up from that file. I never set it up originally so definitely at some point in the binding evolution it put it in there. I think we are good to go now but at least the threads here if it does show up in the future for someone else.

Thanks.

Spoke too soon. Just installed the latest snapshot and it did it again. Just submitted an issue:

Hi,

I have a very similar issue, everytime I start OpenHAB (and sometimes also at other times) I get this:

2017-10-06 14:25:54.189 [ERROR] [.io.transport.upnp.UpnpIOServiceImpl] - Participant threw an exception onValueReceived
java.lang.IllegalArgumentException: Channel with ID 'tuneinstationid' does not exists.
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.isLinked(BaseThingHandler.java:571) [108:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.updateChannel(ZonePlayerHandler.java:574) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.onValueReceived(ZonePlayerHandler.java:525) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.updateMediaInformation(ZonePlayerHandler.java:1063) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.onValueReceived(ZonePlayerHandler.java:410) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.io.transport.upnp.UpnpIOServiceImpl$UpnpSubscriptionCallback.eventReceived(UpnpIOServiceImpl.java:144) [188:org.eclipse.smarthome.io.transport.upnp:0.9.0.201709260841]
	at org.jupnp.controlpoint.SubscriptionCallback$2.eventReceived(SubscriptionCallback.java:222) [164:org.jupnp:2.2.0]
	at org.jupnp.model.gena.RemoteGENASubscription.receive(RemoteGENASubscription.java:114) [164:org.jupnp:2.2.0]
	at org.jupnp.protocol.sync.ReceivingEvent$2.run(ReceivingEvent.java:130) [164:org.jupnp:2.2.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]
2017-10-06 14:25:54.850 [ERROR] [.io.transport.upnp.UpnpIOServiceImpl] - Participant threw an exception onValueReceived
java.lang.IllegalArgumentException: Channel with ID 'tuneinstationid' does not exists.
	at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.isLinked(BaseThingHandler.java:571) [108:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.updateChannel(ZonePlayerHandler.java:574) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.onValueReceived(ZonePlayerHandler.java:525) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.updateMediaInformation(ZonePlayerHandler.java:1063) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.binding.sonos.internal.handler.ZonePlayerHandler.onValueReceived(ZonePlayerHandler.java:450) [186:org.eclipse.smarthome.binding.sonos:0.9.0.201709260841]
	at org.eclipse.smarthome.io.transport.upnp.UpnpIOServiceImpl$UpnpSubscriptionCallback.eventReceived(UpnpIOServiceImpl.java:144) [188:org.eclipse.smarthome.io.transport.upnp:0.9.0.201709260841]
	at org.jupnp.controlpoint.SubscriptionCallback$2.eventReceived(SubscriptionCallback.java:222) [164:org.jupnp:2.2.0]
	at org.jupnp.model.gena.RemoteGENASubscription.receive(RemoteGENASubscription.java:114) [164:org.jupnp:2.2.0]
	at org.jupnp.protocol.sync.ReceivingEvent$2.run(ReceivingEvent.java:130) [164:org.jupnp:2.2.0]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]

I’m on the Snapshot 2.2 (build #1056).

I have exactly the same issue.
Deleting the ‘OPML Service URL’ value from the Sonos Config didn’t work at all.

Snapshot 2.2 #1084

I solved it by deleting the Sonos things (via Paperui) and then adding them back.

Yep, now the error is gone.
Thanks a lot!