Dialogo tra Google Assistant ed Arduino

Visto il successo dei voice personal assistant come Google Home e Alexa, mi stavo anche io interessando all'argomento visto che ho a casa 2 Home Mini e mi incuriosisce come poter collegare un Arduino (o ESP diciamo) al servizio vocale e "fare qualcosa comandandolo con la voce".

Di fatto, stando a quanto ho potuto vedere, ci sono varie soluzioni possibili ognuna comunque con pro e contro. Attualmente non ho ancora fatto prove specifiche, perché prima di scegliere una modalità ovviamente vorrei capirne pro e contro per identificare quella a me più adatta. Ci sono anche alcune varianti (ad esempio usando Blynk in mezzo) ma per ora vorrei concentrarmi su quelle più "canoniche".

Provo a riepilogarle, anche se qualcosa ancora non mi è del tutto chiara, ma correggetemi se qualcosa vi risulta errato o da completare:

  1. Home -> Assistant -> IFTTT -> Arduino
    Questa è quella più o meno "canonica", diciamo quella "tutta Google" (Assistant di fatto è su Dialogflow che si chiamava API.AI in vecchi tutorial). Qualche informazione QUI (tralasciate il tipo di device).
    Ma ha come contro il fatto che bisogna aprire una porta specifica sul proprio firewall per permettere ad IFTTT di dialogare col device, e questo può essere un problema.

  2. Home -> Assistant -> Heroku -> Arduino
    Questa soluzione è analoga alla precedente, ma utilizzando Heroku non è necessario aprire porte sul firewall in quanto è il device che si connette e registra sul server Heroku.
    Ha come "contro" che utilizza un servizio esterno che in precedenza non avevo mai sentito.

  3. Home -> Assistant -> IFTTT -> Adafruit -> Arduino
    Come descritto QUI, si collega via MQTT ad Adafruit IO il quale si aggancia a IFTTT.
    Anche questa soluzione non richiede l'apertura di firewall, ma, almeno dal mio punto di vista, anche se coinvolge un server in più rispetto alla soluzione 2, diciamo mi "fido" più di Adafruit che di Heroku :slight_smile:

Mi chiedo quale sia il metodo utilizzato dai device come Chromecast ad esempio, teoricamente sarebbe il primo, ma dato che non si deve aprire nessuna porta, probabilmente si registra in un server Google, e "giocano in casa".

Tutte e tre le soluzioni sono quindi ovviamente praticabili per cercare di interfacciare Arduino o un ESP, ma mi sembra di aver capito che la terza sia quella più frequentemente utilizzata.
In definitiva, confrontando pro e contro voi quali suggerireste, e perché? Se avete già fatto qualcosa in questo contesto, quale soluzione avete utilizzato?

Ciao, come già sai io ho utilizzato il terzo caso ed è stato veramente semplice creare la comunicazione, però mi piacerebbe capire se c’è un modo per integrarlo veramente bene con Google home in modo che vengano visualizzati i dispositivi a mò di tasti con relativo stato (on-off) come avviene con i dispositivi supportati ufficialmente, e non solo a comando vocale.
O al massimo basterebbe avere una risposta direttamente sull’asistente.
Io ora la risposta la rilevo tramite notifica nell’app ifttt

acuplush:
mi piacerebbe capire se c'è un modo per integrarlo veramente bene con Google home in modo che vengano visualizzati i dispositivi a mò di tasti con relativo stato (on-off) come avviene con i dispositivi supportati ufficialmente, e non solo a comando vocale.

Se ho capito bene cosa intendi, io credo che non sia attualmente possibile, perché coinvolge un qualche sorta di "applet" da aggiungere all'app Google Home, non lo escluso ma non ho mai sentito di questa cosa.
Al limite realizzare un'app addizionale quello forse si, sempre da agganciare a IFTTT probabilmente.