Si lo so, la rete è piena zeppa di articoli su come integrare Spotify in Home Assistant, ma non è mia intenzione ripetere solo cose già dette, vorrei invece descrivere il mio progetto dalla A alla Z.
Una soluzione integrata tra Backend e Frontend con le seguenti caratteristiche:
- Categorizzazione delle playlist preferite per genere musicale.
- Gestione multi-room.
- Configurazione dinamica con un file JSON di facile comprensione.
- Riproduzione di una playlist specifica o RANDOM in base al genere musicale di appartenenza.
- UI personalizzata con funzioni di avvio/gestione riproduzione e sensori informativi vari.
- Script di backend parametrico da usare nelle automazioni.
In questo articolo vi racconto come è strutturato il progetto, dalle componenti di backend fino alla realizzazione dell’interfaccia grafica su Lovelace, con il download di tutto il materiale per una installazione da zero.
Attenzione! Due cose importanti.
- Per l’implementazione di questo progetto è necessario essere in possesso di un abbonamento Spotify Premium.
- Questo progetto necessita di dispositivi che siano sempre disponibili su Spotify per la riproduzione. Gli Amazon Echo ad esempio lo sono. I Google Home (con l’integrazione Google Cast) no purtroppo, hanno bisogno di essere prima attivati dall’app di Spotify. Per risolvere il problema si può usare il custom component Spotcast, ma non è oggetto di questo articolo.
ELENCO DEGLI ARGOMENTI
Premessa
Premessa necessaria: il motore del progetto è sviluppato con Node-RED e usa un broker MQTT come protocollo di comunicazione tra Home Assistant e Node-RED.
Sono un gran sostenitore di Node-RED, ma non un fanatico a prescindere. Lo ritengo un ottimo strumento, ma credo che, come un qualsiasi altro strumento, è bene utilizzarlo solo quando necessario e non come strumento di automazione principale, almeno in ambito Home Assistant dove gran parte delle esigenze sono già coperte da script e automazioni in YAML.
Detto questo, perchè Node-RED in questo progetto?
Perchè volevo a tutti i costi governare, e rendere completamente dinamica, la configurazione principale tramite file JSON esterno. Un archivio con tutte le informazioni necessarie per dare vita alle idee di riproduzione che avevo. Probabilmente avrei potuto usare anche uno script AppDaemon, ma la via Node-RED mi è sembrata la più adatta in questo caso. Del file JSON ne parleremo in dettaglio più avanti.
Per poter utilizzare il materiale di questo articolo non è necessario che tu sappia utilizzare Node-RED. Più avanti ti dirò esattamente cosa fare per importare il flow e configurare i nodi principali.
Se proprio non vuoi usare Node-RED, dai un’occhiata a questa vecchia versione del progetto su GitHub realizzata con integrazione python_script
. E’ sempre valida ma con qualche funzionalità in meno.
Requisiti
Per un corretto utilizzo è necessario che la tua configurazione soddisfi alcuni semplici requisiti.
Spotify Application (API)
Per consentire ad Home Assistant di utilizzare le API di Spotify è necessario creare una Spotify Application utilizzando il proprio account della piattaforma. Se hai già integrato Spotify nella tua configurazione questo passo non è necessario.
- Fai un login con il tuo account Spotify in questa pagina.
- Clicca su CREATE AN APP.
- Nella schermata seguente assegna un nome e una descrizione a piacere e clicca su CREATE.
- Ora prendi nota del Client ID e Client Secret (ci serviranno più avanti) e poi clicca su EDIT SETTINGS.
- Nella parte Redirect URIs devi inserire questa URL e cliccare su ADD.
- Se non usi SSL: http://<IP LOCALE DI HA>:<PORTA>/auth/external/callback
- Se usi SSL: https://<IP LOCALE DI HA>:<PORTA>/auth/external/callback
Va bene inserire l’indirizzo IP locale della tua istanza di HA seguito dalla porta, tipicamente 8123. Fai attenzione ad inserire il protocollo giusto: http o https in base alla tua configurazione.
- Infine clicca su SAVE in fondo alla schermata.
Gestione dei Packages
I Packages di Home Assistant sono un ottimo strumento per organizzare al meglio la configurazione.
Per attivare la gestione dei packages è sufficiente creare la directory packages dentro quella principale di configurazione (/config) e aggiungere al file configuration.yaml
la seguente voce:
homeassistant: packages: !include_dir_named packages
In seguito, riavviare Home Assistant.
Broker MQTT
In questo progetto viene utilizzato MQTT come protocollo di comunicazione tra Home Assistant e Node-RED.
Per un corretto funzionamento è necessaria la presenza di un broker MQTT nella propria rete LAN e la relativa integrazione su Home Assistant.
Per l’installazione e la configurazione puoi seguire questa guida di inDomus.
Node-RED
Come detto nella premessa tutta la logica del progetto è sviluppata con Node-RED, di conseguenza è necessario dotarsi di questo componente. In ambiente Home Assistant OS oppure Home Assistant Supervised è possibile soddisfare facilmente questo requisito utilizzando il relativo Addon del Supervisor.
Per l’installazione e la configurazione di base puoi seguire questa guida di HassioHelp.
Backend
Bene, una volta soddisfatti tutti i requisiti possiamo procedere con il download e l’installazione del materiale necessario per la configurazione del Backend.
Vediamo quali sono nel dettaglio gli elementi che compongono il progetto (lato backend).
- Un Package Home Assistant
Un package da installare denominatospotify.yaml
contenente integrazione ed entità necessarie al progetto. - Un file JSON di configurazione
Un file in formato JSON denominatospotify.json
contenente la configurazione di Speaker, generi musicali e playlist di Spotify. - Un Flow Node-RED
Un flow Node-RED da importare e configurare nel proprio ambiente. Qui c’è tutta la logica del progetto.
File di configurazione
Prima di iniziare il processo di installazione vediamo come è strutturato e a cosa serve il file di configurazione spotify.json
.
Se non ne hai mai sentito parlare, JSON è sostanzialmente un formato, semplice da leggere, utilizzato per lo scambio dei dati tra applicazioni. Ha una struttura ben precisa e una sintassi da rispettare, se vuoi approfondire l’argomento puoi consultare questa pagina.
Nell’ambito di questo progetto è utilizzato come archivio di configurazioni (Speaker in possesso) e preferenze personali (generi musicali e playlist preferite). Viene letto dal flusso Node-RED per popolare gli array di base con tutto il necessario per avviare le riproduzioni.
Nel materiale che hai scaricato trovi questo file con alcune voci preimpostate, a titolo di esempio ovviamente.
E’ qui che dovrai mettere le mani per gestire la tua configurazione.
{ "playlists": [ {"genere":"Focus", "playlist":"Massima Concentrazione", "uri":"https://open.spotify.com/playlist/37i9dQZF1DXbA4Uw2yEsP9?si=66dba4ffe2dd4744"}, {"genere":"Focus", "playlist":"Lavorare con la musica", "uri":"https://open.spotify.com/playlist/37i9dQZF1DXcb7YJnr6Ck4?si=3efff1e7b0504157"}, {"genere":"Relax", "playlist":"A Fine Giornata", "uri":"https://open.spotify.com/playlist/37i9dQZF1DWUeDwH47meQn?si=c37a0c5905114f61"}, {"genere":"Relax", "playlist":"No Stress", "uri":"https://open.spotify.com/playlist/37i9dQZF1DXc0aozDLZsk7?si=7143e3405e1d41e3"}, {"genere":"Country", "playlist":"Forever Country", "uri":"https://open.spotify.com/playlist/37i9dQZF1DX9hWdQ46pHPo?si=a3b12736d7b44b66"}, {"genere":"Country", "playlist":"Country Rocks", "uri":"https://open.spotify.com/playlist/37i9dQZF1DWWH0izG4erma?si=cbf0bebcc3b44f32"}, {"genere":"Rock", "playlist":"Rock Classics", "uri":"https://open.spotify.com/playlist/37i9dQZF1DWXRqgorJj26U?si=d4310b60ec344efe"}, {"genere":"Rock", "playlist":"Soft Rock", "uri":"https://open.spotify.com/playlist/37i9dQZF1DX6xOPeSOGone?si=e71777868bbb4536"} ], "sources": [ {"room":"Sala", "device":"Echo Sala", "entity_id" : "media_player.echo_sala"}, {"room":"Studio", "device":"Echo Studio", "entity_id" : "media_player.echo_studio"}, {"room":"Bagno", "device":"Echo Bagno", "entity_id" : "media_player.echo_bagno"}, {"room":"Camera", "device":"Echo Camera", "entity_id" : "media_player.echo_camera"} ] }
SOURCES
Nella sezione sources
devi configurare tutti i tuoi media_player
, nel mio caso sono utilizzati quattro device Amazon Echo, ognuno in stanze diverse naturalmente.
room
Stanza di riproduzione. Attenzione, il valore impostato qui sarà quello usato dagli script per avviare la riproduzione (lo vedremo più avanti).
device
Questo valore deve corrispondere esattamente a quello visualizzato da Spotify nell’elenco dei dispositivi disponibili, attenzione anche a maiuscole/minuscole.
entity_id
Qui devi inserire il nome dell’entità di Home Assistant.
PLAYLISTS
Nella sezione playlists
invece devi configurare le tue playlist preferite con il genere musicale di appartenenza. Il genere, in realtà, funziona semplicemente da raccoglitore di playlist, puoi anche organizzare ad esempio una categoria “Personale” dove mettere dentro playlist di diverso tipo. Su questo hai libera scelta.
genere
Genere musicale o categoria di appartenenza. Il flusso Node-RED estrae i valori di questo attributo e crea una lista (senza voci duplicate) per popolare la input_select.spotify_genre
sulla UI. Il valore impostato qui sarà usato anche dagli script per avviare una riproduzione casuale di una delle playlist associate.
playlist
Nome della playlist. Il flusso Node-RED estrae i valori di questo attributo e popola la input_select.spotify_playlist
in base al genere selezionato nella UI.
uri
Questo attributo rappresenta l’indirizzo fisico della playlist di Spotify e viene usato da Node-RED per costruire i parametri necessari al servizio media_player.play_media
.
Questo file, una volta modificato con la tua configurazione, deve essere copiato nella directory /config/node-red
.
Per trovare l’indirizzo di una playlist puoi seguire questa semplice procedura:
- Collegati alla console web di Spotify: https://open.spotify.com
- Cerca la playlist che vuoi configurare.
- Tasto destro sulla playlist -> Condividi -> Copia link alla playlist.
- Incolla il valore nell’attributo
uri
della configurazione.
Installazione
Ora procediamo con l’installazione e la configurazione del backend. Il processo si divide in due fasi:
- Installazione Package con integrazione Spotify ed entità del progetto.
- Installazione flusso Node-RED.
PACKAGE DI INTEGRAZIONE
- Copia il file
spotify.yaml
nella directory /config/packages. - Aggiungi nel file
secrets.yaml
queste due entry con i rispettivi valori della tua Spotify Application.spotify_client_id: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx spotify_client_secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- Riavvia Home Assistant prima di continuare con gli step successivi (IMPORTANTE).
- Dopo il riavvio vai su Impostazioni -> Integrazioni.
- Clicca in basso a destra su Aggiungi Integrazione.
- Cerca e clicca la voce Spotify nella lista.
- Nella maschera seguente potrebbe chiedere l’autenticazione a Spotify. Nel caso autenticati e il processo è terminato.
Se tutto è andato bene ti troverai questa schermata che ci segnala l’avvenuta integrazione del componente Spotify.
L’integrazione ha creato un’entità media_player
chiamata “spotify_” seguita dal tuo nome e cognome.
E’ molto importante rinominare questa entità in media_player.spotify
.
- Vai su Impostazioni -> Integrazioni.
- Clicca sulla voce indicata nel box dell’integrazione Spotify.
- Clicca sull’unica riga presente nella schermata e poi rinomina l’entità come in figura.
- Infine, clicca su AGGIORNA.
Attenzione!
Se avevi già integrato Spotify devi fare in modo che questa porzione di codice, presente nel Package, non venga ripetuta nella tua configurazione.
spotify: client_id: !secret spotify_client_id client_secret: !secret spotify_client_secretLa parte invece di rename dell’entità
media_player
la devi seguire comunque, tenendo conto che può invalidare eventuali script o automazioni che la usano.
Node-RED
Ora vediamo cosa fare per importare il flow di Node-RED che trovi nel materiale e come configurare il broker MQTT.
- Copia il file di configurazione
spotify.json
nella directory /config/node-red.
Attenzione! Il file di configurazione deve essere adattato con i tuoi media player e con le tue preferenze musicali come spiegato in questo capitolo.
AGGIORNAMENTO (13 Marzo 2024)
La configurazione degli ADDONS è cambiata con l’introduzione dell’area di storage ADDON_CONFIGS come spiegato qui.
In sostanza ora per poter leggere correttamente il file spotify.json da Node Red occorre spostarlo in una nuova posizione. Tramite l’addon SAMBA è possibile accedere alla directory addon_configs, successivamente entrare nella directory a0d7b954_nodered e qui creare la directory node-red con dentro il file spotify.json.
In lettura sarà sempre possibile accedere con il path /config/node-red/spotify.json, per cui non è necessario modificare nulla nel flusso node-red.
- Accedi all’interfaccia di Node-RED con la relativa voce nella sidebar.
- Fai click sull’icona hamburger in alto a destra e seleziona la voce Import.
- Ora clicca sul tasto segnalato e importa il file
nodered.json
che trovi nel materiale scaricato.
- Infine, clicca su Import.
Bene, ora nella tua configurazione di Node-RED è presente il flow necessario per il corretto funzionamento. Non entro nei dettagli della logica di questo flow, ma se ti interessa approfondire ne possiamo parlare nei commenti o nel gruppo Home Assistant Italia su Facebook.
Abbiamo quasi terminato, manca soltanto la configurazione dell’indirizzo IP e delle credenziali del Broker MQTT presente nella tua rete locale.
- In alto a destra fai doppio click sulla voce Broker MQTT dentro la sezione Global Configuration Nodes.
- Inserisci l’indirizzo IP del tuo Broker MQTT nella casella Server (se stai usando l’addon del Supervisor, l’indirizzo IP corrisponde a quello della tua istanza di Home Assistant).
- Inserisci le credenziali del Broker MQTT nella scheda Security e clicca su Update.
- Clicca sul tasto DEPLOY in alto a destra per applicare tutte le modifiche fatte.
- Infine, clicca sul tasto segnalato per inizializzare il flusso correttamente.
Il nodo Controlla File della precedente schermata monitora in tempo reale i cambiamenti del file di configurazione
/config/node-red/spotify.json
e inizializza il flusso automaticamente ad ogni salvataggio. Per cui, in caso di necessità, puoi modificare e salvare il file senza preoccuparti di nulla.
L’installazione del Backend è terminata, se hai seguito scrupolosamente tutta la procedura il tuo ambiente è pronto per utilizzare il materiale del progetto.
Come usare gli script
Nel prossimo capitolo vedremo come installare il materiale di Frontend per avere una console totalmente integrata con il Backend appena installato.
Nel package, però, hai a disposizione due script da usare come vuoi, per la realizzazione di una UI alternativa ad esempio, oppure per le tue automazioni. Vediamo come funzionano.
script.spotify_play
Questo script gestisce l’avvio di una riproduzione tramite l’invio di un topic MQTT in rete. Il topic viene letto da Node-RED, il quale interpreta i parametri e costruisce la chiamata al servizio media_player.play_media
.
spotify_play: alias: "Riproduci una playlist" sequence: - service: mqtt.publish data: topic: "spotify/play" payload: >- { "room": "{{ room }}", "playlist": "{{ playlist }}", "genre": "{{ genre }}" }
Lo script prevede tre parametri:
room
: Stanza di riproduzione.
Deve essere impostato con il valore del’attributo room della sezione sources nel file di configurazionespotify.json
.playlist
: Nome della playlist.
Deve essere impostato con il valore dell’attributo playlist della sezione playlists nel file di configurazionespotify.json
.genre
: Genere musicale.
Deve essere impostato con il valore dell’attributo genere della sezione playlists nel file di configurazionespotify.json
.
Lo stesso script può essere eseguito con tre modalità diverse, vediamo alcuni esempi.
Playlist casuale tra tutte quelle configurate nella stanza Studio.
service: script.spotify_play data: room: Studio
Playlist casuale del genere Rock nella stanza Sala.
service: script.spotify_play data: room: Sala genre: Rock
Playlist specifica nella stanza Camera.
service: script.spotify_play data: room: Camera playlist: A Fine Giornata
script.spotify_set_room
Questo script sposta la riproduzione attiva in un’altra stanza. Imposta anche il valore di una input_text
di supporto all’interfaccia grafica.
spotify_set_room: sequence: - service: input_text.set_value data: value: "{{ room }}" target: entity_id: input_text.spotify_room - choose: - conditions: - condition: template value_template: '{{ states.media_player.spotify.state != "idle" }}' sequence: - service: mqtt.publish data: topic: "spotify/set-source" payload: "{{ room }}"
Questo un esempio di utilizzo:
service: script.spotify_set_room data: room: Studio
Frontend
In questo capitolo vediamo come configurare la parte di Frontend.
Una console Spotify realizzata con Lovelace che sfrutta a pieno tutte le funzionalità introdotte nel backend.
Ti lascio la stessa console in due versioni differenti: una in modalità YAML coerente con questa metodologia, e l’altra in modalità STORAGE (Gestione Lovelace da interfaccia grafica)
Naturalmente questa console è basata sulle mie preferenze musicali e sui Speaker che ho nelle diverse stanze. Dovrai adattarla in base a come imposti la tua configurazione nel file JSON dedicato.
Custom Component
Per la realizzazione di questa interfaccia è richiesta l’installazione via HACS dei seguenti custom component:
Modalità YAML
In questo blog ho descritto nei dettagli il mio metodo per la realizzazione di una Dashboard Lovelace in modalità YAML, ne ho parlato in due articoli separati dove trovi tutto il materiale e le istruzioni di installazione.
Il materiale in modalità YAML di questo progetto si integra con quello rilasciato in questo capitolo della Parte 2 e va scompattato dentro la directory tablet.
Questo, invece, il codice da integrare nel file lovelace-tablet.yaml
per l’aggiunta della vista MUSICA.
- title: MUSICA path: musica panel: true cards: - type: 'custom:mod-card' style: hui-vertical-stack-card$: | #root { margin: 15px auto !important; max-width: 90%; } card: type: vertical-stack cards: - !include tablet/musica/header.yaml - type: 'custom:button-card' template: row_space_20 - type: horizontal-stack cards: - !include tablet/musica/body_col_1.yaml - type: 'custom:button-card' template: empty_card styles: card: - width: 5px - !include tablet/musica/body_col_2.yaml
EDIT: 06 Aprile 2021
Mi sono reso conto che tra i template del materiale pubblicato nella parte 2 ne manca uno fondamentale per questo progetto.
Questo template va aggiunto nel file
button_card_templates.yaml
action_spotify_room: entity: input_text.spotify_room styles: card: - height: 80px name: - margin-bottom: 5px tap_action: action: call-service service: script.spotify_set_room service_data: room: '[[[ return variables.room ]]]' state: - value: '[[[ return variables.room ]]]' styles: icon: - color: var(--paper-item-icon-active-color) - font-weight: bold name: - color: var(--paper-item-icon-active-color) - font-weight: bold
Modalità STORAGE
La modalità STORAGE, per chi non lo sapesse, è la modalità di default di gestione Lovelace. Si opera totalmente da interfaccia grafica per la realizzazione di una dashboard, avendo comunque la possibilità di eseguire modifiche in YAML dalle card singole, oppure dall’editor di configurazione testuale.
Di seguito il download del materiale e la procedura per installare il frontend del progetto in modalità STORAGE, creando una nuova vista in modalità PANNELLO.
Prima di tutto dobbiamo definire i Template del custom component Button Card (se non sai cosa sono ne ho parlato qui). In modalità STORAGE i Template vanno configurati tramite lo strumento Editor di configurazione testuale.
- Clicca sui 3 puntini in alto a destra e poi su Modifica Plancia.
- Fai click ancora sui 3 puntini e poi Editor di configurazione testuale.
- Ora copia il contenuto del file
button_card_templates.yaml
e incollalo in testa nell’editor che si è aperto.
Attenzione! Se già fai uso dei template di Button Card la prima riga non va ripetuta. Devi accodare i template di questo file a quelli già presenti nella tua configurazione.
- Clicca su SALVA in alto a destra.
Ora procediamo con la creazione della vista.
- Fai click sui 3 puntini e poi su Modifica Plancia come in precedenza.
- Clicca sull’icona + indicata nell’immagine.
- Qui puoi assegnare alla vista un nome a piacere oppure impostare un’icona. L’importante è selezionare la voce modalità Pannello.
- Clicca su SALVA.
- Clicca sul pulsante Aggiungi Scheda.
- Nella maschera seguente scorri fino in fondo e clicca su Manuale.
- Ora copia il contenuto del file
panel_card.yaml
nella configurazione della scheda e clicca su SALVA in basso a destra.
La procedura è terminata, ora dovresti vedere la nuova vista pronta per essere utilizzata.
Conclusione
Oh, che fatica arrivare fino a qui.
Onestamente avevo sottovalutato l’impegno necessario per descrivere questo progetto, soprattutto per la parte Node-RED dove ho provato a rendere accessibile a tutti lo strumento. Spero fili tutto liscio durante la configurazione, se dovessi aver trascurato qualcosa segnalalo e corriamo ai ripari.
Infine, mi permetto di ricordare l’importanza di sostenere lavori come questo e molti altri, affinché possano continuare ad esistere e migliorare.
Ciao e buona musica,
Max
Piaciuto l’articolo?
Se ti va, puoi darmi una mano con le spese di gestione del blog. Grazie!
Con una donazione Paypal
Se compri su Amazon inizia da qui
Perché?
Compliemnti, bellissima guida molto dettagliata e molto chiara.
Purtroppo avendo GoogleHome non ho potuto mettere in pratica il tutto.
Hai idea di fare un aggiornamento per riuscire ad utilizzare i google home? Io ho già Spotcast ma non capisco cosa modificare per utilizzarla.
Grazie Matteo
Ciao Matteo, grazie. No mi dispiace, ma non uso google home. Dal punto di vista dell’integrabilità con Home Assistant non c’è paragone tra i due, Alexa offre molte più possibilità.
Ciao grandissima guida complimenti,ho solo un problema,quando seleziono la playlist qualsiasi essa sia mi riproduce la prima del file.come posso rimediare?
Ciao Max, guida Fantastica, sto tentando di implementarla nella mia console ma sto avendo un problema….
Sostanzialmente facendo un debug con node red si ferma sulla scheda imposta modalità e source e mi da il seguente errore “TypeError: Cannot read property ‘device’ of undefined”,
lato front-end non mi compaiono alcuni tasti per gestire la riproduzione e ovviamente non si avvia nulla… la cosa strana è che se avvio spotify da un’altra istanza compaiono tutti i tasti e sembrano funzionare… non mi gestisce però il cambio stanza… Mi puoi aiutare? Grazie
Ciao Ivan, se ricevi errore in quel punto significa che il flusso non è inizializzato, controlla bene la parte alta del flow, in particolare il percorso del file json con tutti i parametri
Grazie Max ora controllo….. infatti sospettavo potesse essere il json che iniettavo il problema…
Dunque, le playlist sono ok ,perchè ho seguito alla lettera la tua guida per ottenere l’uri, i miei dubbi sono sulle sezioni room e device mentre le entity_id le ho ricavate facilmente dopo aver aggiunto alexa media player…
Se ho capito bene:
Room: ? … è un valore che scelgo io o devo evincerlo da qualche integrazione?
device: è il nome attribuito al dispositivo alexa (con maiuscole e minuscole identiche) come indicato da alexa media player o dall’integrazione spotify? Perchè notavo che l’integrazione spotify mi individua solo alcuni nomi correttamente altri, li identifica con sequenze lunghissime di lettere e numeri che corrispondono cmq ai device alexa disposti in casa…
Grazie e di nuovo complimenti….
Grazie Max ho risolto effettivamente il problema era il json che riportava i novi che avevo individuato tramite alexa media player mentre invece alla voce device dovevo inserire quello che compariva nell’integrazione spotify….
Già che ci sono notavo che nella tua guida all’interfaccia tablet avevi inserito una vista view per una sorta di telecomando che guida mi consigli o hai tu stesso una guida? grazie
Anche questa fantastica guida, una sola domanda, ho visto che tu usi alexa e quindi i mediaplayer sono per l’appunto alexa. io utilizzo google home e chiaramente con media player ho media_player.salotto ora il dubbio che mi viene è nel button_card_template.yaml sezione action template:
action_var_echo_entity: QUESTA LA POSSO MODIFICARE — action_var.google(non so)_eccetera
entity: var.alexa_echo_entity
styles:
card:
– height: 80px
name:
– margin-bottom: 5px
tap_action:
action: call-service
service: var.set
service_data:
entity_id: var.alexa_echo_entity ANCHE QUI CON GOOGLE HOME
value: ‘[[[ return variables.echo_entity ]]]’
state:
– value: ‘[[[ return variables.echo_entity ]]]’
styles:
icon:
– color: var(–paper-item-icon-active-color)
– font-weight: bold
name:
– color: var(–paper-item-icon-active-color)
– font-weight: bold
Grazie ma a parte la tua domanda (quella è una variabile interna e si può chiamare come vuoi) se usi google home questo progetto non va bene, l’ho scritto chiaramente ad inizio articolo.
Ciao Max,
da un po’ di tempo non mi prende più i cambiamenti che apporto al file di configurazione delle playlist. penso dopo gli ultimi aggiornamenti di HA o Node-red. anche tu hai problemi? grazie mille e buone feste.
Ciao Andrea, no tutto ok anche dopo gli ultimi update
Ciao Max, per prima cosa ti dico complimenti per le guide che hai proposto, molto interessanti e super dettagliate. Nello specifico ero proprio alla ricerca di una bella plancia da adattare per il tablet e con la guida 1 e 2 sono riuscito, dopo varie personalizzazioni, a raggiungere un buon risultato.
Come secondo passo mi sono messo a seguire anche questa guida per implementare Spotify e sono arrivato in fondo senza troppi intoppi. Unico problema è che non sembra funzionare! Cioè, se vado a selezionare una stanza e una playlist non succede nulla! Se invece faccio partire un brano dal telefono su Spotify, allora l’interfaccia si aggiorna con i comandi e il brano in ascolto!
Ho dei dubbi sulla connessione node-red e mqtt… E’ possibile che non comunichino? Come faccio a trovare il problema?
Altro dettaglio che magari ti può dare qualche indizio, i due menu a tendina (genere e playlist) non sono popolati, c’è un motivo?
Grazie in anticipo
Luca
Ho il tuo stesso problema, per caso sei riuscito a risolvere?
Grazie
Anche io ho lo stesso problema.
Dipende dal dispositivo, ad esempio gli echo di quarta generazione purtroppo vanno prima attivati manualmente da app. Non è un malfunzionamento dell’integrazione
Avendo ahcio lo stesso problema, vorrei sapere come vanno attivati da app?
facendo partire (play) una qualsiasi cosa su quel dispositivo
Ma ho sempre le liste genere e playlist sempre vuote, clicco qualsiasi pulsante e non succede nulla, vedo solo la copertina della canzone che sto ascoltando da pc o cellulare… ms niente più
Ho lo stesso problema, voi avete risolto?
Per utilizzarlo con Google Home/Nest (Chromecast) si può utilizzare Spotcast (https://github.com/fondberg/spotcast/) installabile tramite HACS (e successivo riavvio di HA).
Si recuperano i valori sp_dc e sp_key, come indicato nel link. I valori sono da copiare nel file secret.yaml in modo da poterli richiamare nel file configuration.yaml, con la seguente integrazione:
spotcast:
sp_dc: !secret sp_dc
sp_key: !secret sp_key
country: IT
é necessario modificare il button_card_template.yaml come di seguito:
action_spotify_room:
entity: input_text.spotify_room
styles:
card:
– height: 80px
name:
– margin-bottom: 5px
tap_action:
action: call-service
service: spotcast.start
#service: script.spotify_set_room
service_data:
#room: ‘[[[ return variables.room ]]]’
device_name: ‘[[[ return variables.device ]]]’
force_playback: true
state:
– value: ‘[[[ return variables.room ]]]’
styles:
icon:
– color: var(–paper-item-icon-active-color)
– font-weight: bold
name:
– color: var(–paper-item-icon-active-color)
– font-weight: bold
Si dovrà modificare anche l’header.yaml della cartella musica come di seguito, in modo che ogni pulsante includa come “variables” oltre la “room” anche il “device” (necessario per il servizio spotcast.start.
– icon: ‘mdi:bed’
name: Letto
template: action_spotify_room
variables:
room: Camera da Letto
device: Camera da letto
type: ‘custom:button-card’
Ottimo, grazie mille! Io non uso google home ma a molti utenti potrebbe essere utile 😉
Ciao. Complimenti per questa e le altre guide.
Ho lo stesso problema.
non riesco a far partire un brano da zero.
Ciao, ho seguito anche questa tua guida (sempre top) ma purtroppo la console non mi funziona (alcuni tasti tipo play, stop, volume… funzionano solamente se avvio a mano una canzone da spotify)… continua a comparire: Invocazione del servizio media_player/media_play non riuscita. No active playback device found
Ciao importando il flusso di node red nella prima parte dove si trova il nodo “lista generi” ho messo un debug perchè il “popola imput” non funzionava.
Vedo un messaggio del tipo
TypeError: Cannot read properties of undefined (reading ‘forEach’) .
mi puoi aiutare?
grazie 1000 ottimo lavoro
matteo
Ciao Matteo grazie, quell’errore indica che il flusso non è stato inizializzato. Può succedere quando si aggiorna l’addon di nodered o quando si riavvia. Per risolvere è sufficiente inizializzare il flusso cliccando sul nodo filename in alto a sinistra. ciao Max
Ciao ottima guida, ho 2 problemi:
1) nel body_1 sotto la scheda spotify non mi escono i vari bottoni (avanti, dietro, vol +, ecc.)
2) nel body_2 nella scheda prima di quella col triangolo mi da quest’errore: input_select.spotify_genre e input_select.spotify_playlist, penso che non trova quelle entità. Le ho cercate ma non ci sono, non capisco dove sbaglio. Spero in un tuo aiuto, grazie
se non hai quelle entità significa che nemmeno hai installato il package previsto, ricontrolla meglio la procedura
Ciao Max ottima guida anche questa, ho già seguito quella per il tablet. Però ho un problema, non trova “input_select.spotify_genre” e “input_select.spotify_playlist” da cosa può dipendere?
Grazie
Ciao Daniele, se non ti trova le input select significa che non hai creato correttamente il package. Questi elementi sono li
Ciao ho scoperto da poco questa guida fantastica, ho installato tutto ma nel campo playlist e source non compare niente. Quando ascolto una canzone esce la copertina, posso abbassare o alzare il volume, mettere in pausa. Però non riesco a cambiare la stanza o scegliere la mia playlist. In node red non c’è nessun errore, mi potresti aiutare? Grazie mille
Ciao dopo lo spostamento del file spotify.json ora trovo sia il genere che le playlist, però anche selezionando una playlist dal menù a tendina o dai tasti sotto, quando clicco la freccia non parte nulla. Ho controllato e ricontrollato ed è tutto giusto, mi aiuteresti a far funzionare il tutto? Grazie
Se hai un Echo di quarta generazione, quello tondo per capirci, è normale purtroppo. Non dipende ne dal mio progetto e nemmeno da home assistente, è un problema delle api di Spotify. Se provi a fare suonare qualcosa dall’app Spotify vedrai che poi ti reagisce ai comandi. Non si può fare nulla al momento
Grazie per la risposta, non funziona lo stesso ma ho notato che l’uri delle playlist cambia. Ieri sono andato sul sito e ho provato a copiare il link ed era diverso da quello di prima, oggi ho riprovato ed è ancora diverso da quello di ieri. Stessa playlist. Ho un’account premium family