
RESTful Command - come usare comandi http in Home Assistant
di Vincenzo Caputo
02 Giugno 2025
Home Assistant

Da qualche mese il componente personalizzato Link Play per Home Assistant è stato deprecato e non è più supportato!
A partire dalla versione 2024.08 di Home Assistant, i lettori multimediali basati sul chipset Linkplay sono ufficialmente supportati senza la necessità di alcun componente personalizzato.
Se ci seguite da un po' di tempo saprete che abbiamo usato, e usiamo tuttora con molta soddisfazione, le schede audio Arylic che ci permettono di ottenere audio multiroom nella nostra abitazione e ci permettono l'integrazione (tramite Link Play) nel nostro personal Hub preferito Home Assistant con possibilità di funzioni molto avanzate come ad esempio la risposta TTS dell'assistente vocale Voice Assist su altoparlanti HiFi che diffondono la voce in tutta la casa.
Saprete anche che ho sperimentato (e condiviso) parecchio ultimamente riguardo al mondo "comandi vocali" di Home Assistant con integrazione anche di intelligenza artificiale e test su hardware di diverso tipo.
Vi lascio qui di seguito alcuni link nel caso vi siate persi quacosa.
ReSpeaker Lite 2-Mic Array Voice Kit, integrazione in Home Assistant con ESPHome
ChatGPT in Home Assistant per un assistente vocale con AI
Voice Assist realizzato con un ESP32 e ESPHome con risposta su speaker esterno!
Durante i test e lo sviluppo della mia soluzione, mi sono imbattuto in un problema molto particolare.
La mia idea originaria era quella di piazzare alcuni ReSpeaker in giro per casa che captassero i miei comandi vocali e che inviassero poi la risposta su speaker esterni comandati appunto da schede Arylic connesse ad altoparlanti di qualità.
Tutto a funzionato bene fino a quando non è stata abilitata la modalità di conversazione continua a partire dalla versione 2025.4 di Home Assistant.
In cosa consiste la conversazione continua?
Fino a poco tempo fa eravamo abituati ad attivare i nostri assistenti vocali con la hot word (ehi Google, ehi Jarvis, ecc...) e subito dopo impartire il comando ottenendo risposta.
Fine! Per impartire un secondo comando o fare un'altra domanda all'assistente, dovevamo richiamare nuovamente la parola di attivazione e dare un nuovo comando.
E così via finché ne avevamo bisogno.
Dalla versione di Home Assistant 2025.4 è stata introdotta la conversazione continua, l'assistente vocale capisce (quasi sempre) se la conversazione non è terminata e se stiamo intrattenendo un dialogo, proprio come farebbe una normale persona, e continua a tenere il microfono aperto in attesa di un nuovo comando o di una nuova richiesta senza il bisogno di richiamarlo ogni volta con la hot word.
Capisce anche quando il dialogo e terminato (per esempio se lo salutiamo o se diciamo esplicitamente di non aver più bisogno di lui) e chiude la conversazione continua in attesa di essere di nuovo risvegliato successivamente.
Ho fatto un esempio di conversazione continua nel video qui di seguito.
Dicevo che la mia strategia di inoltrare la risposta alle schede Arylic integrate in Home Assistant, ha funzionato bene fino a che la conversazione continua non era attivata.
Come mai dopo ho avuto problemi?
Inoltrare il TTS ad un altoparlante in rete introduce un piccolo ritardo, quantificabile in pochi decimi di secondo, ma sufficiente ad innescare un problema molto particolare.
Sostanzialmente quando, a seguito della prima risposta, l'assistente vocale riapre il microfono in attesa di un nuovo comando o richiesta, succede che è ancora in esecuzione il TTS precedente sull'altoparlante remoto.
Quindi capta la propria voce come fosse una nuova richiesta ed entra così in un loop potenzialmente infinito.
Dunque ho cambiato strategia: ho deciso di sfruttare l'uscita mini jack delle schede ReSpeaker Lite per collegarla direttamente al relativo ingresso analogico dall'Arylic in ogni ambiente dove ne ho uno.
A questo punto è sorto il problema di passare automaticamente da modalità WiFi alla modalità line-in ogni volta che chiamo l'assistente vocale e di ritornare alla modalità WiFi alla fine della conversazione, per riportare la scheda audio disponibile al sistema multi-room per la musica in casa.
Nel video in coda all'articolo chiarirò bene quanto punto.
Tutto questo preambolo per arrivare all'argomento del giorno.
Purtroppo ad oggi l'integrazione Link Play non permette di aggiungere una scheda in un gruppo multi-room o di cambiare il suo ingresso predefinito ecc..
Ho dovuto quindi usare delle chiamate http sfruttando le API pubbliche di Arylic.
https://developer.arylic.com/httpapi/#http-api
A questo link trovate tutta la documentazione necessaria ad impartire comandi alle schede Arylic semplicemente inviando una stringa HTTP.
Come fare ad usare questo sistema in Home Assistant?
Ho fatto riferimento alle istruzioni presenti al seguente link:
https://www.home-assistant.io/integrations/rest_command/
Io l'ho fatto per comandare le schede Arylic, ma le indicazioni che darò qui di seguito sono valide per qualsiasi chiamata http vogliate fare per comandare qualsiasi altro dispositivo che accetti questo tipo di gestione.
Apriamo una piccola parentesi.
Che cos'è API REST?
API REST (Representational State Transfer) o RESTful è un tipo di API (Application Program Interface) che consente alle applicazioni di servizi web di comunicare fra loro. Prevalentemente utilizza il protocollo HTTP e trasferisce i dati con JSON (JavaScript Object Notation). REST è una delle soluzioni più diffuse per ottenere dati dal web, grazie alla sua flessibilità, velocità e semplicità.
Come funziona?
Quando un client usa comandi HTTP per inviare richieste al server, ad esempio quando si apre una pagina web digitando un indirizzo URL, viene inviata una richiesta HTTP del tipo "VAI + URL". Allo stesso modo, un client REST usa questo tipo di comandi per accedere alle informazioni richieste. I comandi HTTP più comuni sono:
GET – per ottenere una risorsa specificaPOST – per creare una nuova risorsaPUT – per aggiornare una risorsa esistenteDELETE – per cancellare una risorsa esistente
Ad esempio, se volessi impostare una scheda Arylic in modalità line-in dovrei inviare il seguente comando http:
http://192.168.1.166/httpapi.asp?command=setPlayerCmd:switchmode:line-in
Come potrete notare il comando è locale, infatti l'indirizzo 192.168.1.166 è l'indirizzo, nella mia rete locale, di una delle schede Arylic.
Per attivare il RESTful Command in Home Assistant non dovrete fare nulla se non intervenire nel file configuration.yaml aggiungendo la seguente stringa:
rest_command:
e di seguito tutti i comandi http che vi saranno utili da usare successivamente negli script o nelle automazioni.
vi faccio l'esempio del mio caso, ma è solo un esempio.
rest_command:
arylicstudio_linein:
url: "http://192.168.1.166/httpapi.asp?command=setPlayerCmd:switchmode:line-in"
arylicstudio_group:
url: "http://192.168.1.166/httpapi.asp?command=ConnectMasterAp:JoinGroupMaster:eth192.168.1.94:wifi0.0.0.0"
arylicstudio_vol_60:
url: "http://192.168.1.166//httpapi.asp?command=setPlayerCmd:vol:60"
arylicsoggiorno_vol_60:
url: "http://192.168.1.94//httpapi.asp?command=setPlayerCmd:vol:60"
arylicsub_vol_60:
url: "http://192.168.1.28//httpapi.asp?command=setPlayerCmd:vol:60"
arylictavernetta_vol_60:
url: "http://192.168.1.16//httpapi.asp?command=setPlayerCmd:vol:60"
arylicsoggiorno_play:
url: "http://192.168.1.94//httpapi.asp?command=setPlayerCmd:resume"
arylicsoggiorno_pausa:
url: "http://192.168.1.94//httpapi.asp?command=setPlayerCmd:pause"
Come potete osservare, abbiamo in cima l'abilitazione della funzione (rest_command:), ad un livello più basso invece abbiamo il nome del singolo comando (nome a piacere che poi comparirà come comando negli script o nelle automazioni) e, ad un livello ancora più basso il comando vero e proprio.
Come già detto, successivamente questi comandi saranno presenti sotto forma di azioni negli script o nelle automazioni

Nel mio caso ho legato successivamente lo stato della scheda a quello dell'assistente Voice Assist.
Ma questo ve lo mostro nel video qui a seguire direttamente dal nostro canale YouTube MissingTech..
Buona visione!
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.