I have developed a new SoundTouchPlus
Home Assistant custom component integration that hopefully breathes new life into Bose SoundTouch speaker support. I finally got tired of libsoundtouch not being supported, so decided to write an integration that can be distributed via HACS. Since it’s a new integration name (e.g. SoundTouchPlus
) it won’t interfere with the built-in SoundTouch
integration setup. It’s a simple install to the “custom_components” directory via a HACS UI custom repository installer.
The following Home Assistant media_player Platform services are supplied by this integration.
- BROWSE_MEDIA
- GROUPING
- NEXT_TRACK
- PAUSE
- PLAY
- PLAY_MEDIA
- PREVIOUS_TRACK
- REPEAT_SET
- SELECT_SOURCE
- SHUFFLE_SET
- STOP
- TURN_OFF
- TURN_ON
- VOLUME_MUTE
- VOLUME_SET
- VOLUME_STEP
The following custom services are supplied by this integration - more information and YAML examples can be found on my GitHub Project Wiki, Services Provided page:
- Play Handoff: Handoff playing source from one SoundTouch device to another.
- Play TTS Message: Play Text-To-Speech notification on a SoundTouch device. Note that this is limited to ST10,20,30 devices, as Bose ST300 does not support notifications (AFAIK).
- Get Preset List: Retrieves the list of presets defined to the device.
- Get Recent List: Retrieves the list of recently played items defined to the device.
- Remote Keypress: Simulates the press and release of a key on the SoundTouch device remote control.
- Snapshot Restore: Restore SoundTouch device settings from a snapshot.
- Snapshot Store: Store SoundTouch device settings to a snapshot.
I also developed the underlying bosesoundtouchapi
Python 3 library, which packs quite a few new features that libsoundtouch does not provide. To give credit where credit is due, portions of the code and the overall “flow” were taken from contributions made by MatrixEditor. My original intent was to fork his repository and add some changes, but there were just too many and I wanted to change some things that would have broken backward compatibility with his code so I continued with my own repository. Almost every method is documented with sample code; just click on the “Sample Code” links under the method, and use the “Copy to Clipboard” functionality to copy / paste. Check out the SoundTouchClient
class to get you started.
What Bose Speakers are Supported?
Any Bose SoundTouch line of speaker that support the SoundTouch Webservices API should be supported. These include the ST-10, ST-20, ST-30, ST-300, ST-520, etc. I have only tested with the ST-10 and ST-300 products (what can I say; Bose products are expensive, and I can only afford the two! :D), but other SoundTouch devices should be compatible.
Note that the newer line of Bose Speakers (Home Speaker 500, 700, etc) are NOT supported as they are not of the SoundTouch product line and do not utilize the Bose WebServices API for control.
I should also note that there are some features in the bosesoundtouchapi
that are only supported for certain SoundTouch devices. For example, the “Notification” service (e.g. PlayNotificationTTS
) is only supported by the the ST-10,20,30 and not the ST-300 product.
Please let me know if you run into any issues.
More Information Links
- SoundTouchPlus GitHub Project Wiki Home
- SoundTouchPlus GitHub Project Wiki Media Player Service Enhancements
- SoundTouchPlus GitHub Project Wiki Services Provided
- SoundTouchPlus HACS Custom Repository
- BoseSoundTouchApi Python 3 Library
- BoseSoundTouchApi Python 3 Library documentation (readthedocs.io)
- Bose SoundTouch WebServices API Reference (my notes)
HACS Install Instructions
- go to HACS main menu.
- click on the 3-dot “overflow menu” in the upper right, and select “custom repositories” item.
- copy / paste
https://github.com/thlucas1/homeassistantcomponent_soundtouchplus
in the Repository textbox and selectIntegration
for the category entry. - click on “Add” to add the custom repository.
- you can then click on the SoundTouchPlus repository entry (you may need to filter your list first to find the new entry).
- click on “download” to start the download. It will install the soundtouchplus integration to your config/custom_components directory.
- restart HA to start using the component.
I submitted the branding icons to the HACS branding repository and they were just approved, so the integration should show the custom component icons soon (same icons as soundtouch
integration).
PyPi Install Instructions
Use the following to install just the Python 3 library if you wish:
$ python3 -m pip install bosesoundtouchapi