Skip to content

Services Provided

Todd Lucas edited this page May 18, 2024 · 26 revisions

The following custom services are provided by this integration.

Index

Adjust Audio Tone Levels

Adjusts the Bass and Treble values for SoundTouch devices that support the /audioproducttonecontrols feature. This allows both the bass and treble values to be adjusted.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose audio tone levels will be adjusted.
  • bass_level - The bass level to set; range is -100 to +100.
  • treble_level - The treble level to set; range is -100 to +100.

Example YAML

service: soundtouchplus.audio_tone_levels
data:
  entity_id: media_player.soundtouch_livingroom
  bass_level: 50
  treble_level: 50

Clear Source NowPlayingStatus

Clears the NowPlayingStatus object for a given source and sourceAccount.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouchPlus device that will process the request.
  • source - Source input this content item is played with (case-sensitive).
  • source_account - Source account this content item is played with (case-sensitive).

Example YAML

service: soundtouchplus.clear_source_nowplayingstatus
data:
  entity_id: media_player.soundtouch_livingroom
  source: PRODUCT
  source_account: TV

Get Music Station List

Retrieves a list of your stored stations from the specified music service (e.g. PANDORA, etc).

The returned list is sorted by stationName ascending by default. You can also sort by dateCreated.

For PANDORA source, the first station returned is always the Shuffle station entry.

This service will return service response data.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose recently played list will be retrieved.
  • source - Music service source to navigate (e.g. 'PANDORA', etc); the value is case-sensitive, and should normally be UPPER case.
  • source_account - Music service source account (e.g. the music service user-id). Default is none.
  • sort_type - Sort type used by the Music Service to sort the returned items by ('dateCreated', 'stationName'); the value is case-sensitive.

Example YAML

service: soundtouchplus.musicservice_station_list
data:
  entity_id: media_player.bose_st10_1
  source: PANDORA
  source_account: youruseridvalue
  sort_type: stationName

Example Response

items:
  "@totalItems": "18"
  "@itemCount": "18"
  "@SourceTitle": Pandora (youruseridvalue)
  item:
    - name: Shuffle
      type: station
      logo: https://www.pandora.com/img/shuffle_art_500W_500H.png
      token: "78324812463748620"
      ContentItem:
        "@source": PANDORA
        "@location": "78324812463748620"
        "@sourceAccount": youruseridvalue
        "@isPresetable": "true"
        itemName: Shuffle
        containerArt: https://www.pandora.com/img/shuffle_art_500W_500H.png
    - name: Big Daddy Weave Radio
      type: station
      logo: >-
        https://content-images.p-cdn.com/images/fa/2b/4f/a2/c1fa4f2c99b15e3f0cd1531c/_500W_500H.jpg
      token: "132210777829423505"
      ContentItem:
        "@source": PANDORA
        "@location": "132210777829423505"
        "@sourceAccount": youruseridvalue
        "@isPresetable": "true"
        itemName: Big Daddy Weave Radio
        containerArt: >-
          https://content-images.p-cdn.com/images/fa/2b/4f/a2/c1fa4f2c99b15e3f0cd1531c/_500W_500H.jpg
    - name: Chris Tomlin Radio
      type: station
      logo: >-
        https://content-images.p-cdn.com/images/1b/c4/8c/ad/fc73402e84ab420c547570d7/_500W_500H.jpg
      token: "134448283991947609"
      ContentItem:
        "@source": PANDORA
        "@location": "134448283991947609"
        "@sourceAccount": youruseridvalue
        "@isPresetable": "true"
        itemName: Chris Tomlin Radio
        containerArt: >-
          https://content-images.p-cdn.com/images/1b/c4/8c/ad/fc73402e84ab420c547570d7/_500W_500H.jpg
...          

Get Preset List

Retrieves the list of presets defined to the device. The SoundTouch App limits preset storage to 6 items.

The returned list is sorted by @id ascending.

This service will return service response data.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose preset list will be retrieved.
  • include_empty_slots - True (default) to include ALL preset slots (both empty and set); otherwise, False to only include preset slots that have been set.

Example YAML

service: soundtouchplus.preset_list
data:
  entity_id: media_player.soundtouch_livingroom
  include_empty_slots: true

Example Response

presets:
  preset:
    - "@id": "1"
      "@SourceTitle": Tunein
      ContentItem:
        "@source": TUNEIN
        "@type": stationurl
        "@location": /v1/playback/station/s33828
        "@isPresetable": "true"
        itemName: K-LOVE Radio
        containerArt: >-
          http://cdn-profiles.tunein.com/s33828/images/logog.png?t=637986894890000000
    - "@id": "2"
      ContentItem:
        itemName: empty preset
    - "@id": "3"
    ...      

Get Recent List

Retrieves the list of recently played items defined to the device.

The returned list is sorted by @createdOn date descending.

This service will return service response data.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose recently played list will be retrieved.

Example YAML

service: soundtouchplus.recent_list
data:
  entity_id: media_player.soundtouch_livingroom

Example Response

recents:
  recent:
    - "@id": "2482521126"
      "@createdOn": "1700942079"
      "@SourceTitle": Tunein
      ContentItem:
        "@source": TUNEIN
        "@type": stationurl
        "@location": /v1/playback/station/s309605
        "@isPresetable": "true"
        itemName: My Copy K-Love 90s
        containerArt: >-
          http://cdn-profiles.tunein.com/s309605/images/logog.png?t=637986891960000000
    - "@id": "2482862902"
      "@createdOn": "1700941687"
      "@SourceTitle": Tunein
      ContentItem:
        "@source": TUNEIN
        "@type": stationurl
        "@location": /v1/playback/station/s33828
        "@isPresetable": "true"
        itemName: K-LOVE Radio
        containerArt: >-
          http://cdn-profiles.tunein.com/s33828/images/logog.png?t=637986894890000000
...          

Get Recent List Cache

Retrieves the cached list of recently played items that are stored on the file system.

This feature overcomes the issue with the device recent list processing where the cover art url's are removed from the list. Note that the cached recent list could be different than the device recent list, as the cache is a function of the underlying BoseSoundTouchApi and NOT the physical SoundTouch device; e.g. items played on the device outside of this API will not be stored in the cache.

The cache is stored to the local file system each time an item is added to the cache. The file is located in the Home Assistant configuration directory structure, specifically in the /config/www/soundtouchplus/recently_played_cache_<DEVICE_ID>.xml location, where DEVICE_ID is the SoundTouch device identifier (e.g. recently_played_cache_9070658C9D4A.xml).

The maximum number of items to keep in the cache is configured in the SoundTouchPlus device configuration options. Older items are automatically removed from the cache once the maximum number of items has been reached.

The returned list is sorted by @createdOn date descending.

This service will return service response data.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose recently played list cache will be retrieved.

Example YAML

service: soundtouchplus.recent_list_cache
data:
  entity_id: media_player.soundtouch_livingroom

Example Response

recents:
  recent:
    - "@id": "2482521126"
      "@createdOn": "1700942079"
      "@SourceTitle": Tunein
      ContentItem:
        "@source": TUNEIN
        "@type": stationurl
        "@location": /v1/playback/station/s309605
        "@isPresetable": "true"
        itemName: My Copy K-Love 90s
        containerArt: >-
          http://cdn-profiles.tunein.com/s309605/images/logog.png?t=637986891960000000
    - "@id": "2482862902"
      "@createdOn": "1700941687"
      "@SourceTitle": Tunein
      ContentItem:
        "@source": TUNEIN
        "@type": stationurl
        "@location": /v1/playback/station/s33828
        "@isPresetable": "true"
        itemName: K-LOVE Radio
        containerArt: >-
          http://cdn-profiles.tunein.com/s33828/images/logog.png?t=637986894890000000
...          

Play Content Item

Play media content from a content item source (e.g. TUNEIN station, etc) on a SoundTouch device.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device that is currently playing.
  • name - Name of the content item.
  • source - Source to select to play the content; the value is case-sensitive, and should normally be UPPER case.
  • source_account - (optional )Source account this content item is played with. Default is none.
  • item_type - Type of content item to play; the value is case-sensitive, and should normally be lower case.
  • location - A direct link to the media content that will be played. This value should be enclosed in single quotes, as Home Assistant sometimes will try to interpret it as an integer if it's all numeric.
  • container_art - A direct link to the container art (if present).
  • is_presetable - true if this item can be saved as a Preset; otherwise, false.

Example YAML - DLNA

# play dlna local music content.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.soundtouch_10
  name: Welcome to the New
  source: LOCAL_MUSIC
  source_account: 3f205110-4a57-4e91-810a-ad949d25abb2
  item_type: album
  location: 'album:983'
  container_art: http://192.168.1.1:8085/v1/albums/983/image?_=1&amp;w=62
  is_presetable: true

Example YAML - NAS

# play music library on NAS content.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.soundtouch_10
  name: Welcome to the New
  source: STORED_MUSIC
  source_account: 'd09708a1-5953-44bc-a413-123456789012/0'
  location: '7_11412345'
  container_art: http://192.168.1.1:10243/WMPNSSv4/2050238549/0_N18xMTRlOGRlOS00MDE5.jpg?albumArt=true
  is_presetable: true

Example YAML - Pandora

# play Pandora music service content.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.soundtouch_10
  name: Zach Williams
  source: PANDORA
  source_account: yourPandoraUserId
  location: '126740707481236361'
  container_art: https://content-images.p-cdn.com/images/8b/a1/c6/4f/b1984bf7881e1e207790968b/_500W_500H.jpg
  is_presetable: true

Example YAML - Spotify

Note that a Premium-level membership is required in order to play Spotify content.

I prefer playing Spotify content using the uri item type, as the location values appear to match what you see in the Spotify.com web-site url when playing content. For example, take a link from spotify.com such as https://open.spotify.com/album/6vc9OTcyd3hyzabCmsdnwE - the uri value to play the same content would be spotify:album:6vc9OTcyd3hyzabCmsdnwE. It seems to apply for all of the different content types (e.g. album, artist, track, playlist, episode, show, etc).

With that said, you can also play Spotify content using the tracklisturl item type, and specifying the container url (e.g. "/playback/container/c3BvdGlmeTphcnRpc3Q6NkFQbThFanhPSFNZTTVCNGkzdlQzcQ==") in the location value. The tracklisturl item type is what shows in the \nowPlaying service status under the ContentItem parameters.

# play Spotify music service content - artist.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: MercyMe
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: 'spotify:artist:6APm8EjxOHSYM5B4i3vT3q'
  item_type: uri
  container_art: https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b
  is_presetable: true
# play Spotify music service content - artist (by tracklisturl type).
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: MercyMe
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: '/playback/container/c3BvdGlmeTphcnRpc3Q6NkFQbThFanhPSFNZTTVCNGkzdlQzcQ=='
  item_type: tracklisturl
  container_art: https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b
  is_presetable: true
# play Spotify music service content - album.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: Welcome to the New
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: 'spotify:album:6vc9OTcyd3hyzabCmsdnwE'
  item_type: uri
  container_art: https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b
  is_presetable: true
# play Spotify music service content - track.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: Flawless
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: 'spotify:track:1kWUud3vY5ij5r62zxpTRy'
  item_type: uri
  container_art: https://i.scdn.co/image/ab67616d0000b2734e3dd900c3352f0ad34fbdd7
  is_presetable: true
# play Spotify music service content - playlist.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: Worship Playlist
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: 'spotify:playlist:5v5ETK9WFXAnGQ3MRubKuE'
  item_type: uri
  container_art: https://i.scdn.co/image/ab67706c0000da84820d2514932c9e2ea40f6473
  is_presetable: true
# play Spotify music service content - episode.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: We Can Do Hard Things
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: 'spotify:episode:3tWDribcG7X5Q6KBx8xupp'
  item_type: uri
  container_art: https://i.scdn.co/image/ab6765630000ba8a31936fcc7887c8a10ba9af9d
  is_presetable: true
# play Spotify music service content - podcast, audiobook.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.bose_st10_1
  name: K-Love On The Mic
  source: SPOTIFY
  source_account: yourSpotifyUserId
  location: 'spotify:show:39EidgdUzHLZ1Wab01NiGk'
  item_type: uri
  container_art: https://i.scdn.co/image/206f1a5d5e27e9516a5c0cdb06ee3ae079a78ac9
  is_presetable: true

Example YAML - TuneIn

# play tunein radio station content.
service: soundtouchplus.play_contentitem
data:
  entity_id: media_player.soundtouch_10
  name: K-LOVE Radio
  source: TUNEIN
  item_type: stationurl
  location: '/v1/playback/station/s33828'
  container_art: http://cdn-profiles.tunein.com/s33828/images/logog.png?t=637986894890000000
  is_presetable: false

Play Handoff

Handoff playing source from one SoundTouch device to another.

Parameters

All parameters are required unless otherwise noted.

  • entity_id_from - Entity ID of the SoundTouch device that is currently playing.
  • entity_id_to - Entity ID of the SoundTouch device that needs to play what the 'from' device is currently playing.
  • restore_volume - True to handoff the FROM device volume level to the TO device; False (default) to leave the TO device volume level as-is.
  • snapshot_only - True to only handoff the snapshot and not trigger the restore and power off; False (default) to handoff the snapshot, restore it, and power off the FROM device.

Example YAML

service: soundtouchplus.play_handoff
data:
  entity_id_from: media_player.soundtouch_livingroom
  entity_id_to: media_player.soundtouch_bedroom
  restore_volume: true
  snapshot_only: true

Play TTS Message

Play Text-To-Speech notification on a SoundTouch device. Note that this is limited to ST-10,20,30 devices, as Bose ST-300 does not support notifications (AFAIK).

The default service to use is Google Translate, with an american translation language.

There are models of Bose SoundTouch speakers that do not support notifications. Only the Bose SoundTouch 10, 20, and 30 in the III series support notifications, as far as I know. I could not get this to work on my SoundTouch 300, but it did work on my ST 10.

The notification message is played at the level specified by the volume_level argument. Specify a volume_level of zero to play the notification at the current volume level. The volume level is restored to the level it was before the notification message was played after the notification is complete; e.g. if you made changes to the volume while the notification is playing then they are changed back to the volume level that was in effect prior to playing the notification. The SoundTouch device automatically takes care of the volume level switching; there are no calls in the method to change the volume or currently playing content status. The SoundTouch device also limits the volume range between 10 (min) and 70 (max); this is a Bose limitation, and is not imposed by this API.

The currently playing content (if any) is paused while the notification message content is played, and then resumed once the notification ends.

If the device is the master controller of a zone, then the notification message will be played on all devices that are members of the zone.

A small delay can be inserted at the start of the message by prefixing the message argument value with "a.". Example: "a.This is a test message". It's not a perfect solution, but works for me since my SoundTouch speaker takes a second or two to switch into active mode, and the first second of the played message is lost.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device to play the message.
  • message - The message that will be converted from text to speech and played on the device.
  • artist - (optional) The message text that will appear in the NowPlaying Artist node; if omitted, default is "TTS Notification".
  • album - (optional) The message text that will appear in the NowPlaying Album node; if omitted, default is "Google TTS".
  • track - (optional) The message text that will appear in the NowPlaying Track node; if omitted, default is the message value.
  • tts_url - (optional) The Text-To-Speech url used to translate the message. The value should contain a "{saytext}" format parameter, that will be used to insert the encoded message text.
    default: `http://translate.google.com/translate_tts?ie=UTF-8&tl=EN&client=tw-ob&q={saytext}``
  • volume_level - (optional) The temporary volume level that will be used when the message is played. Specify a value of zero to play at the current volume. Default is zero, range is 0 to 100.
  • app_key - (optional) Bose Developer API application key; if omitted, defaults to a pre-defined App Developer Key.

Example YAML

# play message using default english voice.
service: soundtouchplus.play_tts
data:
  entity_id: media_player.soundtouch_livingroom
  message: Hello World, How are you today?
  volume_level: 50
# play message using dutch voice.
service: soundtouchplus.play_tts
data:
  entity_id: media_player.soundtouch_livingroom
  message: Hello World, How are you today?
  tts_url: >-
    http://translate.google.com/translate_tts?ie=UTF-8&tl=DE&client=tw-ob&q={saytext}
  volume_level: 50
# play message using custom status messages.
service: soundtouchplus.play_tts
data:
  entity_id: media_player.soundtouch_livingroom
  message: There is someone at the front door.
  artist: Camera Alert
  album: Motion Detected
  track: Front Door
  volume_level: 75

Play URL Media

Play media content from a URL on a SoundTouch device.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device to play the media.
  • url - The url to play; value must start with http or https.
  • artist - (optional) The message text that will appear in the NowPlaying Artist node; if omitted, default is "Unknown Artist".
  • album - (optional) The message text that will appear in the NowPlaying Album node; if omitted, default is "Unknown Album".
  • track - (optional) The message text that will appear in the NowPlaying Track node; if omitted, default is "Unknown Track".
  • volume_level - (optional) The temporary volume level that will be used when the media is played. Specify a value of zero to play at the current volume. Default is zero, range is 0 - 100.
  • app_key - (optional) Bose Developer API application key; if omitted, defaults to a pre-defined App Developer Key.
  • get_metadata_from_url_file - (optional) If True, the artist, album, and song title metadata details will be retrieved from the ID3 header of the url content (if available); otherwise, False to use the artist, album, and song title arguments specified.

Example YAML

# play the given https url at the current volume level.
service: soundtouchplus.play_url
data:
  entity_id: media_player.soundtouch_livingroom
  url: >-
    https://freetestdata.com/wp-content/uploads/2021/09/Free_Test_Data_1MB_MP3.mp3
  artist: FreeTestData.com
  album: MP3 Test Data
  track: Free_Test_Data_1MB_MP3
  volume_level: 0
# play the given http url at the current volume level.
service: soundtouchplus.play_url
data:
  entity_id: media_player.soundtouch_livingroom
  url: >-
    http://www.hyperion-records.co.uk/audiotest/14%20Clementi%20Piano%20Sonata%20in%20D%20major,%20Op%2025%20No%206%20-%20Movement%202%20Un%20poco%20andante.MP3
  artist: Clementi
  album: Movements Album
  track: Piano Sonata in D major
  volume_level: 0
# play the given url, retrieving metadata (artist,album,track) from the url content.
service: soundtouchplus.play_url
data:
  entity_id: media_player.soundtouch_livingroom
  url: >-
    http://homeassistant.local:8123/media/local/06%20Flawless.mp3?authSig=xxxx
  volume_level: 0
  get_metadata_from_url_file: true

Reboot Device

Reboots the operating system of the SoundTouch device.

This service will open a telnet connection to the SoundTouch SSH server running on the device (port 17000). It will then issue a sys reboot command to reboot the device. The telnet session will fail if any other process has a telnet session open to the device; this is a SoundTouch device limitation, as only one SSH session is allowed per device.

If successful, all communication with the device will be lost while the device is rebooting. SoundTouch web-services API connectivity should be restored within 45 - 60 seconds if the reboot is successful.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device to be controlled.
  • port - SSH port to connect to; default is 17000.

Example YAML

# reboot the speaker.
service: soundtouchplus.reboot_device
data:
  entity_id: media_player.soundtouch_10

Remote Keypress

Simulates the press and release of a key on the SoundTouch device remote control.

Note that some keys on the SoundTouch remote control are not sent to the SoundTouch device, and therefore are not supported by this service.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device to be controlled.
  • key_id - SoundTouch remote control key identifier.
  • key_state - SoundTouch remote control key state. Most key identifiers will use 'both' for state; the 'PRESET_n' key identifiers use 'press' to store a preset, and 'release' to select (or play) a preset.

Example YAML

# press the mute button.
service: soundtouchplus.remote_keypress
data:
  entity_id: media_player.soundtouch_10
  key_id: MUTE
  key_state: press
# press and release the power button.
service: soundtouchplus.remote_keypress
data:
  entity_id: media_player.soundtouch_10
  key_id: POWER
  key_state: both
# press preset 2 button to store the currently playing content as preset slot 2.
service: soundtouchplus.remote_keypress
data:
  entity_id: media_player.soundtouch_10
  key_id: PRESET_2
  key_state: press
# release preset 2 button to play stored preset slot 2 content.
service: soundtouchplus.remote_keypress
data:
  entity_id: media_player.soundtouch_10
  key_id: PRESET_2
  key_state: release

Snapshot Restore

Restore SoundTouch device settings from a snapshot.

Restores selected portions of the configuration from a snapshot that was previously taken with the Snapshot Store service.

The following settings will be restored from the snapshot:

  • nowPlaying - playing content.
  • volume - volume level and mute status.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose settings will be restored from a snapshot.
  • restore_volume - Indicates if the volume also needs to be restored (True, default) or not (False).

Example YAML

# restore snapshot data, including volume level.
service: soundtouchplus.snapshot_restore
data:
  entity_id: media_player.soundtouch_livingroom
  restore_volume: true
# restore snapshot data; do not restore volume level.
service: soundtouchplus.snapshot_restore
data:
  entity_id: media_player.soundtouch_livingroom
  restore_volume: false

Snapshot Store

Store SoundTouch device settings to a snapshot.

Stores selected portions of the configuration so that they can be easily restored with the Restore Snapshot service.

The following settings will be stored in the snapshot:

  • nowPlaying - playing content.
  • volume - volume level and mute status.

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouch device whose settings will be stored to a snapshot.

Example YAML

# store snapshot data.
service: soundtouchplus.snapshot_store
data:
  entity_id: media_player.soundtouch_livingroom

Update Source NowPlayingStatus

Updates the NowPlayingStatus object for a given source and sourceAccount.

Use this service to update a NowPlayingStatus for a specific source, which can be used by external entities that want to keep track of sources that are currently playing on the SoundTouch device. For example, you could have a Home Assistant media player playing TV content from Kodi media center on the SoundTouch and it could keep track of what is currently playing for a source that the SoundTouch API does not track (e.g. PRODUCT:TV).

Parameters

All parameters are required unless otherwise noted.

  • entity_id - Entity ID of the SoundTouchPlus device that will process the request.
  • source - Source input this content item is played with (case-sensitive).
  • source_account - Source account this content item is played with (case-sensitive).
  • album - (optional) The album of the playing track (if present).
  • artist - (optional) The creator of the track (if present).
  • artist_id - (optional) Unique identifier of the artist, as provided by the source music service (if present).
  • art_url - (optional) A url link to the art image of the station (if present).
  • description - (optional) A brief description that was added to the track (if present).
  • duration - (optional) The track's duration (if present).
  • genre - (optional) The genre of the track (if present).
  • play_status - (optional) Indicates whether the device is currently playing the embedded track.
  • position - (optional) The current position of the playing media (if present).
  • session_id - (optional) Unique identifier of the session, as provided by the source music service (if present).
  • station_location - (optional) The station's location.
  • station_name - (optional) The station's name (if present).
  • track - (optional) The current media track name (if present).
  • track_id - (optional) Unique identifier of the track, as provided by the source music service (if present).

Example YAML

service: soundtouchplus.update_source_nowplayingstatus
data:
  entity_id: media_player.soundtouch_livingroom
  source: PRODUCT
  source_account: TV
  art_url: "{{ state_attr('media_player.kodi_hearthroom', 'entity_picture') }}"
  artist: "{{ state_attr('media_player.kodi_hearthroom', 'media_artist') }}"
  album: "{{ state_attr('media_player.kodi_hearthroom', 'media_album_name') }}"
  track: "{{ state_attr('media_player.kodi_hearthroom', 'media_title') }}"
  station_location: Kodi Hearthroom

Example Script Kodi

The following automation will update the SoundTouchPlus media player information from Kodi media center attributes for Movie content.

alias: Kodi Hearthroom Media Player Image Assign Movie
description: >-
  Calls the SoundTouchPlus UpdateNowPlayingStatus service to update the media
  player information from Kodi media center attributes for Movie content.
trigger:
  - platform: state
    entity_id:
      - media_player.kodi_hearthroom
    attribute: media_title
condition:
  - condition: state
    entity_id: media_player.kodi_hearthroom
    attribute: media_content_type
    state: movie
  - condition: state
    entity_id: media_player.bose_hearthroom
    attribute: source
    state: "Product (TV)"
action:
  - service: soundtouchplus.update_source_nowplayingstatus
    data:
      entity_id: media_player.bose_hearthroom
      source_title: "Product (TV)"
      art_url: "{{ state_attr('media_player.kodi_hearthroom', 'entity_picture') }}"
      station_name: "{{ state_attr('media_player.kodi_hearthroom', 'media_title') }}"
      station_location: Kodi Hearthroom
mode: single

Zone Member Toggle

Toggles the given zone member to or from the master device's zone. A new zone will be created automatically if needed.

Parameters

All parameters are required unless otherwise noted.

  • entity_id_master - Entity ID of the SoundTouch device master zone.
  • entity_id_member - Entity ID of the SoundTouch device that will be toggled to or from the master zone.

Example YAML

service: soundtouchplus.zone_toggle_member
data:
  entity_id_master: media_player.bose_st10_1
  entity_id_member: media_player.bose_st10_2