Bose SoundTouch Binding

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.

Just started to use this awesome binding!
Could someone elaborate how to use the notificationsound channel with the optional configuration parameters?

Okay figured it out by checking the source code.
Actually the notificationsound channel has configuration parameters which can be set in the PaperUI. The command to send to the notificationsound channel is only the URL which should be played.
It is not possible to set the configuration parameters with each command, but it is possible to create multiple notificationsound channels with different parameters.

@tiknx. Any news?

Isnt it fixed already?

Is there a typo in the things example?

Wouldn’t it be better to write:

[…]
Full Example

Things:
Thing bosesoundtouch:device:demo “Demo” @ “Living” [ host=“192.168.1.2”, macAddress=“123456789ABC” ]
[…]

instead of:

[…]
Full Example

Things:
bosesoundtouch:device:demo @ “Living” [ host=“192.168.1.2”, macAddress=“123456789ABC” ]
[…]

Hello, is there any way to have a Bose Soundlink Air working with this binding? It’s an old Airplay WiFi speaker that I still use with Airplay Apple protocol, and it would very nice to have it integrated into OA2 …
TY in advance for any suggestion.

No, the SoundLink Air does not use the SoundTouch API, so it won’t work with this binding

Has anyone been able to find the command for “Play All”?

I would like to use that rather than multiple ZoneAdd commands if possible.

Im looking for controlling my soundtouch devices multiroom via openhab. in This thread i have found some channels that should make this possible. I tried to use this channels, but none works. Could it be , that this feature was removed? i also cant find any hints in the readme or documentation.

Does this function exist? and if yes, what are their channel names?

Hello,

I think the option “ZoneAdd” is not longer existing in this binding. Does someone know why ? I am really missing this…

Cheers,
Tizaf

Hi,

to bring some light into the zoning topic:
There is a version of this plugin coming with openhab itself. This openhab-included/deployed version doesn’t currently support any zoning features. The zoning functionality requires some direct communication between the thing-instances to collect the information for building up the zones - and this is denied for ‘official’ plugins.

Never the less there is still the version available from my github repository - still including the zone features. Just disable the openhab-included plugin, download the plugin from the link, put it into the ‘addons’ folder and zones are working…

Cheers,
Chris

1 Like

Thanks Christian,

its again working with org.openhab.binding.bosesoundtouch-2.1.0-SNAPSHOT.jar
It think its worth mentioning it in the add ons documentation

BR,
Michael