Xiaomi Mi Robot Aspirapolvere e Home Assistant su Raspberry Pi per la Casa Domotica

Xiaomi Mi Robot Aspirapolvere e Home Assistant su Raspberry Pi per la Casa Domotica

Xiaomi Mi Robot Vacuum il miglior robot aspirapolvere come rapporto qualità/prezzo attualmente in commercio si può facilmente integrare all’interno della piattaforma gratuita per la Casa Domotica Home Assistant.

Chi segue TopDiGamma.it ed è interessato agli argomenti sulla Casa Domotica avrà già letto alcuni articoli su come utilizzare Home Assistant installato su Raspberry Pi 3, in quest’articolo voglio illustrare la procedura per integrare l’aspirapolvere robot Xiaomi Mi Robot Vacuum all’interno di Home Assistant, in modo da poterlo inserire nelle automazioni create per Home Assistant.

Xiaomi Mi Robot Aspirapolvere e Home Assistant su Raspberry Pi 3 per la Casa Domotica

Xiaomi Mi Robot Vacuum, come altri tra i migliori robot aspirapolvere in commercio, si può integrare all’interno di Home Assistant, una volta configurato il robot aspirapolvere avremo accesso a diverse funzioni:

  • avviare/interrompere la pulizia;
  • fare la pulizia a spot;
  • localizzare il robot aspirapolvere;
  • farlo tornare alla base di ricarica;
  • selezionare la potenza di aspirazione;
  • vedere lo stato in cui si trova l’aspirapolvere robot, se sta pulendo oppure se si sta ricaricando;
  • conoscere la % di carica residua della batteria;
  • saranno disponibili anche le informazioni sulla funzione non disturbare, su l’ultima pulizia con tempo di pulizia e superficie pulita, informazioni sullo stato di salute del robot aspirapolvere.
Xiaomi Mi Robot Aspirapolvere configurato dentro Home Assistant
Xiaomi Mi Robot Aspirapolvere configurato all’interno di Home Assistant
Home Assistant funzioni disponibili per Xiaomi Mi Robot Aspirapolvere
Frontend Home Assistant funzioni disponibili per Xiaomi Mi Robot Aspirapolvere

Come configurare Xiaomi Mi Robot Vacuum all’interno di Home Assistant

Se ancora non possiedi il robot aspirapolvere della Xiaomi ti consiglio di leggere quest’articolo: Recensione Xiaomi Mi Robot Vacuum: il miglior Aspirapolvere Robot come qualità/prezzo?

Inoltre potresti essere interessato all’acquisto del nuovo modello il Roborock Sweep One o Roborock S50 o più semplicemente Xiaomi Mi Robot Vacuum 2: Aspirapolvere Xiaomi Mi Robot Vacuum 2: Conviene acquistarlo?

Per chi è già in possesso del robot aspirapolvere ecco come configurarlo per poterlo inserire all’interno delle automazioni create su Home Assistant.

La prima cosa da fare è estrarre la chiave d’accesso al robot, Access Token o API Token, una chiave d’accesso formata da 16 caratteri alfanumerici, per fare questo sarà necessario scaricare il software per PC MiToolKit, mentre scrivo il file è MiToolkit.1.6.zip.

Come conoscere la Access Token del Xiaomi Mi Robot Aspirapolvere

Installare e configurare il Xiaomi Mi Robot Aspirapolvere all’interno dell’applicazione Mi Home.

Scaricare il software per Mi Tool Kit

Installare Java sul proprio computer, se non l’avete già installato.

Se avete installata una versione di Mi Home successiva alla 5.0.19 allora sarà necessario disinstallarla e quindi installare il file .apk di Mi Home 5.0.19, si trova facilmente con Google, io ho scaricato il file apk da apkmirror.com.

Abilitare la modalità sviluppare o opzioni sviluppatori sul proprio smartphone, quindi attivare il Debug USB.

Collegare il proprio smartphone al PC tramite cavo USB.

Scompattare il file MiToolkit.1.6.zip in una cartella qualsiasi del vostro computer e quindi avviare il programma con un doppio click sul file MiToolkit.exe

Scegliere la lingua inglese e cliccare su Extract Token, cliccare nuovamente su Extract Token, si apre una finestra cliccare su OK.

MiToolKit software per estrarre Access Token del Xiaomi Mi Robot Vacuum

MiToolKit extract token

Sul vostro smartphone si apre l’applicazione Mi Home, dare conferma per il backup (effettua backup dei miei dati) e NON inserire alcuna password.

MiToolKit extract token backup successful starting estraction

Attendere qualche minuto, al termine del backup, ricevere il messaggio Backup successful, starting extraction, cliccare su OK, dopo qualche secondo dovrebbe comparire una lista dei prodotti Xiaomi e Yeelight che avete in casa con il nome che gli avete assegnato, l’Api Token e l’indirizzo IP Locale, vedi figura sotto.

MiToolKit extract token lista dispositivi xiaomi yeelight

Codice da inserire all’interno del file configuration.yaml

Aprire il file configuration.yaml e inserire questo codice:

vacuum:
  - platform: xiaomi_miio
    host: 192.168.1.2
    token: YOUR_TOKEN
    name: Mi Aspirapolvere Robot

Dove come host va inserito l’indirizzo IP locale del vostro Xiaomi Mi Robot Vacuum, mentre in token va messa l’API Token appena estratta, consiglio di impostare il vostro modem/router in modo che assegni sempre lo stesso indirizzo IP Locale al robot aspirapolvere Xiaomi  (Address Reservation – Prenotazione Indirizzi IP).

Fatto questo riavviare Home Assistant, quindi andare in strumenti per gli sviluppatori, cliccare su stati (<>), quindi scorrere la pagina fino a individuare l’entità associata al vostro robot aspirapolvere, nel mio caso è vacuum.mi_aspirapolvere_robot.

Ora è possibile visualizzare i dati nel frontend di Home Assistant creando un gruppo, per esempio se teniamo l’aspirapolvere robot in soggiorno potremmo inserire all’interno del file groups.yaml (file incluso in configuration.yaml) un codice tipo questo:

  default_view:
    view: yes
    entities:
      - group.soggiorno
      - group.cucina
      - group.allarme
      - group.meteo
  soggiorno:
    name: Soggiorno
    view: yes
    entities:
      - vacuum.mi_aspirapolvere_robot
      - group.netatmo_stazione_meteo
      - group.multimedia_soggiorno
      - group.luci_soggiorno
      - group.luci_scale
      - binary_sensor.netatmo_top_motion
      - binary_sensor.netatmo_top_someone_known
      - binary_sensor.netatmo_top_someone_unknown
      - camera.netatmo_top
      - media_player.chromecast_4k_sala

Una volta inserito questo codice riavviare Home Assistant, ora sarà possibile accedere alle funzioni del Xiaomi Robot Aspirapolvere anche dal frontend di Home Assistant, l’interfaccia sarà come quella mostrata nelle figure mostrate all’inizio di quest’articolo.

Xiaomi Mi Robot Vacuum e Home Assistant su Raspberry Pi – Esempio di Automatismo

Inserire il robot aspirapolvere Xiaomi all’interno di Home Assistant è molto semplice, il passo successivo dovrebbe essere quello di creare delle automazioni che semplifichino la vita di tutti i giorni.

L’applicazione Mi Home ci offre già molte possibilità di configurazione, tuttavia non ci offre la possibilità di far partire il robot aspirapolvere solo se NON ci sono persone in casa, questa possibilità potrebbe essere utile per chi non ama essere disturbato dal rumore del robot aspirapolvere. Questo automatismo si può creare con Home Assistant, ma non con l’applicazione Mi Home.

# Start Xiaomi Robot Vacuum 
- alias: mivacuumgo    
  trigger:    
    platform: time    
    at: '09:30:00'    
  action:    
    service: homeassistant.turn_on    
    entity_id: vacuum.mi_aspirapolvere_robot   

In questo primo esempio ho creato un automatismo che fa partire il robot aspirapolvere ( vacuum.mi_aspirapolvere_robot ) tutti i giorni alle 9:30, cosa che si può fare anche con l’applicazione Mi Home, vediamo un altro esempio.

Creo un componente input_boolean all’interno del file configuration.yaml inserendo questo codice:

input_boolean:
  mi_vacuum_one_time:

Di seguito il codice per l’automazione, io ho creato una cartella /includes/automation dove inserisco le varie automazioni come nome_automazione.yaml, in questo modo ogni file è una automazione, per includerle in Home Assistant sarà sufficiente inserire automation: !include_dir_merge_list includes/automation/ nel file configuration.yaml

# Start Xiaomi Robot Vacuum  
- alias: mi_vacuum_go
  trigger:
    platform: state
    entity_id: group.all_devices
    from: 'home'
    to: 'not_home'
    for:
      minutes: 15
  condition:
    - condition: state
      entity_id: input_boolean.mi_vacuum_one_time
      state: 'off'
    - condition: template
      value_template: '{{ states.vacuum.mi_aspirapolvere_robot.attributes.battery_level &gt; 70 }}'
    - condition: time
      after: '08:00:00'
      before: '20:00:00'
      weekday:
        - mon
        - tue
        - wed
        - thu
        - fri
        - sat
  action:
    - service: homeassistant.turn_on 
      entity_id: vacuum.mi_aspirapolvere_robot
    - service: homeassistant.turn_on
      entity_id: input_boolean.mi_vacuum_one_time

- alias: mi_vacuum_stop
  trigger:    
    platform: time    &lt;span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"&gt;&lt;/span&gt;
    at: '00:30:00'    
  action:    
    service: homeassistant.turn_off   
    entity_id: input_boolean.mi_vacuum_one_time   

In questo secondo esempio mostro il codice per creare un’automazione che fa partire il robot tutti i giorni tranne la domenica, tra le ore 8:00 del mattino e le 20:00 quando tutti i membri della famiglia sono usciti di casa da almeno 15 minuti e solo se la carica residua della batteria è superiore al 70%

Per sapere come tracciare i propri smartphone puoi leggere l’articolo: Automazioni in base alla geolocalizzazione dei propri device – Home Assistant.

Da notare che all’interno del codice ho inserito condizione sfruttando il valore di input_boolean.mi_vacuum_one_time, questo per evitare che il robot aspirapolvere parta più volte al giorno nel caso uscissimo e rientrassimo a casa diverse volte, effettuato un ciclo di pulizia il valore di input_boolean.mi_vacuum_one_time viene impostato su “on” e successivamente alle 00:30 del mattino viene nuovamente impostato su “off”.

Può capitare che durante una giornata ci sia sempre qualcuno in casa, in questo caso se vogliamo essere sicuri che venga effettuato almeno un ciclo di pulizia giornaliero, possiamo creare un automatismo che faccia partire il robot ad un determinato orario indipendentemente dal fatto che ci sia o non ci sia qualcuno in casa, ma solo se input_boolean.mi_vacuum_one_time è su “off”.

Nel frontend di Home Assistant è possibile creare una pagina di configurazione dove possiamo attivare e disattivare le automazioni che abbiamo creato, per esempio potremmo voler disattivare l’automazione se partiamo per il weekend, per creare una specie di pannello di controllo sarà sufficiente inserire questo codice nel file groups.yaml incluso in configuration.yaml

  settings:
    name: Impostazioni
    view: yes
    icon: mdi:settings
    entities:
      - group.global_settings
    
  global_settings:
    name: Generali
    entities:
    - automation.mi_vacuum_go

Come usare Xiaomi Mi Robot Aspirapolvere all’interno di Home Assistant – Conclusioni

Home Assistant e Xiaomi Mi Robot Aspirapolvere non finiscono mai di stupire, in modo semplice è veloce è possibile integrare il miglior robot aspirapolvere come qualità/prezzo all’interno della migliore piattaforma gratuita per la Casa Domotica.

All’interno di Home Assistant è possibile anche configurare altri robot aspirapolvere delle migliori marche, tipo Neato Botvac Connected, iRobot Roomba 980, 690, 890, 960, Dyson 360 Eye.

Prodotti utilizzati in quest’articolo