Allarme Perimetrale con Sensori Xiaomi Aqara e Home Assistant

Allarme Perimetrale con Sensori Xiaomi Aqara e Home Assistant

In quest’articolo spiego come utilizzare i migliori sensori Xiaomi Aqara Smart Home, quindi sensore di movimento, sensore di apertura chiusura finestre, sensore di vibrazione per creare un allarme perimetrale fai da te per la nostra casa domotica.

Scrivo fin da subito che non si tratta di un antifurto perimetrale esterno, per perimetrale intendo che può essere attivato anche quando siamo in casa e che ci dovrebbe protegge dall’intrusione di ladri prima che questi entrino in casa, quindi i sensori andrebbero applicati agli infissi e serramenti di casa.

Ovviamente trattandosi di un impianto antifurto fai da te è da considerare più che altro un sistema di sicurezza per test e per prendere confidenza con Home Assistant installato su Raspberry Pi. Home Assistant e Raspberry Pi  3 saranno la nostra centrale allarme.

Home Assistant è una piattaforma gratuita per la Casa Domotica che negli ultimi si anni è cresciuta molto, è diventata più stabile, ma non è ancora affidabile come i migliori impianti d’allarme senza fili delle migliori marche. Questo perché Home Assistant dev’essere compatibile con tantissimi prodotti per la Casa Domotica.

Allarme Perimetrale con Xiaomi Smart Home e Home Assistant

Con questo progetto useremo dei sensori porta/finestra Xiaomi Aqara e sensori vibrazione e movimento sempre Xiaomi Aqara.

L’allarme perimetrale si attiverà in modo automatico ad un determinato orario, prima però effettuerà un controllo per “vedere” se tutte le finestre o gli scuri sono chiusi.

Nel caso ci sia una finestra aperta ci invierà un messaggio di alert su Telegram e farà in modo che Google Home ci avvisi che ci sono delle finestre aperte.

Nel caso qualcuno tenti di forzare una finestra/scuro/tapparella l’allarme scatterà e saremo avvisati via Telegram, con una telefonata al nostro numero di cellulare, con Google Home Mini ecc.

A un determinato orario della mattina l’allarme perimetrale si disattiverà in modo automatico.

Conoscenze necessarie per poter realizzare un impianto perimetrale con Home Assistant e i sensori Xiaomi Mi Home

In passato ho già scritto un articolo su come utilizzare i sensori Xiaomi Mi Smart Home per realizzare un impianto d’allarme per la casa, questo è l’articolo: Xiaomi Mi Smart Home come Allarme per la Casa Domotica.

L’articolo appena menzionato è propedeutico a questo e al suo interno trovi informazioni su:

  • come creare un account Xiaomi;
  • come installare e utilizzare l’applicazione Xiaomi Mi Home;
  • come installare e configurare Xiaomi Mi Smart Home Gateway, arrivato alla terza generazione;
  • come installare e configurare i sensori di movimento e apertura/chiusura finestra.

Un’altro articolo che sarebbe meglio leggere prima di proseguire, specialmente se non hai mai utilizzato Home Assistant installato su Raspberry Pi, è questo: Xiaomi Mi Smart Home e Home Assistant (Hass.io) su Raspberry Pi 3 come Allarme per la Casa Domotica.

In quest’articolo trovi informazioni su:

  • come configurare Xiaomi Mi Smart Home Gateway, attivare le funzioni sviluppatore local area network;
  • come configurare Xiaomi Gateway e sensori Xiaomi Aqara all’interno di Home Assistant;
  • come configurare il pannello di controllo allarme all’interno di Home Assistant;
  • come attivare automaticamente l’allarme quando non ci sono persone in casa;
  • come inviare notifiche d’allarme a Telegram.

Hardware necessario per realizzare questo Allarme Perimetrale

Raspberry Pi 3 Model B+, lo puoi acquistare su Amazon.

Raspberry, Pi 3 modello B+
Raspberry Pi - Personal computer
41,11 EUR

Micro SD con installato Hass.io, maggiori info le trovi trovi nell’articolo Come installare Home Assistant su Raspberry Pi 3 – Hass.io, oppure segui la guida ufficiale sul sito home-assistant.io.

Sensore di apertura/chiusura porta/finestra Xiaomi Aqara.

Xiaomi Mi Smart Home Sensore di Apertura Chiusura Porte Finestre

Xiaomi Mi Gateway.

Xiaomi Mi Gateway Hub

Sensore vibrazione / inclinazione / caduta Xiaomi Aqara (opzionale).

Xiaomi Mi Smart Home Sensore di Vibrazione Inclinazione Caduta

Sensore di Movimento Xiaomi Aqara (opzionale).

Xiaomi Mi Smart Home Sensore di Movimento e Luminosita

Come configurare i sensori Xiaomi e Aquara

Dopo aver configurato Xiaomi Mijia Gateway, per la configurazione vedi articoli menzionati sopra), sarà necessario configurare i vari sensori.

  • Per il sensore di apertura chiusura porte e finestre seguire questa procedura.
  • Aprire l’applicazione Mi Home.
  • Fare tap sul vostro Mi Gateway.
  • Nella barra di scorrimento in alto selezionare Dispositivi.
  • Fate tap sul simbolo + (aggiungi dispositivo figlio) quindi selezionare il sensore che avete acquistato, Mi Window and Door Sensor oppure Aqara Door and Window Sensor.
  • Con uno spillo tenere premuto il tasto di reset per circa 3/5 secondi fino a quando il LED Blu posto frontalmente non lampeggia per 3 volte.
  • Un messaggio vocale in cinese vi dirà che il sensore è stato associato, ora vi verrà chiesto di selezionare la stanza dov’è collocato il sensore ed eventualmente di rinominarlo.

Come configurare il sensore di vibrazione Aqara

Il sensore di vibrazione Aqara (Xiaomi Aqara Vibration Sensor) all’interno integra un accelerometro che è in grado di rilevare una vibrazione, una inclinazione e una caduta. Questo lo rende un sensore molto versatile.

Per esempio possiamo posizionarlo all’interno di una scatola che non vogliamo venga aperta, fissarlo ad un oggetto che non vogliamo venga spostato, per esempio un quadro di valore ecc.

La configurazione è molto semplice.

  • Aprire l’applicazione Mi Home.
  • Fare tap sul vostro Mi Gateway.
  • Nella barra di scorrimento in alto selezionare Dispositivi.
  • Fate tap sul simbolo + (aggiungi dispositivo figlio) quindi selezionare Aqara Vibration Sensor
  • Tenere premuto il tasto di reset per circa 5 secondi fino a quando il LED Blu posto frontalmente non lampeggia per 3 volte.
  • Un messaggio vocale in cinese vi dirà che il sensore è stato associato, ora vi verrà chiesto di selezionare la stanza dov’è collocato il sensore ed eventualmente di rinominarlo.
  • Posizionare il sensore di vibrazione quindi premere il tasto reset una sola volta, assicurasi che dal Xiaomi Mi Hub esca una messaggio vocale, questo significa che sensore e gateway riescono a comunicare.
  • Ultimo passaggio, dall’applicazione Mi Home selezionare il sensore di vibrazione appena installato, fare tap sul’icona del menù (tre pallini in alto a destra), selezionare altre funzioni, quindi selezionare Regola la sensibilità della vibrazione, impostarla su Alto quindi premere il tasto di reset sul sensore per applicare le nuove impostazioni.

Installazione Sensori Apertura Chiusura Porte e Finestre

I sensori di apertura/chiusura porte e finestre di Xiaomi andrebbero installati all’interno della propria abitazione, è chiaro che in questo modo l’allarme suonerà quando la porta o la finestra è stata forzata e quindi aperta.

Se la vostra abitazione è dotata di infissi come scuri e tapparelle potreste valutare l’installazione di questi sensori direttamente sugli infissi, magari in una posizione protetta dalla pioggia.

Allarme Perimetrale Posizione Desi Sensori Apertura Chiusura Porte Finestre Vibrazione Xiaomi Mi Home Aqara

Eventualmente potreste impermeabilizzare i sensori con uno spray impermeabilizzante.

Spry Sigillante Riparatore Impermeabilizzante Trasparente

Un’altra soluzione potrebbe essere quella di installare i sensori porte e finestre all’interno, mentre sugli infissi installare il sensore di vibrazione Aqara. In questo modo eventuali tentativi di scardinare gli infissi farebbero scattare il nostro allarme perimetrale.

Home Assistant: come configurare un allarme perimetrale

La configurazione del Xiaomi Gateway (Aqara) all’interno di Home Assistant l’ho già illustrata nell’articolo Xiaomi Mi Smart Home e Home Assistant (Hass.io) su Raspberry Pi 3 come Allarme per la Casa Domotica, quindi non la ripeto.

Tutti i sensori associati ad un determinato gateway saranno visibili all’interno di Home Assistant e avranno un nome del tipo:

  • binary_sensor.door_window_sensor_158dxxxxxxx per i sensori di apertura chiusura porta e finestre;
  • binary_sensor.vibration_158dxxxxxxx per il sensore di vibrazione;
  • binary_sensor.motion_sensor_158dxxxxxxxx per il sensore di movimento.

I sensori si possono rinominare all’interno del file customize.yaml

Inserire il collegamento al file customize.yaml all’interno del file configuration.yaml

[code language=”python”]
homeassistant:
# Name of the location where Home Assistant is running
name: Enore Home
latitude: !secret home_latitude
longitude: !secret home_longitude
# ecc…
customize: !include customize.yaml
[/code]

Inserire questo codice all’interno del file customize.yaml

[code language=”python”]
binary_sensor.door_window_sensor_158dxxxxxxx:
friendly_name: Camera Letto Finestra DX
binary_sensor.door_window_sensor_158dxxxxxxx:
friendly_name: Camera Letto Finestra SX
[/code]

Questo è il codice dell’automazione che attiva l’allarme perimetrale. Alle ore 19:25 attraverso lo script ricorda_chiudere_finestre controlla che tutte le finestre siano chiuse e dopo 5 minuti attiva l’allarme perimetrale, esegue uno script per inviare un messaggio a Telegram e uno script per un messaggio vocale attraverso Google Home che segnala l’attivazione dell’allarme.

[code language=”python”]
– alias: "Allarme Perimetrale"
trigger:
platform: time
at: ’19:25:00′
condition:
– condition: state
entity_id: alarm_control_panel.home_alarm
state: disarmed
action:
– service: script.turn_on
entity_id: script.ricorda_chiudere_finestre
– delay: ’00:05:00′
– service: alarm_control_panel.alarm_arm_home
data:
entity_id: alarm_control_panel.home_alarm
– service: script.turn_on
entity_id: script.messagge_for_google
data:
variables:
message: "ATTENZIONE Attivato allarme perimetrale, non aprire le finestre al piano superiore"
– service: script.turn_on
entity_id: script.invia_notifica_telegram
data:
variables:
message: "Attivato allarme perimetrale, non aprire le finestre al piano superiore"
[/code]

Questi sono gli script utilizzati all’interno dell’automazione che attiva l’allarme perimetrale.

Script che controlla se le finestre sono aperte.

[code language=”python”]
ricorda_chiudere_finestre:
alias: "Ricorda Chiudi Finestre"
sequence:
– condition: or
conditions:
– condition: state
entity_id: binary_sensor.door_window_sensor_158dXXXXXX
state: ‘on’
– condition: state
entity_id: binary_sensor.door_window_sensor_158dXXXXXXX
state: ‘on’
– condition: state
entity_id: binary_sensor.door_window_sensor_158dXXXXXX
state: ‘on’
– service: script.turn_on
entity_id: script.invia_notifica_telegram
data:
variables:
message: "Ti ricordo che devi chiudere le finestre al piano superiore"
– service: script.turn_on
entity_id: script.messagge_for_google
data:
variables:
message: "Scusate, ricordo di chiudere le finestre al piano superiore, perché tra 5 minuti si attiverà l’allarme perimetrale."
[/code]

Script che fa inviare una notifica su Telegram, il messaggio della notifica viene passato attraverso la variabile “message”

[code language=”python”]
invia_notifica_telegram:
alias : "invia notifica telegram"
sequence:
– service: notify.telegram_home
data_template:
message: "{{ message }}"
[/code]

Script che fa pronunciare una frase all’assistente Google, il messaggio che Google Assistant deve leggere è sempre passato attraverso la variabile “message”.

[code language=”python”]
messagge_for_google:
alias : "messaggio per google"
sequence:
– service: media_player.volume_set
data_template:
entity_id: media_player.salotto
volume_level: 1
– service: tts.google_say
entity_id: media_player.salotto
data_template:
message: "{{ message }}"
language: ‘it’
cache: false
[/code]

Automazione per la disattivazione automatica dell’allarme perimetrale alle cinque e trenta del mattino.

[code language=”python”]
– alias: "Disattivazione Allarme Perimetrale"
trigger:
platform: time
at: ’05:30:00′
condition:
– condition: state
entity_id: alarm_control_panel.home_alarm
state: armed_home
action:
– service: alarm_control_panel.alarm_disarm
data:
entity_id: alarm_control_panel.home_alarm
[/code]

Automazione che attiva l’allarme se una porta/finestra viene aperta oppure se viene rilevata una vibrazione.

[code language=”python”]
– alias: ‘Trigger alarm while armed home’
trigger:
– platform: state
entity_id: binary_sensor.door_window_sensor_158dXXXX
to: ‘on’
– platform: state
entity_id: binary_sensor.door_window_sensor_158dXXXXX
– platform: state
entity_id: binary_sensor.door_window_sensor_158dXXXXX
to: ‘on’
– platform: event
event_type: xiaomi_aqara.movement
event_data:
entity_id: binary_sensor.vibration_158dXXXXX
movement_type: vibrate
condition:
– condition: state
entity_id: alarm_control_panel.home_alarm
state: armed_home
action:
– service: alarm_control_panel.alarm_trigger
entity_id: alarm_control_panel.home_alarm
[/code]

Quando uno dei sensori da me indicati viene eccitato (trigger), in questo esempio passa dalla condizione “off”a “on” oppure viene rilevata una vibrazione movement_type: vibrate , se l’allarme è inserito (condition armed_home), allora l’allarme da inserito passa ad attivo (action service: alarm_control_panel.alarm_trigger).

Ora il nostro allarme è stato “eccitato” si è attivato, significa che c’è stato un tentativo d’intrusione.

In questa condizione (triggered) possiamo eseguire tutte le automazioni/script del caso, far suonare una sirena, inviare una notifica sul nostro smartphone, far suonare il Xiaomi Mi Gateway, farci chiamare al nostro numero di cellulare attraverso il servizio twilio.com ecc.

Come configurare il servizio twilio.com all’interno di Home Assistant l’ho spiegato in quest’articolo: Come usare IFTTT.com con Home Assistant e Google Home Mini nella Casa DOMOTICA.

Usare i sensori di movimento Xiaomi Aqara per rilevare movimenti all’esterno della casa

Eventualmente potremmo realizzare un vero e proprio allarme perimetrale esterno utilizzando i sensori di movimento Xiaomi Aqara.

Anche in questo caso non si tratta di sensori progettati per stare all’esterno, quindi andrebbero posizionati al riparo dalla pioggia e magari andrebbero resi resistenti all’acqua con uno spry impermeabilizzante trasparente.

Io ho fatto in modo che quando viene rilevato un movimento esterno mi venga inviata una notifica a Telegram con uno snapshot catturato attraverso la telecamera ip di videosorveglianza esterna che copre la zona dov’è posizionato il sensore di movimento. Inoltre mi faccio chiamare al mio numero di cellulare sfruttando il servizio di twilio.com.

Non faccio suonare direttamente l’allarme perché l’attivazione del sensore potrebbe essere causata da un animale, tipo un uccello ecc. Devo dire che, pur vivendo in campagna, il sensore di movimento Xiaomi Aqara si comporta molto bene e i falsi allarmi sono rari.

Questo è il codice utilizzato per inviarmi lo snapshot su Telegram in caso di movimento esterno quando è attivo l’allarme e nessuno è a casa.

[code language=”python”]
– alias: ‘Movimento Fronte Casa Vuota’
trigger:
– platform: state
entity_id: binary_sensor.sensor
to: ‘on’
– platform: state
entity_id: binary_sensor.motion_sensor_158dXXXXX
to: ‘on’
condition:
condition: or
conditions:
– condition: state
entity_id: alarm_control_panel.home_alarm
state: armed_away
action:
– service: camera.snapshot
data:
entity_id: camera.fronte_casa
filename: "/tmp/fronte_casa_{{ now ().year }}_{{ now ().month }}_{{ now ().day }}_{{ now ().hour }}_{{ now ().minute }}.jpg"
– service: notify.telegram_home
data:
title: ‘Movimento Esterno’
message: ‘RILEVATO MOVIMENTO ESTERNO’
data:
photo:
– file: "/tmp/fronte_casa_{{ now ().year }}_{{ now ().month }}_{{ now ().day }}_{{ now ().hour }}_{{ now ().minute }}.jpg"
caption: Rilevato Movimento Esterno
– service: script.turn_on
entity_id: script.messagge_for_google
data:
variables:
message: "ATTENZIONE RILEVATO MOVIMENTO ESTERNO"
– service: notify.twilio_home
data:
message: "Attention External Movement. Someone is moving around the house."
target:
– +3933XXXXXXXX
– +3934XXXXXXXX
[/code]

Allarme Perimetrale con Sensori Xiaomi Aqara e Home Assistant – Conclusioni

In quest’articolo abbiamo visto come realizzare un impianto d’allarme perimetrale fai da te con i sensori senza fili (wireless) Xiaomi Mi Smart Home Aqara configurati all’interno della piattaforma gratuita per la Casa Domotica Home Assistant.

Trattandosi di un allarme fai da te (Do It Yourself) andrà affiancato ad un antifurto casa professionale installato da installatori specializzati in sistemi di sicurezza.

Abbiamo visto anche come utilizzare i sensori di movimento per essere avvisati di eventuali movimenti all’esterno della nostra abitazione.

Tutti questi sensori Xiaomi Aqara non sono stati realizzati per essere utilizzati all’interno dell’abitazione, tuttavia, dato il costo molto basso, si posso utilizzare anche esternamente, prestando un minimo di attenzione e posizionandoli in zone al riparo dalla pioggia.

Eventualmente si possono rendere resistenti all’acqua utilizzando un spay impermeabilizzante trasparente.

Prima di posizionare i vari sensori è bene verificare che questi siano in grado di comunicare con il Xiaomi Mi Gateway, eventualmente sarà necessario acquistarne più di uno per coprire tutta la propria abitazione.

Tutti i prodotti Xiaomi Mi Smart Home per la casa domotica che si possono configurare all’interno di Home Assistant