Xiaomi Mi Smart Home è una famiglia di prodotti realizzati per rendere più SMART la casa, purtroppo sono venduti solo in Cina, ma sono molto economici ecco perché si potrebbero prendere in considerazione e utilizzarli all’interno delle nostre abitazioni. Xiaomi Mi Smart Home Gateway 2 con i sensori di apertura chiusura porta, movimento e pulsante Smart switch si possono utilizzare con Raspberry Pi 3 e Home Assistant per la Casa Domotica.
Come configurare Xiaomi Mi Gateway 2 con Home Assistant e Raspberry Pi 3
A inizio 2016 ho acquistato Xiaomi Smart Home Kit con all’interno il Gateway (versione 1) un sensore di movimento, un sensore apertura/chiusa porta e un pulsante SMART configurabile, questi prodotti si possono utilizzare attraverso l’applicazione Xiaomi Mi Home.
Non sto a dilungarmi su come configurare Xiaomi Smart Home Kit sono cose che do per scontato, l’unica cosa importante da sapere è che l’utilizzo di questi sensori all’interno di Home Assistant è possibile solo con l’ultima versione del Mi Home Gateway, infatti per poter scrivere questo tutorial ho dovuto acquistare separatamente il nuovo Xiaomi Smart Home Gateway (DGNWG02LM), dato che la prima versione (DGNWG01LM) non è configurabile all’interno di Home Assistant.
Prerequisiti per usare Xiaomi Mi Smart Home all’interno di Home Assistant installato su Raspberry Pi 3
Aggiornamento, per installare Home Assistant su Raspberry Pi 3 utilizza la nuova procedura descritta in quest’articolo: Come installare Home Assistant su Raspberry Pi 3 – Hass.io
Per poter seguire questo tutorial devi aver acquistato Raspberry Pi 3 e seguito la procedura d’installazione di Home Assistant con Raspberry Pi All-In-One Installer, trovi tutto nell’articolo: Raspberry Pi 3 con Home Assistant per la Casa Domotica – Progetti Raspberry Pi.
In questo tutorial utilizzerò anche Putty e WinSCP, tutte cose che abbiamo già visto all’interno dell’articolo precedentemente menzionato.
Potrebbe interessarti anche l’articolo: Raspberry Pi 3 con Home Assistant: Broadlink RM Pro + Netatmo + Yeelight per la Casa Domotica.
Xiaomi Smart Home Kit con Home Assistant – Scaricare i file necessari
Xiaomi Mi Smart Home Kit non è tra i prodotti ufficialmente compatibili con Home Assistant e che trovi elencati nella pagina web Components, per fortuna però ci sono persone che hanno scritto il codice per poter utilizzare questi sensori con Home Assistant, quindi la prima cosa da fare è andare su github.com.
Una volta su github.com bisogna registrasi quindi quindi scaricare i file cliccando su “clone or download” e poi su Download Zip.
Ora bisogna scompattare il file .zip in una cartella del PC, quindi copiare il contenuto della cartella components in:
/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components
Questo è possibile farlo utilizzando WinSCP, se ricevete il messaggio “cartella binary_sensor già esistente sovrascrivere” cliccate su “Si a Tutti”.
Conclusa questa prima parte configuriamo Xiaomi Mi Smart Home Gateway.
Xiaomi Mi Smart Home Gateway come attivare le funzioni sviluppatore e local area network communication protocol
Aprire l’applicazione Mi Home sul proprio smartphone android, quindi tra l’elenco dei dispositivi selezionare il Mi Home Gateway di seconda generazione, nella schermata successiva fare tap sull’icona con tre puntini orizzontali in alto a destra dello schermo.
Fare tap su “about”, quindi attivare la modalità sviluppatore con tap ripetuti sulla scritta Version: 2.23 (la vostra versione potrebbe essere differente), a questo punto verranno visualizzate nuove voci, fare tap su “local area network communication protocol”.
Attivare il pulsante “local area network communication protocol e memorizzare la password, tap su confirm, dovreste ricevere un messaggio con scritto “result ok”.
Sempre nella schermata about fare tap su “gateway information” e copiare il MAC ADDRESS (MAC: 28:xx:xx:yy:zz:x6) questo serve solo se avete intenzione di configurare più di uno Xiaomi Smart Home Gateway all’interno di Home Assistant
Ora passiamo alla configurazione su Home Assistant.
Configurare Home Assistant per accedere a Xiaomi Mi Smart Home Gateway e relativi sensore associati
Aprire il file configuration.yaml e inserire il codice:
[code language=”python”]
# Xiaomi Mi Home Gateway
xiaomi:
gateways:
– sid:
key: xxxxxxxxxxxxxxxx
[/code]
Key è la password precedentemente salvata. Riavviare Home Assistant da Putty con il solito comando:
sudo systemctl restart home-assistant.service
Il riavvio sarà più lungo del solito perché verrà installato in automatico Pycrypto.
Se tutto è andato per il verso giusto raggiungendo la schermata principale di Home Assistant e cliccando in States sotto la scritta Developer Tools dovreste trovare dei valori tipo:
binary_sensor.door_window_sensor_158d0000efa0e2
binary_sensor.motion_sensor_158d0000ed3333
binary_sensor.switch_158d0000eff3fd
A questo punto i sensori apertura chiusura porta, sensore movimento e pulsante smart presenti nel Xiaomi Mi Smart Home Kit si possono utilizzare all’interno di Home Assistant per creare procedure automatizzate.
Come automatizzare la casa domotica con Xiaomi Mi Smart Home, Home Assistant e Raspberry Pi 3
Dopo la prima fase di configurazione vediamo come sfruttare i componenti del Xiaomi Home Kit, Wireless Switch, Occupancy Sensor e Door and Windows Sensor, per creare procedure automatizzate.
Come rendere più user friendly la visualizzazione dello stato dei sensori all’interno di Home Assistant
Iniziamo con il dare dei nomi un po’ più “user friendly” a questi sensori, per fare questo è necessario aprire il file configuration.yaml oppure il file customize.yaml, se avete creato un file a parte per la personalizzazione dei sensori in Home Assistant, e inserire il seguente codice:
[code language=”python”]
#############XIAOMI Mi GATEWAY####
binary_sensor.door_window_sensor_158d0000efa0e2:
friendly_name: "Sensore Porta"
binary_sensor.motion_sensor_158d0000ed3333:
friendly_name: "Sensore Movimento"
binary_sensor.switch_158d0000eff3fd:
friendly_name: "Campanello"
camera.xiaomi_camera:
friendly_name: "Telecamera"
[/code]
Io ho inserito il codice nel file customize.yaml, dove inserisco tutte le personalizzazioni dei vari sensori, questo file dev’essere incluso nel file configuration.yaml, per fare questo è sufficiente inserire il codice customize: !include customize.yaml
nel file configuration.yaml, esempio:
[code language=”python”]
homeassistant:
name: Enore Home
latitude: xx.xxxxx
longitude: xx.xxxxx
elevation: 20
unit_system: metric
time_zone: Europe/Rome
customize: !include customize.yaml
[/code]
Per visualizzare lo stato dei sensori Xiaomi creiamo un nuovo gruppo “Mi Home” all’interno del file groups.yaml, si può creare anche all’interno dei file configuration.yaml ma consiglio di creare un file groups.yaml dove inserire tutti i vostri gruppi e di includerlo nel file configuration.yaml con il codice group: !include groups.yaml
[code language=”python”]
##Xiaomi##
Mi Home:
– binary_sensor.door_window_sensor_158d0000efa0e2
– binary_sensor.motion_sensor_158d0000ed3333
– binary_sensor.switch_158d0000eff3fd
[/code]
Quindi inserire il gruppo “Mi Home” all’interno di uno dei gruppi principali, nel mio caso uso Xiaomi Mi Smart Home in ufficio quindi lo inserirò all’interno del gruppo “Ufficio”, per includerlo è sufficiente aggiungere alla lista (entities) il valore: – group.mi_home (il nome del gruppo in minuscolo con _ al posto dello spazio).
[code language=”python”]
ufficio:
name: Ufficio
view: yes
entities:
– group.mi_home
– group.aeotec_multiSensor_6
– group.broadlink
– light.ufficio
– light.lampada_ufficio
– switch.broadlink_switch
[/code]
Riavviare Home Assistant, ora se raggiungo la pagina principale di Home Assistant e vado in Ufficio vedo il gruppo Mi Home con indicato lo stato dei sensori, ovviamente la semplice visualizzazione dello stato dei sensori non ha molta utilità.
Il passo successivo potrebbe essere quello di rinominare l’output del sensore, per esempio per il sensore porta sarebbe meglio avere un valore tipo “aperta” invece di “on” e “chiusa invece” di “off”.
Home Assistant, Raspberry Pi 3, Xiaomi Mi Smart Home Kit: esempio di automazione
A questo punto si potrebbe creare una automazione, così possiamo parlare di Casa Domotica in modo appropriato.
Alcune volte mi capita di uscire dalla stanza del mio ufficio lasciando la porta aperta ed il condizionatore acceso, questo mi capita sia d’inverno che d’estate, capirete che se mi assento per 5 minuti non succede nulla, ma se mi assento per diverso tempo il condizionatore consumerà energia per niente, inoltre con la porta aperta i consumi saranno ancora maggiori.
Per questo motivo ho creato un automatismo grazie al quale il condizionatore si spegne se la porta del mio ufficio rimane aperta per più di 30 minuti, vediamo l’esempio.
Per spegnere e accendere il condizionatore dell’ufficio utilizzo il Broadlink RM Pro, già configurato con Home Assistant e Raspberry Pi, l’integrazione della piattaforma Broadlink all’interno dei Home Assistant l’ho trattata nell’articolo: Raspberry Pi 3 con Home Assistant: Broadlink RM Pro + Netatmo + Yeelight per la Casa Domotica.
È necessario creare un file chiamato automation.yaml in questo file inseriremo tutti gli automatismi che vogliamo avere nella nostra casa domotica, in questo caso il codice da inserire nel file automation.yaml è il seguente:
[code language=”python”]
– alias: ‘Spegni Condizionatore’
trigger:
platform: state
entity_id: binary_sensor.door_window_sensor_158d0000efa0e2
state: ‘on’
for:
hours: 00
minutes: 30
seconds: 00
condition:
condition: state
entity_id: switch.broadlink_switch
state: ‘on’
action:
– delay: 00:00:10
– service: switch.turn_off
entity_id: switch.broadlink_switch
– service: notify.telegram
data:
message: ‘Hai dimenticato il condizionatore acceso!’
[/code]
Esaminiamo brevemente il codice, trigger da inizio alla regola d’automazione, in questo caso il sensore porta di Xiaomi Mi Smart Home (entity_id: binary_sensor.door_window_sensor_158d0000efa0e2 il tuo avrà un entity_id differente) se è nello stato (platform: state) di “on” da almeno 30 minuti (for: minutes:30) e se è verificata la condizione (condition) che lo switch Condizionatore Ufficio (entity_id: switch.broadlink_switch) è su ON (state: ‘on’) verrà eseguita l’azione (action🙂 di spegnere il condizionatore (service: switch.turn_off) dell’ufficio (entity_id: switch.broadlink_switch), questo dopo 10 secondi (delay: 00:00:10), inoltre mi arriverà un messaggio su Telegram (service: notify.telegram) che mi avvisa di aver lascito il condizionatore acceso (message: ‘Hai dimenticato il condizionatore acceso!’).
Come abbiamo visto in questi automatismi è possibile inserire delle condizioni (conditions), per esempio è possibile fare in modo che un automatismo venga eseguito solo a determinati orari del giorno, solo se una persona è in casa ecc. Per maggiori informazioni puoi raggiungere la pagina Automating Home Assistant.
Creato il file automation.yaml con all’interno i nostri automatismi dovremo includerlo del file configuration.yaml inserendo questo codice:
[code language=”python”]
automation: !include automation.yaml
[/code]
Questi sono solo semplici esempi che però mostrano come, grazie a Raspberry Pi 3 e Home Assistant, sia possibile far dialogare tra loro prodotti per la Casa Domotica che difficilmente riuscirebbero a “comunicare” tra di loro, in questo esempio Xiaomi Mi Smart Home è stato utilizzato insieme al Broadlink RM Pro.
Potrebbe interessarti anche l’articolo: Configurare Aeotech MultiSensor 6 con Home Assistant e Raspberry Pi 3 – Open Z-Wave.
Ciao, grazie ai tuoi articoli sono riuscito ad installare HA su Raspberry Pi Zer W in modo semplice e pratico!
Ho attivato le notifiche tramite Telegram e creato un’automazione di prova ma non funziona, mi dai una mano a capire dove sbaglio? Ti allego il codice di esempio
telegram_bot:
platform: polling
Api_key: AAAAAAAA: XXXXXXXXXXXXXXXXXXXXX
allowed_chat_ids:
NNNNNNNN
notify:
platform: telegram
Chat_id: NNNNNNNN
automation.yalm file so:
alias: prova
trigger:
entity_id: device_tracker.Daniele
event: enter
platform: zone
zone: zone.home
action:
service: notify.xxxxxxx
data:
message: ‘ciao’
(il bot l’ho testato tramite la stringa https://api.telegram . org/bot/sendMessage?chat_id=xxxx&text=123 e funziona)
Grazie!!! 🙂
Complimenti per l’articolo. Lo condivido nel gruppo facebook: “Xiaomi: Domotica & Smart Home”
Ciao, il sensore di presenza ha anche il sensore crepuscolare?
Cioè se lo si usa per accendere una luce, la accende anche i giorno?
Ciao il sensore di movimento non ha il crepuscolare, però nel Xiaomi Mi Home Smart Gateway è presente un sensore di luminosità, quindi potresti usare il valori di luminosità che fornice il gateway come condizione perché la luce si possa accendere.
In alternativa puoi utilizzare come condizione un intervallo di tempo, nel tuo automatismo inserirai una condizione del tipo:
condition:
condition: time
after: ’17:00:00′
before: ’07:00:00′
weekday:
– mon
– wed
– fri
Oppure puoi sfruttare l’attributo elevation (angolo che forma il sole con l’orizzonte) del componente Sun https://home-assistant.io/components/sun/
Interessante il componente Sun, ho però visto che la nuova versione aqara del sensore di movimento ha anche il sensore di luce.
Per caso conosci un componente supportato in Home Assistant che mi permetta di comandare il pulsante delle luci delle scale, installaibile all’interno della scatola a muro?
Bravo hai detto bene, sensore di movimento della serie Xiaomi Aqara integra anche il sensore di luminosità inoltre ha un supporto per fissarlo anche alla parete https://goo.gl/z51x7U
Non conosco una soluzione semplice per gestire le luci attraverso un relè da inserire all’interno della scatola e che si possa gestire all’interno di Home Assistant. Ci sarebbe il Sonoff http://amzn.to/2FtiD8v ma poi devi flasharci il firmare Tasmota se vuoi che funzioni con MQTT, il prodotto è piccolo però forse fatica un po’ a stare dentro una scatola di misura standard. Oppure puoi cercare dei relè z-wave