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 Home Assistant.
Hierna Home Assistant herstarten en via de Integraties, Spotify toevoegen. Gebruik hierin voor de gebruikersnaam en.wachtwoord de Client ID en Client Secret uit de API service. 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 }
Playlist afspelen via NFC tag
In de huiskamer heb ik LP-frames aan de muur hangen en in elk frame zit een NFC-tag met de naam van het getoonde album. Zodra één van de tags wordt gescand met mijn smartphone wordt de bijbehorende playlist afgespeeld op de Spotify media_player (via spotcast).
de switch-node selecteert de uitgang op basis van de tag-name op de msg.payload.name en de action-nodes spelen de playlist af.