Most of the configuration of the card can be done via the Card Editor UI, though there are a few options that must be configured manually. The options documented below will indicate how they can be edited (manual or UI); assume UI editing is available unless otherwise specified.
There are a few assumptions to be made when perusing this document:
- You should be familiar with how to edit (and possibly create) an HA dashboard.
- You should be familiar with how to add a new card using the UI card-picker, or how to configure a dashboard card manually via YAML.
- The [SoundTouchPlus integration](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki) is installed, configured, and up to date.
Use the following index to get to where you want to be:
* [General Options](#general-options)
* [`entity_id`](#entity_id-media-player-entity-id) Media Player Entity Id
* [`height`](#height-card-height) Card Height
* [`sections`](#sections-card-sections) Card Sections
* [`title`](#title-title-text) Title Text
* [`width`](#width-card-width) Card Width
* [Player Options](#player-section-options)
* [Header Status Area Options](#player-header-status-area-options)
* [`playerHeaderBackgroundColor`](#playerheaderbackgroundcolor-header-background-color) Header Background Color
* [`playerHeaderTitle`](#playerheadertitle-section-title) Section Title
* [`playerHeaderArtistTrack`](#playerheaderartisttrack-artist-and-track-info) Artist and Track Info
* [`playerHeaderAlbum`](#playerheaderalbum-album-name-info) Album Name Info
* [`playerHeaderNoMediaPlayingText`](#playerheadernomediaplayingtext-no-media-info) No Media Info
* [`playerHeaderHideProgressBar`](#playerheaderhideprogressbar-hide-progress-bar) Hide Progress Bar
* [`playerHeaderHide`](#playerheaderhide-hide-status-area) Hide Status Area
* [Media Controls Area Options](#player-header-media-controls-area-options)
* [`playerControlsBackgroundColor`](#playercontrolsbackgroundcolor-controls-background-color) Controls Background Color
* [`playerControlsHidePlayPause`](#playercontrolshideplaypause-hide-play-pause-control) Hide Play Pause Control
* [`playerControlsHideRepeat`](#playercontrolshiderepeat-hide-repeat-control) Hide Repeat Control
* [`playerControlsHideShuffle`](#playercontrolshideshuffle-hide-shuffle-control) Hide Shuffle Control
* [`playerControlsHideTrackNext`](#playercontrolshidetracknext-hide-next-track-control) Hide Next Track Control
* [`playerControlsHideTrackPrev`](#playercontrolshidetrackprev-hide-previous-track-control) Hide Previous Track Control
* [`playerControlsHide`](#playercontrolshide-hide-media-controls) Hide Media Controls
* [Volume Controls Area Options](#player-header-volume-controls-area-options)
* [`playerVolumeControlsHideMute`](#playervolumecontrolshidemute-hide-volume-mute-control) Hide Volume Mute Control
* [`playerVolumeControlsHidePower`](#playervolumecontrolshidepower-hide-power-control) Hide Power Control
* [`playerVolumeControlsHide`](#playervolumecontrolshide-hide-all-volume-controls) Hide All Volume Controls
* [Sources Section Options](#sources-section-options)
* [`sourceBrowserItemsHideTitle`](#sourcebrowseritemshidetitle-browser-hide-titles) Browser Hide Title
* [`sourceBrowserItemsPerRow`](#sourcebrowseritemsperrow-browser-items-per-row) Browser Items Per Row
* [`sourceBrowserSubTitle`](#sourcebrowsersubtitle-section-sub-title) Section Sub-Title
* [`sourceBrowserTitle`](#sourcebrowsertitle-section-title) Section Title
* [Device Preset Section Options](#device-preset-section-options)
* [`presetBrowserItemsHideSource`](#presetbrowseritemshidesource-media-browser-hide-source) Media Browser Hide Source
* [`presetBrowserItemsHideTitle`](#presetbrowseritemshidetitle-media-browser-hide-titles) Media Browser Hide Title
* [`presetBrowserItemsPerRow`](#presetbrowseritemsperrow-media-browser-items-per-row) Media Browser Items Per Row
* [`presetBrowserSubTitle`](#presetbrowsersubtitle-section-sub-title) Section Sub-Title
* [`presetBrowserTitle`](#presetbrowsertitle-section-title) Section Title
* [User Preset Section Options](#user-preset-section-options)
* [`userPresetBrowserItemsHideSource`](#userpresetbrowseritemshidesource-media-browser-hide-source) Media Browser Hide Source
* [`userPresetBrowserItemsHideTitle`](#userpresetbrowseritemshidetitle-media-browser-hide-titles) Media Browser Hide Title
* [`userPresetBrowserItemsPerRow`](#userpresetbrowseritemsperrow-media-browser-items-per-row) Media Browser Items Per Row
* [`userPresetBrowserSubTitle`](#userpresetbrowsersubtitle-section-sub-title) Section Sub-Title
* [`userPresetBrowserTitle`](#userpresetbrowsertitle-section-title) Section Title
* [`userPresets`](#userpresets-user-preset-content-items) User Preset Content Items
* [`userPresetsFile`](#userpresetsfile-user-preset-content-items-file) User Preset Content Items File
* [Recently Played Section Options](#recently-played-section-options)
* [`recentBrowserItemsHideSource`](#recentbrowseritemshidesource-media-browser-hide-source) Media Browser Hide Source
* [`recentBrowserItemsHideTitle`](#recentbrowseritemshidetitle-media-browser-hide-titles) Media Browser Hide Title
* [`recentBrowserItemsPerRow`](#recentbrowseritemsperrow-media-browser-items-per-row) Media Browser Items Per Row
* [`recentBrowserSubTitle`](#recentbrowsersubtitle-section-sub-title) Section Sub-Title
* [`recentBrowserTitle`](#recentbrowsertitle-section-title) Section Title
* [Pandora Options](#pandora-section-options)
* [`pandoraBrowserItemsHideTitle`](#pandorabrowseritemshidetitle-media-browser-hide-titles) Media Browser Hide Title
* [`pandoraBrowserItemsPerRow`](#pandorabrowseritemsperrow-media-browser-items-per-row) Media Browser Items Per Row
* [`pandoraBrowserSubTitle`](#pandorabrowsersubtitle-section-sub-title) Section Sub-Title
* [`pandoraBrowserTitle`](#pandorabrowsertitle-section-title) Section Title
* [`pandoraSourceAccount`](#pandorasourceaccount-section-title) Source Account
* [Manual Configuration Options](#manual-configuration-options)
* [`customImageUrls`](#customimageurls-custom-image-urls) Custom Image URL's
* [Title Formatter Options](#title-formatter-options)
* [Troubleshooting](#troubleshooting)
## General Options
These options control the overall look and feel of the card.
### How it Looks
### `entity_id` Media Player Entity Id
SoundTouchPlus media player entity id that will be used to retrieve data from the SoundTouch device.
- type: string
- required: true
- default: none
This must be a SoundTouchPlus integration media player, as it knows how to communicate with the SoundTouch device (other media players do not).
The Card Editor will display a `SoundTouchPlus media player entity id not configured` error message until this option is set with a valid value.
_YAML Example_
```
entity: media_player.bose_st10_1
```
### `height` Card Height
Height of the card, as expressed in 'rem' units.
- type: number | string
- required: false
- default: 35.15
The numeric (rem units) format is good for Masonry dashboard types, where the card must be positioned alongside other cards in the space.
A value of "fill" can also be used to utilize 100% of the available vertical space. This is good for Panel dashboard types, where you want the whole space filled up with the card contents.
_YAML Example_
Renders the card with a height of 40.5rem units.
```
height: 40.5
```
Renders the card with a height of 100%.
```
height: fill
```
### `sections` Card Sections
Controls which sections of the card will be visible.
- type: string array
- required: false
- default: `[presets, recents]`
The following values are allowed:
- `presets` Presets section will be displayed.
- `recents` Recently Played section will be displayed.
- `pandorastations` Pandora Stations section will be displayed.
- `player` Media Player section (future enhancement - currently unsupported).
_YAML Example - All Sections_
This will enable the Presets, Recently Played, and Pandora Station sections of the card.
```
sections:
- presets
- recents
- pandorastations
```
_YAML Example - Pandora Stations Section_
This will enable only the Pandora Station section of the card.
```
sections:
- pandorastations
```
### `title` Title Text
Title that is displayed at the top of the card, above the section area.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `SoundTouch Card "Bose-ST10-1"`
```
title: SoundTouch Card "{player.name}"
```
### `width` Card Width
Width of the card, as expressed in 'rem' units.
- type: number | string
- required: false
- default: 35.15
The numeric (rem units) format is good for Masonry dashboard types, where the card must be positioned alongside other cards in the space.
A value of "fill" can also be used to utilize 100% of the available horizontal space. This is good for Panel dashboard types, where you want the whole space filled up with the card contents.
_YAML Example_
Renders the card with a width of 40.5rem units.
```
width: 40.5
```
Renders the card with a width of 100%.
```
width: fill
```
## Player Section Options
These options control the look and feel of the Player section of the card. This section is comprised of 3 control areas: header status, media controls, and volume controls.
### Player Header Status Area Options
The following document the options for the Header Status area of the Player section.
### How it Looks
### `playerHeaderBackgroundColor` Header Background Color
Color value for the Player header area background gradient, in #HHRRGGBB format.
Specify 'transparent' to hide the background area.
- type: string
- required: false
- default: '#000000bb'
_YAML Example_
```
playerHeaderBackgroundColor: transparent
```
### `playerHeaderTitle` Section Title
Title displayed in the header area of the Player section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `"Bose-ST10-1" Player`
```
playerHeaderTitle: '"{player.name}" Player'
```
### `playerHeaderArtistTrack` Artist and Track Info
Artist and Track info displayed in the header area of the Player section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the currently playing artist and media track title.
Renders the following: `Kutless - What Faith Can Do`
```
playerHeaderArtistTrack: '{player.media_artist} - {player.media_title}'
```
### `playerHeaderAlbum` Album Name Info
Album info displayed in the header area of the Player section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the currently playing media album name.
Renders the following: `It is Well (Expanded Edition)`
```
playerHeaderAlbum: '{player.media_album_name}'
```
### `playerHeaderNoMediaPlayingText` No Media Info
Text to display in the header area of the Player section form when no media is currently playing.
- type: string
- required: false
- default: none
Omit this parameter to display the default 'No Media Playing' value.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text if no media is currently playing.
```
playerHeaderNoMediaPlayingText: 'No Media is Currently Playing'
```
### `playerHeaderHideProgressBar` Hide Progress Bar
Hide progress bar in the header area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerHeaderHideProgressBar: false
```
### `playerHeaderHide` Hide Status Area
Hide header area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerHeaderHide: false
```
### Player Media Controls Area Options
The following document the options for the Media Controls area of the Player section.
### How it Looks
### `playerControlsHidePlayPause` Hide Play Pause Control
Hide play / pause button in the controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerControlsHidePlayPause: false
```
### `playerControlsHideRepeat` Hide Repeat Control
Hide repeat button in the controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerControlsHideRepeat: false
```
### `playerControlsHideShuffle` Hide Shuffle Control
Hide shuffle button in the controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerControlsHideShuffle: false
```
### `playerControlsHideTrackNext` Hide Next Track Control
Hide next track button in the controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerControlsHideTrackNext: false
```
### `playerControlsHideTrackPrev` Hide Previous Track Control
Hide previous track button in the controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerControlsHideTrackPrev: false
```
### `playerControlsHide` Hide Media Controls
Hide controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerControlsHide: false
```
### Player Header Volume Controls Area Options
The following document the options for the Volume Controls area of the Player section.
### How it Looks
### `playerVolumeControlsHideMute` Hide Volume Mute Control
Hide mute button in the volume controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerVolumeControlsHideMute: false
```
### `playerVolumeControlsHidePower` Hide Power Control
Hide power button in the volume controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerVolumeControlsHidePower: false
```
### `playerVolumeControlsHide` Hide All Volume Controls
Hide volume controls area of the Player section form.
- type: boolean
- required: false
- default: false
_YAML Example_
```
playerVolumeControlsHide: false
```
### `playerControlsBackgroundColor` Controls Background Color
Color value for the Player controls area background gradient, in #HHRRGGBB format.
Specify 'transparent' to hide the background area.
- type: string
- required: false
- default: '#000000bb'
_YAML Example_
```
playerControlsBackgroundColor: transparent
```
## Sources Section Options
These options control the look and feel of the Sources section of the card.
### How it Looks
### `sourceBrowserItemsHideTitle` Browser Hide Titles
Hide titles displayed for Sources browser items.
- type: boolean
- required: false
- default: false
If the Title is hidden, then the sub-title is also hidden.
_YAML Example_
```
sourceBrowserItemsHideTitle: false
```
### `sourceBrowserItemsPerRow` Browser Items per Row
Number of items to display in a single row of the Sources browser section form.
- type: integer
- required: false
- default: 3
- range: 1 - 6
Use a value of 1 to display the items as a vertical list.
Use a value of more than 1 to display the items in a horizontal list.
_YAML Example_
```
sourceBrowserItemsPerRow: 3
```
### `sourceBrowserSubTitle` Section Sub-Title
Sub-Title displayed at the top of the Sources browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the formatted date time of when the Sources list was last updated on the device.
Renders the following: `last updated on 5/10/2024, 10:43:20 AM`
```
sourceBrowserSubTitle: last updated on {medialist.lastupdatedon}
```
### `sourceBrowserTitle` Section Title
Title displayed at the top of the Sources browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `"Bose-ST10-1" Sources`
```
sourceBrowserTitle: '"{player.name}" Sources'
```
## Device Preset Section Options
These options control the look and feel of the Device Presets section of the card.
### How it Looks
### `presetBrowserItemsHideSource` Media Browser Hide Source
Hide source titles displayed for media browser items.
- type: boolean
- required: false
- default: false
_YAML Example_
```
presetBrowserItemsHideSource: false
```
### `presetBrowserItemsHideTitle` Media Browser Hide Titles
Hide titles displayed for media browser items.
- type: boolean
- required: false
- default: false
If the Title is hidden, then the sub-title is also hidden.
_YAML Example_
```
presetBrowserItemsHideTitle: false
```
### `presetBrowserItemsPerRow` Media Browser Items per Row
Number of items to display in a single row of the media browser section form.
- type: integer
- required: false
- default: 3
- range: 1 - 6
Use a value of 1 to display the items as a vertical list.
Use a value of more than 1 to display the items in a horizontal list.
_YAML Example_
```
presetBrowserItemsPerRow: 3
```
### `presetBrowserSubTitle` Section Sub-Title
Sub-Title displayed at the top of the media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the formatted date time of when a preset was last set (or cleared) on the device.
Renders the following: `last updated on 5/10/2024, 10:43:20 AM`
```
presetBrowserSubTitle: last updated on {player.soundtouchplus_presets_lastupdated}
```
### `presetBrowserTitle` Section Title
Title displayed at the top of the media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `"Bose-ST10-1" Device Presets`
```
presetBrowserTitle: '"{player.name}" Device Presets'
```
## User Preset Section Options
These options control the look and feel of the User Presets section of the card.
### How it Looks
### `userPresetBrowserItemsHideSource` Media Browser Hide Source
Hide source titles displayed for media browser items.
- type: boolean
- required: false
- default: false
_YAML Example_
```
userPresetBrowserItemsHideSource: false
```
### `userPresetBrowserItemsHideTitle` Media Browser Hide Titles
Hide titles displayed for media browser items.
- type: boolean
- required: false
- default: false
If the Title is hidden, then the sub-title is also hidden.
_YAML Example_
```
userPresetBrowserItemsHideTitle: false
```
### `userPresetBrowserItemsPerRow` Media Browser Items per Row
Number of items to display in a single row of the media browser section form.
- type: integer
- required: false
- default: 3
- range: 1 - 6
Use a value of 1 to display the items as a vertical list.
Use a value of more than 1 to display the items in a horizontal list.
_YAML Example_
```
userPresetBrowserItemsPerRow: 3
```
### `userPresetBrowserSubTitle` Section Sub-Title
Sub-Title displayed at the top of the media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the formatted date time of when the media list was retrieved from the configuration.
Renders the following: `last updated on 5/10/2024, 10:43:20 AM`
```
userPresetBrowserSubTitle: last updated on { medialist.lastupdatedon }
```
### `userPresetBrowserTitle` Section Title
Title displayed at the top of the media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `"Bose-ST10-1" User Presets`
```
userPresetBrowserTitle: '"{player.name}" User Presets'
```
### `userPresets` User Preset Content Items
Media content item entries that represent the content to play.
- type: array of ContentItemParent objects.
- required: false
- default: none
Omit this parameter to not define any user presets.
_YAML Example_
The following tries to document the various popular sources that are available to play content from.
This is by no means a complete list.
Substitute your user-specific information in the various items (e.g. "yourSpotifySourceAccount" with your Spotify user-id value, "yourPandoraUserId" with your Pandora user-id value, etc).
```
userPresets:
- ContentItem:
Name: K-Love Radio
ContainerArt: 'http://cdn-profiles.tunein.com/s33828/images/logog.png?t=637986894890000000'
Location: '/v1/playback/station/s33828'
Source: TUNEIN
TypeValue: stationurl
- ContentItem:
Name: Spotify Playlist Daily Mix 1
ContainerArt: 'https://dailymix-images.scdn.co/v2/img/ab6761610000e5ebcd3f796bd7ea49ed7615a550/1/en/default'
Location: 'spotify:playlist:37i9dQZF1E39vTG3GurFPW'
Source: SPOTIFY
SourceAccount: yourSpotifySourceAccount
TypeValue: uri
- ContentItem:
Name: Spotify Artist Mercy Me
ContainerArt: 'https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b'
Location: 'spotify:artist:6APm8EjxOHSYM5B4i3vT3q'
Source: SPOTIFY
SourceAccount: yourSpotifySourceAccount
TypeValue: uri
- ContentItem:
Name: Spotify Album Welcome to the New
ContainerArt: 'https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b'
Location: 'spotify:album:6vc9OTcyd3hyzabCmsdnwE'
Source: SPOTIFY
SourceAccount: yourSpotifySourceAccount
TypeValue: uri
- ContentItem:
Name: Track I Still Believe
ContainerArt: 'https://i.scdn.co/image/ab67616d0000b27391efaaa4c9b4b311ddc428b0'
Location: 'spotify:track:3EtOah8NqZ1FqpQR837v0z'
Source: SPOTIFY
SourceAccount: yourSpotifySourceAccount
TypeValue: uri
- ContentItem:
Name: Spotify Episode We Can Do Hard Things
ContainerArt: 'https://i.scdn.co/image/ab6765630000ba8a31936fcc7887c8a10ba9af9d'
Location: 'spotify:episode:3tWDribcG7X5Q6KBx8xupp'
Source: SPOTIFY
SourceAccount: yourSpotifySourceAccount
TypeValue: uri
- ContentItem:
Name: Spotify Podcast K-Love On The Mic
ContainerArt: 'https://i.scdn.co/image/206f1a5d5e27e9516a5c0cdb06ee3ae079a78ac9'
Location: 'spotify:show:39EidgdUzHLZ1Wab01NiGk'
Source: SPOTIFY
SourceAccount: yourSpotifySourceAccount
TypeValue: uri
- ContentItem:
Name: Pandora Zach Williams Radio
ContainerArt: 'https://content-images.p-cdn.com/images/68/88/0d/fb/aed34095a11118d2aa7b02a2/_500W_500H.jpg'
Location: '126740707481236361'
Source: PANDORA
SourceAccount: yourPandoraUserId
- ContentItem:
Name: NAS Album
ContainerArt: http://192.168.1.1:10243/WMPNSSv4/2050238549/0_N18xMTRlOGRlOS00MDE5.jpg?albumArt=true
Location: '7_11412345'
Source: STORED_MUSIC
SourceAccount: 'd09708a1-5953-44bc-a413-123456789012/0'
- ContentItem:
Name: DLNA Album
ContainerArt: http://192.168.1.1:8085/v1/albums/983/image?_=1&w=62
Location: 'album:983'
Source: LOCAL_MUSIC
SourceAccount: '3f205110-4a57-4e91-810a-ad949d25abb2'
TypeValue: album
```
### `userPresetsFile` User Preset Content Items File
Media content item entries that represent the content to play, stored in a JSON file format. Use this option if you wish to share your presets among multiple card definitions.
- type: array of ContentItemParent objects in JSON format
- required: false
- default: none
Omit this parameter to not define any user presets in a file.
_YAML Example_
This will look for the file in your HA configration directory (e.g. where configuration.yaml resides) `www` folder: `/config/www/soundtouchplus/userpresets.json`.
```
userPresetsFile: /local/soundtouchplus/userpresets.json
```
_JSON File Example_
The following tries to document the various popular sources that are available to play content from.
This is by no means a complete list.
Substitute your user-specific information in the various items (e.g. "yourSpotifySourceAccount" with your Spotify user-id value, "yourPandoraUserId" with your Pandora user-id value, etc).
```
[
{
"ContentItem": {
"Name": "K-Love Radio",
"ContainerArt": "http://cdn-profiles.tunein.com/s33828/images/logog.png?t=637986894890000000",
"Location": "/v1/playback/station/s33828",
"Source": "TUNEIN",
"TypeValue": "stationurl"
}
},
{
"ContentItem": {
"Name": "Playlist Daily Mix 1",
"ContainerArt": "https://dailymix-images.scdn.co/v2/img/ab6761610000e5ebcd3f796bd7ea49ed7615a550/1/en/default",
"Location": "spotify:playlist:37i9dQZF1E39vTG3GurFPW",
"Source": "SPOTIFY",
"SourceAccount": "yourSpotifySourceAccount",
"TypeValue": "uri"
}
},
{
"ContentItem": {
"Name": "Artist Mercy Me",
"ContainerArt": "https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b",
"Location": "spotify:artist:6APm8EjxOHSYM5B4i3vT3q",
"Source": "SPOTIFY",
"SourceAccount": "yourSpotifySourceAccount",
"TypeValue": "uri"
}
},
{
"ContentItem": {
"Name": "Album Welcome to the New",
"ContainerArt": "https://i.scdn.co/image/ab67616d0000b27316c019c87a927829804caf0b",
"Location": "spotify:album:6vc9OTcyd3hyzabCmsdnwE",
"Source": "SPOTIFY",
"SourceAccount": "yourSpotifySourceAccount",
"TypeValue": "uri"
}
},
{
"ContentItem": {
"Name": "Track I Still Believe",
"ContainerArt": "https://i.scdn.co/image/ab67616d0000b27391efaaa4c9b4b311ddc428b0",
"Location": "spotify:track:3EtOah8NqZ1FqpQR837v0z",
"Source": "SPOTIFY",
"SourceAccount": "yourSpotifySourceAccount",
"TypeValue": "uri"
}
},
{
"ContentItem": {
"Name": "Episode We Can Do Hard Things",
"ContainerArt": "https://i.scdn.co/image/ab6765630000ba8a31936fcc7887c8a10ba9af9d",
"Location": "spotify:episode:3tWDribcG7X5Q6KBx8xupp",
"Source": "SPOTIFY",
"SourceAccount": "yourSpotifySourceAccount",
"TypeValue": "uri"
}
},
{
"ContentItem": {
"Name": "Podcast K-Love On The Mic",
"ContainerArt": "https://i.scdn.co/image/206f1a5d5e27e9516a5c0cdb06ee3ae079a78ac9",
"Location": "spotify:show:39EidgdUzHLZ1Wab01NiGk",
"Source": "SPOTIFY",
"SourceAccount": "yourSpotifySourceAccount",
"TypeValue": "uri"
}
},
{
"ContentItem": {
"Name": "Zach Williams Radio",
"ContainerArt": "https://content-images.p-cdn.com/images/68/88/0d/fb/aed34095a11118d2aa7b02a2/_500W_500H.jpg",
"Location": "126740707481236361",
"Source": "PANDORA",
"SourceAccount": "yourPandoraUserId"
}
},
{
"ContentItem": {
"Name": "NAS Album",
"ContainerArt": "http://192.168.1.1:10243/WMPNSSv4/2050238549/0_N18xMTRlOGRlOS00MDE5.jpg?albumArt=true",
"Location": "7_11412345",
"Source": "STORED_MUSIC",
"SourceAccount": "d09708a1-5953-44bc-a413-123456789012/0"
}
},
{
"ContentItem": {
"Name": "DLNA Album",
"ContainerArt": "http://192.168.1.1:8085/v1/albums/983/image?_=1&w=62",
"Location": "album:983",
"Source": "LOCAL_MUSIC",
"SourceAccount": "3f205110-4a57-4e91-810a-ad949d25abb2",
"TypeValue": "album"
}
}
]
```
## Recently Played Section Options
These options control the look and feel of the Recently Played section of the card.
### How it Looks
### `recentBrowserItemsHideSource` Media Browser Hide Source
Hide source titles displayed for Recently Played media browser items.
- type: boolean
- required: false
- default: false
_YAML Example_
```
recentBrowserItemsHideSource: false
```
### `recentBrowserItemsHideTitle` Media Browser Hide Titles
Hide titles displayed for Recently Played media browser items.
- type: boolean
- required: false
- default: false
If the Title is hidden, then the sub-title is also hidden.
_YAML Example_
```
recentBrowserItemsHideTitle: false
```
### `recentBrowserItemsPerRow` Media Browser Items per Row
Number of items to display in a single row of the Recently Played media browser section form.
- type: integer
- required: false
- default: 3
- range: 1 - 6
Use a value of 1 to display the items as a vertical list.
Use a value of more than 1 to display the items in a horizontal list.
_YAML Example_
```
recentBrowserItemsPerRow: 3
```
### `recentBrowserSubTitle` Section Sub-Title
Sub-Title displayed at the top of the Recently Played media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the formatted date time of when the recently played media list was last updated on the device.
Renders the following: `last updated on 5/10/2024, 10:43:20 AM`
```
recentBrowserSubTitle: last updated on {player.soundtouchplus_recents_lastupdated}
```
### `recentBrowserTitle` Section Title
Title displayed at the top of the Recently Played media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `"Bose-ST10-1" Recently Played`
```
recentBrowserTitle: '"{player.name}" Recently Played'
```
## Pandora Section Options
These options control the look and feel of the Pandora section of the card.
### How it Looks
### `pandoraBrowserItemsHideTitle` Media Browser Hide Titles
Hide titles displayed for Pandora media browser items.
- type: boolean
- required: false
- default: false
If the Title is hidden, then the sub-title is also hidden.
_YAML Example_
```
pandoraBrowserItemsHideTitle: false
```
### `pandoraBrowserItemsPerRow` Media Browser Items per Row
Number of items to display in a single row of the Pandora media browser section form.
- type: integer
- required: false
- default: 3
- range: 1 - 6
Use a value of 1 to display the items as a vertical list.
Use a value of more than 1 to display the items in a horizontal list.
_YAML Example_
```
pandoraBrowserItemsPerRow: 9
```
### `pandoraBrowserSubTitle` Section Sub-Title
Sub-Title displayed at the top of the Pandora media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the formatted date time of when the media list was last refreshed.
Renders the following: `refreshed on 5/10/2024, 10:43:20 AM`
```
pandoraBrowserSubTitle: refreshed on {medialist.lastupdatedon}
```
### `pandoraBrowserTitle` Section Title
Title displayed at the top of the Pandora media browser section form.
- type: string
- required: false
- default: none
Omit this parameter to hide the display area.
This value supports [Title Formatter Options](#title-formatter-options).
_YAML Example_
Display the specified text along with the name of the media player.
Renders the following: `"Bose-ST10-1" Pandora`
```
pandoraBrowserTitle: '"{player.name}" Pandora'
```
### `pandoraSourceAccount` Source Account
Source account (e.g. Pandora username) used to connect to the Pandora music service.
- type: string
- required: true
- default: none
This account MUST be defined in the SoundTouch device source list.
_YAML Example_
```
pandoraSourceAccount: 'JohnSmith@yahoo.com'
```
## Manual Configuration Options
These options are configured manually by clicking on the `Show Code Editor` button on the card editor form.
### `customImageUrls` Custom Image URL's
Provides custom images to display for media items based upon a matching title name.
Also provides custom images for media items that have no covert art image url, as well as empty preset slots.
- type: array[title: imageurl]
- required: false
- default: none
The value array is comprised of `title:value` sub-items:
- `title` is the track title to match on, or one of the special titles values (see below). Any special characters in the title are removed before comparison. For example, if the track title is `LiGhT rAiLs *ੈ✩‧₊˚` you would specify `LiGhT rAiLs` for the title value.
- `imageurl` is the url path to the cover art image. This can reside in the `config\www\` folder, can be a Home Assistant Brands icon, or a direct url to an image hosted on the web. For images found in the `config\www\`, just use a prefix of `/local/...` (see example below).
The following special titles are available, and apply to various [section content](Card-Features#section-content):
- `default` - media browser image to display when no image is present.
- `empty preset` - media browser image to display for empty presets in the Preset section.
- `playerBackground` - background image to display for the Player section when the player is powered on. This will override the entity_picture attribute of the media player.
- `playerOffBackground` - background image to display for the Player section when the player is powered off.
_YAML Example_
Provide custom images for the following track titles:
- "My Private Playlist" - image in the Home Assistant config www folder location (e.g. `/config/www/images/soundtouchplus_card_customimages/my_private_playlist.png`).
- "Daily Mix 1" - uses Home Assistant Brands repository image for SpotifyPlus (e.g. Spotify logo).
- "Daily Mix 2" - uses an external CDN url to the image (e.g. `https://i.scdn.co/image/ab67616d0000b2734bfd0e91bf806bc73d736cfd`).
- "default" - image in the Home Assistant config www folder location (e.g. `/config/www/images/soundtouchplus_card_customimages/default.png`)
- "empty preset" - image in the Home Assistant config www folder location (e.g. `/config/www/images/soundtouchplus_card_customimages/empty_preset.png`)
```
customImageUrls:
default: /local/images/soundtouchplus_card_customimages/default.png
empty preset: /local/images/soundtouchplus_card_customimages/empty_preset.png
My Private Playlist: /local/images/soundtouchplus_card_customimages/logo_spotify.png
Daily Mix 1: https://brands.home-assistant.io/spotifyplus/icon.png
Daily Mix 2: https://brands.home-assistant.io/spotifyplus/icon.png
```
## Title Formatter Options
The following keywords can be specified in various title fields, and are replaced with equivalent values from various sources.
- `{player.name}` media player name (e.g. "LivingRoom Soundbar").
- `{player.friendly_name}` media player friendly name (e.g. "LivingRoom Soundbar").
- `{player.media_album_name}` currently playing media content album name (e.g. "It Is Well").
- `{player.media_artist}` currently playing media content artist (e.g. "Kutless").
- `{player.media_title}` currently playing media content title (e.g. "What Faith Can Do").
- `{player.media_track}` currently playing media content track, varies by music service (e.g. "01", "What Faith Can Do", etc).
- `{player.source}` media player current source name (e.g. "Spotify (youraccount)").
- `{player.source_noaccount}` media player current source name (e.g. "Spotify").
- `{player.soundtouchplus_presets_lastupdated}` Date and Time the preset list was last refreshed from the device.
- `{player.soundtouchplus_recents_lastupdated}` Date and Time the recents list was last refreshed from the device.
- `{player.soundtouchplus_recents_cache_lastupdated}` Date and Time the recents list cache was last refreshed from the local file system.
- `{player.state}` media player current state (e.g. "playing", "off", etc).
- `{config.pandorasourceaccount}` - Pandora source account named defined in the configuration.
- `{medialist.lastupdatedon}` Date and Time the media list was last refreshed from the device; only used for services that don't have a media player `lastupdatedon` attribute.
- `{medialist.itemcount}` Number of items in the media list.
For date field replacements, the JavaScript `toLocaleString()` method is used to return the formatted date using the current locale.
_YAML Example_
Display the specified text along with the formatted date time of when the recently played media list was last updated on the device.
Renders the following: `last updated on 5/10/2024, 10:43:20 AM`
```
recentBrowserSubTitle: last updated on {player.soundtouchplus_recents_lastupdated}
```
## Troubleshooting
This section tries to document common problems that you might encounter while configuring the card.
Use the following index to get to where you want to be:
* [Error - Entity id not configured](#error---entity-id-not-configured)
* [Error - Pandora user account not configured](#error---pandora-user-account-not-configured)
### Error - Entity id not configured
The `SoundTouchPlus media player entity id not configured` message appears when the entity id value has not been set to a valid SoundTouchPlus integration media player entity id value.
To fix, select a value from the [Media Player Entity Id](#entity_id-media-player-entity-id) selection box, or supply a valid `entity_id` option keyword.
### Error - Pandora user account not configured
The `Pandora user account not configured` message appears in the Pandora section's media list when a valid Pandora user account value has not been set. If entered manually, the user account value must match what is configured on the SoundTouch device.
To fix, select a value from the [Pandora Source Account](#pandorasourceaccount-source-account) selection box, or supply a valid `pandoraSourceAccount` option keyword.