Spotify Media Player

Met een Premium of Family account bij Spotify kun je met een ‘Media Player’ kaart in Home Assistant de muziek selecteren en afspelen op de ondersteunde players. Ondersteunde players zijn o.a. Chromecast devices zoals Chromecast Audio, Google Nest Mini maar ook players die de Spotify Connect functie hebben.

Indien je een gratis account hebt, kun je de media-player voor Spotify ook in een dashboard van Home Assistant plaatsen maar heb je geen controle knoppen in die mediaplayer en kun je bv. ook geen playlists selecteren.

Op de Home Assistant pagina voor de Spotify plugin kun je lezen hoe je een Spotify account kunt toevoegen aan Home Assistant. Waar het op neer komt is een app aanmaken in de Development site van Spotify en daarin een ‘Redirect URI‘ en een ‘User-account‘ toe voegt en dan de ‘Client ID‘ en de ‘Client Secret‘ gebruikt om Spotify toe te voegen aan de configuration.yaml file.

spotify:
  client_id: !secret spotify_username
  client_secret: !secret spotify_password

Hierna Home Assistant herstarten en via de Integraties, Spotify toevoegen. Uiteraard goedkeuren dat Home Assistant jouw Spotify mag gebruiken.

Selecteer hier ‘1 service‘ en je kunt dan de media-player vanuit het volgende scherm toevoegen aan één van je Dashboards.

Dat ziet er dan zo uit als er niets afgespeeld word:

en zo als er wel wat afgespeeld wordt:

Google Cast devices toevoegen

Om nu de Google Cast/Spotify Connect devices te kunnen gebruiken met de Spotify integratie, dient er een HACS plugin toegevoegd te worden genaamd SpotCast. Ook hiervoor dient er een aanpassing gemaakt te worden in de configuration.yaml file:

spotcast:
   sp_dc: !secret sp_dc
   sp_key: !secret sp_key

Hoe je aan de sp_dc en de sp_key komt, kun je hier lezen: https://github.com/fondberg/spotcast

Eenmaal ook dit geïnstalleerd is er een service genaamd spotcast.start in Home Assistant bijgekomen. Hiermee kan Spotify dus ge-cast worden op Chromecast ondersteunde devices en kan Spotify tevens afgespeeld worden op Spotify Connect devices!

Voorbeeld playlists selectie met Mini Media Player

De Mini Media Player is een HACS frontend lovelace kaart. Nadat deze geïnstalleerd is kan de kaart in een dashboard gekozen worden.

Na toevoegen van de kaart, kies meteen voor ‘CODE-EDITOR WEERGEVEN‘ en plaats de volgende code toe om een buttons te maken voor een playlists:

type: custom:mini-media-player
entity: media_player.marantz
icon: mdi:music
source: full
sound_mode: full
info: scroll
shortcuts:
  columns: 3
  buttons:
    - name: Nokkie's Choice
      type: service
      id: spotcast.start
      data:
        device_name: Marantz
        uri: spotify:playlist:413ool2QBpl7TWp3TkQiNq
        random_song: true
        shuffle: true
        start_volume: 30

De vetgedrukte regels maken de selectie voor de playlist en op welke media_player deze afgespeeld gaat worden.

entity: media_player.marantz = verplicht item voor de kaart en laat de Friendly Name van de player zien op de kaart.
– name: Nokkie’s Choice = de playlist vanuit Spotify
device_name: Marantz = Friendly Name van de player waarop afgespeeld gaat worden
uri: spotify:playlist:413ool2QBpl7TWp3TkQiNq = de URI van de playlist in Spotify.

Om de URI te vinden voor de playlist ga je naar www.spotify.com en selecteer je de playlist. In de URL bovenaan in je browser zie je dan de code voor de playlist. Kopieer deze in de yaml-code van de Mini Media Player.

In de yaml-code van de Mini Music Player kun je meer playlists toevoegen als ‘button’. Begin met de ‘– name:‘ en let goed op met het inspringen van spaties! Doordat er ‘columns: 3‘ gebruikt wordt zullen er steeds 3 buttons naast elkaar getoond worden. bijvoorbeeld:

Automatiseren

Mocht je de behoefte hebben om Spotify playlists automatisch af te spelen, in Node-RED ziet de SpotCast-service er zo uit:

De Data JSON-code voor een willekeurige song uit de playlist:

{
  "device_name": "Marantz",
  "uri": "spotify:playlist:413ool2QBpl7TWp3TkQiNq",
  "random_song": true,
  "start_volume": 40
}