Bose SoundTouch Binding

“Dining Room” and “Living Room” are just the names of my devices I defined in the Bose Soundtouch App. You can similarly reference the MAC address of the devices to add them to the zone.

2 Likes

Could anybody give me a hint how am i adding the soundtouch biniding to my openHAB system?

I am trying it for hours unfortunately i haven’t succseed.

i am using a RaspberryPi.

i done the following:

cd /usr/share/openhab2/addons
git clone https://github.com/marvkis/org.openhab.binding.bosesoundtouch-dist
sudo reboot

Now i expect that i can see the binding in the PaperUI. but I don’t.

Thanks for the help!

Hello Chris,

it is possible for you to give me a bit help for beginners?

I have tried to add the binding to my openHAB2 system which it runs on a raspberry Pi.

Can you tell me in which folder i have to copy the files from you?
And what i have to execute? Or could you show me a thread or tutorial what should i done for better understanding?

Thanks

Christoph

don’t clone the repo, just copy the jar file from https://github.com/marvkis/org.openhab.binding.bosesoundtouch-dist/blob/master/org.openhab.binding.bosesoundtouch-2.1.0-SNAPSHOT.jar into your addons directory. Then restart Openhab (don’t need to reboot the whole computer). I just added it last night, and that’s all I had to do. After a few minutes, all my SoundTouch devices appeared in the inbox.

Hy!

how can i define Things for this Binding?

Thank You

Hi @code723,

as long as the openHAB server is on the same network as your speaker the AutoDiscovery should find them automatically and you’ll find them on the inbox…

Is the Bose SoundTouch Binding visible on the bindings list?

Cheers,
Chris

Hy!

The AutoDiscovery find my Devices but i’d like to define my Things in a *.things File

1 Like

Just as a heads-up: The code has now moved to https://github.com/eclipse/smarthome/pull/5397 and I’ll help driving that to get it merged in the not too far future.

Hi there,

I have the unstable 2.3.0 Snapshot build #1254 an downloaded the bose soundtouch binding. The Binding is not showing up in my Add-ons. Could somebody tell me if the binding is working with my Snapshot Version?

Hi @Sanny,

it seems our dependency configuration has some issues for the current 2.3 snapshot - the dependencies (jetty websocks, …) don’t get resolved as expected. might be related that this is installed via the addons folder - didn’t have the time to dig into int yet.
but there is a workaround: Just execute

feature:install openhab-httpclient

or install the openhab-httpclient feature through the GUI. This feature will install all required dependencies and the Bose SoundTouch binding starts to work…

Cheers,
Chris

Hi Chris,

I installed through the GUI the http binding, but I still not get the bose binding shown. Any other Idea?

Thank you
Sanny

Good news: Since snapshot build #1264, the Bose SoundTouch binding is part of the official distro!

Thank you all, I updated to snapshot build#1264 and it finally works.

Hi! Have an Soundtouch 300 and i would like to switch the input. Ive read all the replies relating to this case but i did not find any solution. I installed the Binding from the GUI in 2.3.0.

Added Soundtouch 300 via things:

bosesoundtouch:300:Soundtouch300 @ "Wohnzimmer"  [ host="192.168.2.88", macAddress="C4F3129FF042" ]

Added All the Items relating to this thing:

Switch  Soundtouch_Power                      "Power: [%s]"          <switch>      { channel="bosesoundtouch:300:Soundtouch300:power" }
Dimmer  Soundtouch_Volume                     "Volume: [%d %%]"      <volume>      { channel="bosesoundtouch:300:Soundtouch300:volume" }
Number  Soundtouch_Bass                       "Bass: [%d %%]"        <volume>      { channel="bosesoundtouch:300:Soundtouch300:bass" }
Switch  Soundtouch_Mute                       "Mute: [%s]"           <volume_mute> { channel="bosesoundtouch:300:Soundtouch300:mute" }
String  Soundtouch_OperationMode              "OperationMode: [%s]"  <text>        { channel="bosesoundtouch:300:Soundtouch300:operationMode" }
String  Soundtouch_PlayerControl              "Player Control: [%s]" <text>        { channel="bosesoundtouch:300:Soundtouch300:playerControl" }
String  Soundtouch_ZoneAdd                    "Zone add: [%s]"       <text>        { channel="bosesoundtouch:300:Soundtouch300:zoneAdd" }
String  Soundtouch_ZoneRemove                 "Zone remove: [%s]"    <text>        { channel="bosesoundtouch:300:Soundtouch300:zoneRemove" }
Number  Soundtouch_Preset                     "Preset: [%d]"         <text>        { channel="bosesoundtouch:300:Soundtouch300:preset" }
String  Soundtouch_PresetControl              "Preset Control: [%s]" <text>        { channel="bosesoundtouch:300:Soundtouch300:presetControl" }
Number  Soundtouch_SaveAsPreset               "Save as Preset: [%d]" <text>        { channel="bosesoundtouch:300:Soundtouch300:saveAsPreset" }
String  Soundtouch_KeyCode                    "Key Code: [%s]"       <text>        { channel="bosesoundtouch:300:Soundtouch300:keyCode" }
String  Soundtouch_ZoneInfo                   "Zone Info: [%s]"      <text>        { channel="bosesoundtouch:300:Soundtouch300:zoneInfo", autoupdate="false" }
Switch  Soundtouch_RateEnabled                "Rate: [%s]"           <switch>      { channel="bosesoundtouch:300:Soundtouch300:rateEnabled" }
Switch  Soundtouch_SkipEnabled                "Skip: [%s]"           <switch>      { channel="bosesoundtouch:300:Soundtouch300:skipEnabled" }
Switch  Soundtouch_SkipPreviousEnabled        "SkipPrevious: [%s]"   <switch>      { channel="bosesoundtouch:300:Soundtouch300:skipPreviousEnabled" }
String  Soundtouch_nowPlayingAlbum            "Album: [%s]"          <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingAlbum" }
String  Soundtouch_nowPlayingArtist           "Artist: [%s]"         <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingArtist" }
String  Soundtouch_nowPlayingArtwork          "Art: [%s]"            <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingArtwork" }
String  Soundtouch_nowPlayingDescription      "Description: [%s]"    <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingDescription" }
String  Soundtouch_nowPlayingGenre            "Genre: [%s]"          <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingGenre" }
String  Soundtouch_nowPlayingItemName         "Playing: [%s]"        <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingItemName" }
String  Soundtouch_nowPlayingStationLocation  "Radio Location: [%s]" <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingStationLocation" }
String  Soundtouch_nowPlayingStationName      "Radio Name: [%s]"     <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingStationName" }
String  Soundtouch_nowPlayingTrack            "Track: [%s]"          <text>        { channel="bosesoundtouch:300:Soundtouch300:nowPlayingTrack" }

When i try to set Soundtouch_OperationMode to PRODUCT or to BLUETOOTH it simply not works, with the following output in Logfile:

2018-06-03 21:29:13.653 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.eclipse.smarthome.binding.bosesoundtouch.handler.BoseSoundTouchHandler@7fa5b73e': null
java.lang.NullPointerException: null
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.ContentItem.isValid(ContentItem.java:74) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.CommandExecutor.setCurrentContentItem(CommandExecutor.java:114) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.CommandExecutor.postContentItem(CommandExecutor.java:342) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.CommandExecutor.postOperationMode(CommandExecutor.java:172) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.handler.BoseSoundTouchHandler.handleCommand(BoseSoundTouchHandler.java:185) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
        at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
        at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [101:org.eclipse.smarthome.core:0.10.0.oh230]
        at com.sun.proxy.$Proxy149.handleCommand(Unknown Source) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
        at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
        at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
        at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh230]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]
2018-06-03 21:29:44.917 [WARN ] [dtouch.handler.BoseSoundTouchHandler] - SoundTouch 300: OperationMode "PRODUCT" is not valid!

Here is the output for bluetooth

2018-06-03 21:23:31.131 [WARN ] [dtouch.handler.BoseSoundTouchHandler] - SoundTouch 300: Could not parse XML from string '<?xml version="1.0" encoding="UTF-8" ?><msg><header deviceID="C4F3129FF042" url="now_playing" method="GET"><r
equest requestID="0" msgType="RESPONSE"><info type="new" /></request></header><body><nowPlaying deviceID="C4F3129FF042" source="PRODUCT" sourceAccount="TV"><ContentItem source="PRODUCT" sourceAccount="TV" isPresetable="false" /><ar
t artImageStatus="SHOW_DEFAULT_IMAGE" /><playStatus>PLAY_STATE</playStatus></nowPlaying></body></msg>'.
java.lang.NullPointerException: null
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.ContentItem.isValid(ContentItem.java:74) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.CommandExecutor.setCurrentContentItem(CommandExecutor.java:114) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.XMLResponseHandler.endElement(XMLResponseHandler.java:367) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) [?:?]
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183) [?:?]
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351) [?:?]
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784) [?:?]
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) [?:?]
        at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) [?:?]
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) [?:?]
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841) [?:?]
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) [?:?]
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) [?:?]
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) [?:?]
        at org.eclipse.smarthome.binding.bosesoundtouch.internal.XMLResponseProcessor.handleMessage(XMLResponseProcessor.java:45) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.smarthome.binding.bosesoundtouch.handler.BoseSoundTouchHandler.onWebSocketText(BoseSoundTouchHandler.java:350) [232:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]
        at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918]
        at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918]
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918]
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918]
        at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918]
        at java.lang.Thread.run(Thread.java:748) [?:?]
2018-06-03 21:27:31.567 [WARN ] [esoundtouch.internal.CommandExecutor] - SoundTouch 300: OperationMode "BLUETOOTH" is not supported yet

Do you have any hints for me how i can help you(if its an bug) to fix this?

Best regards.

Hi everbody,
i have also problems with the actual binding in 2.3.0.

Here is my output:
2018-06-03 23:51:10.877 [WARN ] [dtouch.handler.BoseSoundTouchHandler] - SoundTouch 300: Could not parse XML from string ‘PLAY_STATE’.

java.lang.NullPointerException: null

at org.eclipse.smarthome.binding.bosesoundtouch.internal.ContentItem.isValid(ContentItem.java:74) [243:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]

at org.eclipse.smarthome.binding.bosesoundtouch.internal.CommandExecutor.setCurrentContentItem(CommandExecutor.java:114) [243:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]

at org.eclipse.smarthome.binding.bosesoundtouch.internal.XMLResponseHandler.endElement(XMLResponseHandler.java:367) [243:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) [?:?]

at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183) [?:?]

at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351) [?:?]

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784) [?:?]

at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) [?:?]

at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) [?:?]

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) [?:?]

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842) [?:?]

at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771) [?:?]

at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) [?:?]

at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) [?:?]

at org.eclipse.smarthome.binding.bosesoundtouch.internal.XMLResponseProcessor.handleMessage(XMLResponseProcessor.java:45) [243:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]

at org.eclipse.smarthome.binding.bosesoundtouch.handler.BoseSoundTouchHandler.onWebSocketText(BoseSoundTouchHandler.java:350) [243:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230]

at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918]

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918]

at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918]

at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918]

at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918]

at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918]

at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918]

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918]

at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918]

at java.lang.Thread.run(Thread.java:748) [?:?]

Thanks.

Could one of you please report this as an issue at https://github.com/eclipse/smarthome/issues? Thanks!

So all these NPE should be fixed now.
The problem with the SoundTouch 300 may be related to some other problems, The main problem with the 300 is, that we did not have a device when we implemented the binding, but only some logs form users.

I’m on holydays at the moment, but i’ll have a look when i’m back

@marvkis, could you take a look to that? (I didn’t see this thread here…)
https://community.openhab.org/t/bosesoundtouch-binding-is-not-connecting-to-bose-soundtouch-wireless-link-adapter/46236

I`m currently have this in my log:

2018-06-10 19:44:43.343 [WARN ] [dtouch.handler.BoseSoundTouchHandler] - SoundTouch 300: Could not parse XML from string ‘<?xml version="1.0" encoding="UTF-8" ?>PLAY_STATE’. java.lang.NullPointerException: null at org.eclipse.smarthome.binding.bosesoundtouch.internal.ContentItem.isValid(ContentItem.java:74) [244:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230] at org.eclipse.smarthome.binding.bosesoundtouch.internal.CommandExecutor.setCurrentContentItem(CommandExecutor.java:114) [244:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230] at org.eclipse.smarthome.binding.bosesoundtouch.internal.XMLResponseHandler.endElement(XMLResponseHandler.java:367) [244:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) [?:?] at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183) [?:?] at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351) [?:?] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784) [?:?] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602) [?:?] at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) [?:?] at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505) [?:?] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842) [?:?] at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771) [?:?] at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) [?:?] at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) [?:?] at org.eclipse.smarthome.binding.bosesoundtouch.internal.XMLResponseProcessor.handleMessage(XMLResponseProcessor.java:45) [244:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230] at org.eclipse.smarthome.binding.bosesoundtouch.handler.BoseSoundTouchHandler.onWebSocketText(BoseSoundTouchHandler.java:350) [244:org.eclipse.smarthome.binding.bosesoundtouch:0.10.0.oh230] at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:189) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:66) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:158) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:162) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:376) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:220) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:256) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:679) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:511) [92:org.eclipse.jetty.websocket.common:9.3.21.v20170918] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918] at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918] at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918] at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918] at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918] at java.lang.Thread.run(Thread.java:748) [?:?]

@crax. There is already a PR to fix the bug. Be patient, this will be fixed soon.