This integration exposes individual Bose SoundTouch speakers as media_player entities without depending on the legacy HTTP platform. It is implemented natively for Home Assistant using an asynchronous HTTP client so it can run entirely inside the core process.
- Local HTTP control via the public SoundTouch XML API
- Power toggle, volume control and source selection
- Automatic polling via a
DataUpdateCoordinator - Zone member awareness plus built-in services for creating/joining/leaving zones
- Copy the
bose_soundtouchfolder into/config/custom_components/on your Home Assistant instance. - Restart Home Assistant so it can discover the new integration.
- Navigate to Settings → Devices & Services → Add Integration and search for Bose SoundTouch.
- Enter the hostname or IP address of your speaker and submit the form. The integration fetches the device identifier to prevent duplicates.
- The created
media_playerentity exposes power, volume and source controls directly in the UI. - Source selection relies on the SoundTouch source identifiers (for example
TUNEIN,BLUETOOTH,AUX). Provide the identifiers exactly as they appear in the Bose app or in the/sourcesresponse for reliable matching. - The integration only attempts
/selectfor sources that the speaker currently reports as selectable. If a source is known but currently unavailable, the command is skipped and only a warning is logged. - Zone automation is handled by three new services available under the
bose_soundtouchdomain:create_zone: define a master and the exact list of members that should stay in the group.join_zone: append one or more speakers to the master’s current zone without disturbing existing members.leave_zone: remove one or more speakers from the master’s zone. Each service expects entity IDs from this integration (media_player.bose_*).
- Every entity exposes attributes with the active IP address, MAC/device ID, and a JSON-style list of current zone members so automations can react to topology changes.
- Promoted the source-selection resilience fixes from
1.0.7b1to stable. - Kept
/selectreliability improvements: longer timeout and one retry for slower speaker responses. - Kept command-path error containment so transient communication issues do not crash Home Assistant scripts.
- Kept source availability pre-validation against
/sourcesbefore attempting/select.
For stable release notes, see RELEASE_NOTES_1.0.7.md.
- Added longer timeout handling and a single retry for
/selectrequests because newer Bose SoundTouch firmware can stall longer on local source switching. - Prevented transient SoundTouch communication errors from bubbling out of entity service calls and breaking Home Assistant scripts.
- Added source availability pre-validation so known but unavailable inputs are skipped before
/selectis attempted. - Built for beta validation of Bose cloud-deprecation related source-selection regressions.
For GitHub prerelease notes, see RELEASE_NOTES_1.0.7b1.md.
