How to select other sources in the Soundtouch configuration?

I am currently working on a new SoundTouchPlus integration that handles special source switching like you require. I finally got tired of libsoundtouch not being supported, so decided to write a custom_component and underlying library that can be distributed via HACS. Since it’s a new component name “e.g. SoundTouchPlus”, it won’t interfere with the built-in “SoundTouch” integration setup. You can also use the underlying library stand-alone if you wish. It’s a simple install to the “custom_components” directory, but I want to make it available via the HACS UI installer. I am still trying to figure out how to build the HACS installer.

To answer your initial question, I have the same scenario for my Bose ST300 setup with a Sharp Aquos TV, which requires the Source=“PRODUCT” and a sourceAccount=“TV” in order to watch TV. For my SoundTouchPlus, I would make a call to the standard media_player.select_source service like so - it allows you to pass the source, as well as a sourceAccount value (delimited by colon). I have not done anything with Spotify, so not sure what the source would be for that.

Example swith to Source with sourceAccount support:

service: media_player.select_source
data:
  source: PRODUCT:TV
target:
  entity_id: media_player.soundtouch_10

More info on the Python bosesoundtouchapi library and supporting features:
BoseSoundTouchApi Python 3 Library

2 Likes

Thank you so much.

I am not certain I understand correctly - is there some way I can install it already before you will make it available in HACS?

Regarding selecting Spotify as a source I have found a workaround. By installing Spotify integration from HACS it is possible to select the Soundtouch speaker as a source and it works well. Just as if you selected the speaker from the Spotify app.

I could zip up what I am currently testing if you would like to try it. Note that I have only tested it with a Bose ST10 and an ST300. It should work with the ST20 and ST30, and anything that supports the Bose SoundTouch WebSocket API.

It may take me a week or so to get the HACS install put together, as I have never done that before.

Let me know, and I can PM you what I have. I believe it’s just a simple unzip to the config\custom_components folder and restart of HA to recognize it.

I had some time today, and put together a HACS installer for my SoundTouchPlus integration. Use the following to install from HACS:

  1. go to HACS main menu.
  2. click on the 3-dot “overflow menu” in the upper right, and select “custom repositories” item.
  3. copy / paste https://github.com/thlucas1/homeassistantcomponent_soundtouchplus in the Repository textbox and select Integration for the category entry.
  4. click on “Add” to add the custom repository.
  5. you can then click on the SoundTouchPlus repository entry (you may need to filter your list first to find the new entry).
  6. click on “download” to start the download. It will install the soundtouchplus integration to your config/custom_components directory.
  7. restart HA to start using the component.

Note that I haven’t submitted any icons to the HACS branding repository yet, so the integration will show default icon placeholders. Everything else should work as expected though.

Let me know if you run into any issues.

btw, what Bose SoundTouch speaker models are you using? Just curious, as I have only tested with the ST10 and ST300 models.

1 Like

Bad to the bone Todd. Way to take matters into your own hands but still take the time to HACS it up for the rest of us. Inspiring me… I just don’t have the technical chops quite yet.

1 Like

This is fantastic! I really appreciate your help.

I have followed your steps and installed everything. I tried the select source option, but unfortunately it doesn’t work. PRODUCT:TV has turned on the speaker to the Soundtouch mode so there is some response but it didn’t then switch to TV mode and it threw an error: Failed to call service media_player.select_source. Unknown error

This is what I see in states:

And this is what I see under the IP address of the speaker if that’s any help:

I’m not very technical but please let me know if there is some way I can contribute. Thank you once again!

I’m using Soundtouch 520.

Your sources look similar to my ST300, but I do not see a PRODUCT source.

I forgot to mention in the reply above that CasE is important in the select_source values (e.g. PRODUCT:TV is different than product:tv).

Lets try this - turn on your ST520 and set it manually to the mode that you need it to be in to watch TV. Once you have that, go to a browser and bring up the following link (substitute x.x.x.x with your ip address for the ST520 device):
http://x.x.x.x:8090/nowPlaying.

The output should look something like this:

<nowPlaying deviceID="xxxxxxx" source="PRODUCT" sourceAccount="TV">
  <ContentItem source="PRODUCT" sourceAccount="TV" isPresetable="false"/>
  <art artImageStatus="SHOW_DEFAULT_IMAGE"/>
  <playStatus>PLAY_STATE</playStatus>
</nowPlaying>

Paste a copy of that back to me in a reply - I’m looking to see what you have for the source= and sourceAccount= values. You will need to specify the values for those in the media_player.select_source service.

btw, here is a list of my ST300 sources to compare:

<sources deviceID="xxxxxxxxx">
<sourceItem source="AIRPLAY" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="false" multiroomallowed="false">xxxxx</sourceItem>
<sourceItem source="QPLAY" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="true" multiroomallowed="true">xxxxx</sourceItem>
<sourceItem source="QPLAY" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="true" multiroomallowed="true">xxxxxx</sourceItem>
<sourceItem source="BLUETOOTH" status="UNAVAILABLE" isLocal="true" multiroomallowed="true"/>
<sourceItem source="UPNP" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="false" multiroomallowed="true">xxxxx</sourceItem>
<sourceItem source="STORED_MUSIC_MEDIA_RENDERER" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="false" multiroomallowed="true">xxxxx</sourceItem>
<sourceItem source="PRODUCT" sourceAccount="HDMI_1" status="UNAVAILABLE" isLocal="true" multiroomallowed="true">HDMI_1</sourceItem>
<sourceItem source="NOTIFICATION" status="UNAVAILABLE" isLocal="false" multiroomallowed="true"/>
<sourceItem source="PRODUCT" sourceAccount="TV" status="READY" isLocal="true" multiroomallowed="true">TV</sourceItem>
<sourceItem source="SPOTIFY" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="false" multiroomallowed="true">xxxxx</sourceItem>
<sourceItem source="SPOTIFY" sourceAccount="xxxxx" status="UNAVAILABLE" isLocal="false" multiroomallowed="true">xxxxx</sourceItem>
<sourceItem source="TUNEIN" status="READY" isLocal="false" multiroomallowed="true"/>
<sourceItem source="LOCAL_INTERNET_RADIO" status="READY" isLocal="false" multiroomallowed="true"/>
<sourceItem source="ALEXA" status="READY" isLocal="false" multiroomallowed="true"/>
<sourceItem source="STORED_MUSIC" sourceAccount="xxxxxxx/0" status="READY" isLocal="false" multiroomallowed="true">Hue Bridge (x.x.x.x)</sourceItem>
</sources>

Notice that I have 2 “PRODUCT” sources - “TV” and “HDMI_1”. One is for the direct connection to the TV, the other is for an HDMI input. It’s odd though, as I do not see any “PRODUCT” sources in your list.

Also, you should be able to switch to your Spotify account using the select_source service call as well. You blurred out the sourceAccount value (and rightly so in a public forum) so I cannot tell you what to put exactly, but it will look something like this:

service: media_player.select_source
data:
  source: SPOTIFY:<your spotify sourceAccount value from sources>
target:
  entity_id: media_player.trash_2

I also created an “official announcement” of the new SoundTouchPlus component, for future readers of this thread …

I just developed a new SoundTouchPlus custom component if you’re interested. It can easily be installed via HACS as well. More information can be found in this forum post.

Switching to Spotify worked by following your guide.

Regarding the TV source, this is what I have when switched manually to TV in http://x.x.x.x:8090/now_playing

<nowPlaying deviceID="xxxxxxxxxx" source="LOCAL">
<ContentItem source="LOCAL" isPresetable="true"/>
</nowPlaying>

it is interesting as it is not even listed on my sources list :confused:

When I tried to modify the service call to call for LOCAL the speaker changed to Soundtouch mode.

So did that do what you needed then? It sounds like it’s still not working maybe. To be clear, did you generate the nowPlaying output when the ST-520 was playing content? or maybe when the input was idle (e.g. selected, but not playing any sound)?

Assuming your nowPlaying output was generated while the TV was playing sound, all you should need is this:

service: media_player.select_source
data:
  source: LOCAL
target:
  entity_id: media_player.trash_2

or maybe …

service: media_player.select_source
data:
  source: LOCAL:LOCAL
target:
  entity_id: media_player.trash_2

Yes. the nowPlaying output was generated when the speakers were in TV mode and playing the TV sound.

I have tried both calls but the result is as I’ve described: the speakers go to Soundtouch mode instead of the desired TV source :confused:

OK … I wonder if it has something to do with ARC or HDMI CEC control. How do you have your TV hooked up to the ST-520; e.g. what input on the ST-520 is the TV plugged into? And are you using any optical, coaxial or analog stereo audio cables? or just a single HDMI cable?

Also, what button(s) do you press on the ST-520 remote control to switch the input? There may be a possibility to call the remote_keypress service to select the correct input. Something like this, changing the key_id value from AUX_INPUT to your key id maybe:

service: soundtouchplus.remote_keypress
data:
  key_id: AUX_INPUT
  entity_id: media_player.trash_2

Sorry for all the questions - just trying to completely understand your setup.

Please do ask as much as it’s needed. I will try my best to provide the information to help me as well as other users who also might have called their speakers trash out of frustration with this topic haha :grinning:

I have the Tv connected via single HDMI cable. The input name (physical print) in the Bose system is “TV” and at the TV’s side it is the ARC HDMI output. I have CEC enabled so the speakers turn on when the TV is on and vice versa. However, if the Soundtouch mode is already playing for example spotify or any other source is selected, when the TV is turned on, the sound source on the speakers will not change to TV on the speakers automatically.

That’s why I have to press “TV” button on the remote to be able to use the TV.

On a separate note, having ability to press remote buttons from HA would be amazing as the home theatre speakers that are supposed to be behind you - I am using them to have audio in other areas of the long room where the speakers are located. I achieved that by setting the Surround value with the remote to max, and then I have music in the whole room. When I’m watching TV though, I would prefer to have the surround mode back to normal setting as it creates a lot of unwanted reverberance. It’s of course too much of a hassle to change it each time with the physical remote, but if I had an option for that through HA it would be amazing.

Sorry for a long post.

I think the next thing to try would be to “Enable debug logging” under the soundtouchplus integration settings (http://homeassistantvm:8123/config/integrations/integration/soundtouchplus). Click the “Enable debug logging” to start logging. While it is logging, select the Spotify source to play a few seconds of a song, then switch the source back to TV to play a few seconds of audio from the TV. It’s critical for the logging output to change the source completely, so that it logs the differences. After that, you can click on the “Enable debug logging” to stop logging. When you do this, Home Assistant should prompt you to save the logging output file.

Save the file to your local computer and open it up to take a look at the contents. I need to see what all of the NowPlayingStatus: source= lines say, specifically the ones for the actual source change.
For example, here is some debug log entries from my ST-300:

2023-10-30 13:08:34.827 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] SoundTouchClient configuration object: 'NowPlayingStatus: source="PRODUCT" playStatus="PLAY_STATE" ContentItem: source="PRODUCT" sourceAccount="TV" isPresetable="false" favoriteEnabled="false"'
2023-10-30 13:08:35.077 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] SoundTouchClient configuration object: 'NowPlayingStatus: source="PRODUCT" playStatus="PLAY_STATE" ContentItem: source="PRODUCT" sourceAccount="TV" isPresetable="false" favoriteEnabled="false"'
2023-10-30 13:08:55.776 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] SoundTouchClient configuration object: 'NowPlayingStatus: source="STANDBY" ContentItem: source="STANDBY" isPresetable="false" favoriteEnabled="false"'
2023-10-30 13:08:55.898 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] SoundTouchClient configuration object: 'NowPlayingStatus: source="STANDBY" ContentItem: source="STANDBY" isPresetable="false" favoriteEnabled="false"'

What I am looking for is how the source= and sourceAccount= values change.

image

I tried a few times, once I even logged for a few minutes but seems like there is no change

2023-10-31 10:35:49.409 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:35:49.409 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:49.409 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:49.409 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:52.517 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:35:52.517 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:52.517 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:52.517 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:54.568 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:35:54.568 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:54.568 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:54.568 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:54.740 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:35:54.740 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:54.740 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:35:54.740 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.615 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:36:19.615 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.615 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.615 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.673 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:36:19.673 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.673 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.673 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.698 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:36:19.698 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.698 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:36:19.698 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.171 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:02.171 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.171 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.171 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.655 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:02.655 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.655 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.655 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.969 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:02.969 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.969 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:02.969 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.223 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:03.223 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.223 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.223 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.491 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:03.491 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.491 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.491 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.731 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:03.731 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.731 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.731 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.782 DEBUG (SoundTouchWSNotifyThread) [custom_components.soundtouchplus.media_player] 'Trash': update method
2023-10-31 10:37:03.782 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting NowPlayingStatus configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.782 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Volume configuration for SoundTouch device: 'Trash'
2023-10-31 10:37:03.782 DEBUG (SoundTouchWSNotifyThread) [bosesoundtouchapi.soundtouchclient] Getting Zone configuration for SoundTouch device: 'Trash'

That’s really odd - it almost seems like the ST-520 does not support websocket notifications, as all I am seeing in the file is the ‘update’ polling output.

Can you issue the following command from a web browser to check the device capabilities:
http://x.x.x.x:8090/capabilities

From that output, do you see a wsapiproxy= value? something like this:
<wsapiproxy>true</wsapiproxy>

When looking at your media player in Home Assistant UI that is associated with the SoundTouchPlus device, do you see the volume slider move when you turn the volume up or down using the ST-520 remote?

The answer is yes to both.

I do see wsaproxy being true and the slider adjusts as I change the volume with the remote

Ok, so that tells me that you are receiving updates from the ST-520 to the integration (e.g. HA media player volume sliders move when you press volume up on the remote, wsapiproxy=true, etc). If that is the case, then you should be receiving NowPlaying updates as well.

Prior to doing any further debugging, go ahead and update to the latest version of the SoundTouchPlus component (v1.0.4). To do this, click on “Settings” menu. You should see an entry at the top that says an update is available for SoundTouchPlus integration. If not, try uninstalling the SoundTouchPlus, then reinstall it from HACS. You will need to restart HA after the SoundTouchPlus update as well.

To confirm, do you have the SoundTouchPlus player mapped to a mini-media player on a UI dashboard? If not, you might want to define a temp dashboard that uses the media-player. Here’s some YAML for that if you need it:

type: entities
entities:
  - type: custom:mini-media-player
    group: true
    entity: media_player.trash_2
    toggle_power: false
    artwork: full-cover
    artwork_border: true
    power_color: true
    show_source: true
    expanded: true
    speaker_group:
      platform: media_player
      sync_volume: true
      show_group_count: true
      icon: mdi:link
      entities:
        - entity_id: media_player.bose_soundtouch_300
          name: Link HearthRoom ST 300
state_color: true

Once that is done, do the following:

  1. enable logging for the SoundTouchPlus component.
  2. restart Home Assistant and wait for it to fully start up.
  3. switch the source on the ST-520 to play any other source besides your TV, and let it play for a couple of minutes.
  4. press the volume up and down buttons on the ST-520 remote, and see if the volume slider moves on the HA UI dashboard media player that references the SoundTouchPlus integration.
  5. switch the source on the ST-520 to your TV and let it play for a couple of minutes.
  6. switch the source on the ST-520 to play any other source besides your TV, and let it play for a couple of minutes.
  7. disable logging for the SoundTouchPlus component, and download the log file to your computer.

If you don’t mind, PM me the log file so I can take a look at it.
If you don’t want to do that I understand as it may contain personal info; in that case, view the log file and search for all lines that contain “ContentItem:”. Those entries have to be showing up in the log somewhere that show the source and sourceAccount values that are changing.

If this doesn’t work, then the next ask would be for a SmartInspect debug log file. This would involve adding a “smartinspect.cfg” file to your config folder and performing the above steps again. It generates more detailed information than the HA logger. But let’s try the above first.

Thanks for your patience; debugging remotely is tough, but hopefully we can get it figured out.

Hi @ jakubsz123 - just checking in to see where we are at on the ST-520 source switching issue. Please let me know when you get a chance.
Thanks.