Come integrare Xiaomi Vacuum in Home Assistant e come comandarlo vocalmente
Home Assistant
Scritto da Luigi Duchi
Buona sera ragazzi, mi ritrovo di nuovo a scrivere una (spero utile) guida. Questa volta concentreremo il nostro lavoro per integrare l'aspirapolvere robotico marchiato Xiaomi in Home Assistant, vedendo anche come gestirlo tramite comandi vocali.
Per permettere questa operazione partiremo dalla configurazione sul nostro file CONFIGURATION.YAML. La procedura per arrivare al nostro oramai famoso file é sempre la stessa: da terminale del Raspberry digitate il comando sudo pcmanfm e premete invio, in seguito sarà necessario andare in questo percorso home/homeassistant/.homeassistant e cliccare sul nostro file.
Necessiterete di due valori: l'indirizzo IP del robot e il token segreto.
L'indirizzo IP lo reperirete facilmente, vi basterà semplicemente aprire l'applicazione mihome, premere sull'icona del vaccum (che ovviamente avrete già configurato), in seguito premerete l'icona a forma di cerchio con all'interno i tre puntini, situato in alto a destra, successivamente premete su General setting e poi su network info.
Per quanto riguarda il token vi rimando alla guida su come estrarlo che potete consultare QUI
Una volta che avrete questi dati andremo a compilare il nostro file configurato.yaml inserendo questa stringa:
vacuum:
- platform: xiaomi_miio
host: indirizzo ip vacuum
token: token segreto
name: Nome che volete dare al vacuum
Successivamente non vi resta che salvare il file e riavviare il servizio di Home Assistant.
Al riavvio del programma noterete comparire il vostro vacuum tra i dispositivi disponibili nella home page di HA, adesso avrete il pieno controllo del vostro dispositivo...
A questo punto procederemo per integrare i comandi vocali di Google Assistant con il nostro vacuum,tramite IFTTT.
Comandi vocali vacuum con IFTTT:
per prima cosa andate alla pagina di IFTTT al seguente indirizzo:
https://ifttt.com/discover
loggatevi con il vostro account, se non ne avete uno createlo.
Una volta loggati cliccate su My applets
poi su services
dopo premete su all service
digitate nella barra la scritta google assistant e cliccate nella relativa icona
premete su connect
ed infine accettate premendo il tasto allow
una volta aggiunto Google Assistant al vostro account IFTTT dovrete aggiungere un ulteriore servizio, perciò tornate su all service e questa volta nella barra di ricerca andrete a digitare il nome di un altro servizio chiamato webhooks
cliccate sulla relativa icona e dopo selezionate il tasto connect
Adesso che abbiamo configurato questi due servizi sul nostro account IFTTT andremo a configurare il servizio IFTTT sul nostro Home Assistant, se precedentemente avete gia svolto questa operazione saltate il passaggio.
Home Assistant e IFTTT devono comunicare tra loro per far questo avremmo bisogno della medesima password personale che potrete trovare sul servizio webhooks
per fare ciò ritornate sulla pagina principale della vostra pagina IFTTT
cliccate su my applets e dopo su services
noterete adesso che la pagina dei vostri servizi registrati mostrerà appunto l'icona di webhooks
cliccateci sopra e premete il tasto settings in alto a destra.
nella pagina che vi si presenterà dovrete copiare cio che vi si presenterà al posto della scritta your_ifttt_special_password
bene una volta copiato tornate al vostro file configuration.yaml e aggiungete la seguente stringa:
ifttt:
key: password che avrete preso dal setting di webhooks
salvate e riavviate i servizi di Home Assistant.
benissimo, adesso che avete configurato tutto, non vi rimane che configurare il trigger su ifttt, per farlo recatevi di nuovo nella home page di IFTTT.
cliccate su my applets, poi su new applet
vi troverete di fronte la consueta frase di ifttt appunto if this then tath
cliccate su this
cercate il servizio google assistant e cliccateci sopra
poi selezionate la prima delle 4 modalità ovvero say a simple phrase
si aprirà un riquadro che vi chiederà: What do you say? ovvero il comando che vorrete impartire a Google Assistant per attivare il trigger io ad esempio ho messo "start cleaning"
potrete impostare anche cio che Google Assistant vi risponderà una volta recepito l'ordine compilando sotto la domanda What do you want the Assistant to say in response?
purtroppo per il momento le lingue compatibili sono solamente Inglese, Tedesco, Francese e Giapponese.
Benissimo adesso cliccate su that
cercate il servizio webhooks e cliccateci sopra, poi cliccate sull'unico riquadro che vi verrà proposto ovvero Make a web request e compilate come da esempio sostituendo i vostri dati come mostrato di seguito
nella casella url dove nell'esempio troverete scritto your_hostname , andrete ad inserire l'indirizzo ip del vostro Home Assistant, seguito dalla porta del servizio (es. 192.168.1.187:8123) anche se sarebbe preferibile utilizzare un ddns al posto del indirizzo ip ad esempio ddnsdavoicreato.ddns.net:8123. Sempre nel riquadro url dove nell'esempio troverete scritto http_password non farete altro che inserire la password per accedere ad Home Assistant .
Sotto la voce body invece andrete ad inserire il vostro entities del vacuum. Dove trovarlo? Semplice aprite Home Assistant andate nel menù a tendina sulla sinistra e sotto la scritta developer tools selezionate la seconda icona, quella chiamata states scorrendo le varie entities troverete quella relativa al vostro vacuum (es. vacuum.nomeassegnato) quindi andrete a compilare come da foto la voce body sostituendo con il nome del vostro vacuum. A questo punto premete su create action andando a finalizzare l'operazione. Fatto questo passaggio levate la spunta alla notifica ogni volta che il servizio viene eseguito e premete sul tasto finish. Il vostro trigger è pronto, potrete crearne uno ad esempio per fermare la pulizia e far ritornare il robot alla base di ricarica ripartendo da capo con un nuovo applet, ovviamente la frase di attivazione dovrà essere diversa ad esempio stop cleaning e ovviamente nell'url del webhooks dovrete cambiare turn_on in turn_off.
Una volta creati i comandi di ON e OFF potrete richiamare Google Asistant sul vostro telefono (se avrete il telefono con lingua inglese impostata) oppure da un dispositivo Google Home mini/Google Home maxi/Google Home con la classica frase hey google e pronunciare la frase scelta per attivare il trigger ad esempio start cleaning e se tutto è andato a buon fine il vostro vacuum inizierà a pulire.
Sostituire la voce del robot con voci italiane:
Ci potevamo accontentare di gestire il nostro vacuum da Home assistant? Sarebbe stato sufficiente poterlo gestire con comandi vocali? La risposta é: decisamente NO!!!
Ecco che in nostro aiuto con il suo splendido lavoro arriva xCape, per chi non lo conoscesse XCape e' un programmatore molto attivo nelle traduzioni nel mondo xiaomi, ha creato infatti una versione completamente in italiano della applicazione Mihome. La traduzione dell'app e' solo la punta dell'iceberg del suo lavoro,infatti ha creato firmware tradotti per molti dei dispositivi Xiaomi e ha creato un programma chiamato replacer, questo programma permette oltre di scaricare i vari plug-in dei dispositivi all'interno di mi home completamente tradotti in italiano anche di cambiare la voce al nostro amato Vacuum Xiaomi. vi esorto a iscrivervi al suo canale telegram e' sempre molto disponibile e soprattutto molto molto competente. Lo potrete trovare qui: t.me/xcape4xiaomi
ma vediamo nel dettaglio come caricare le voci italiane nel nostro robot:
- Purtroppo Xiaomi ha tolto l'accesso diretto ai dispositivi dalla versione 5.1.0 quindi è necessario installare una versione inferiore (ad esempio https://t.me/xcape4xiaomi/27123)- Scaricare Replacer (pacchetto base + update 136 o superiore) ed estrarre entrambe in c:xcapesoft- potrete trovare il programma replacer QUI (lo troverete all'interno della cartella xC-Replacer sono i due file nella cartella di destra) scompattate prima il pacchetto base e successivamente l'aggiornamento nel solito percorso e confermate la sostituzione dei file quando ve lo chiederà- Collegare il cellulare (quello dove avrete installato la versione mod di mihome)al pc con USB Debug attivo- Avviare replacer- assicurarsi che il telefono sia riconosciuto dal programma- Toccare la rotella in basso a sx di replacer e scegliere menu hack>Vacuum voice package- Nella finestra che si apre, clikkare 'scarica add-on' e attendere la spunta verde- Scaricare una o più voci (è possibile anche ascoltare una demo, prima di scaricarla)- Avviare la procedura che consiste in fare un backup di Mihome nel telefono (per l'estrazione del token) e l'avvio di MiRobo- Seguire le istruzioni a schermo
Se tutto va liscio avrete la vostra lingua italiana sul Robot.Non è mai stato registrato nessun problema a nessun Robot durante il betatestCambiare lingua dall'applicazione significa perdere la lingua ITA.
Una volta completata la procedura potrete se volete cancellare la versione moddata di mihome erimettere l'originale senza perdere la possibilità di avere la lingua italiana del vacuum
EDIT: Se notate che il messaggio di avvio del robot rimane in cinese non vi preoccupate e' un messaggio che xiaomi ha inserito in occasione del capodanno cinese andrà via a fine mese se cosi non fosse il mese prossimo ripetete la procedura.
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.