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+
Il modello Raspberry Pi 3 B + è l'ultimo prodotto della gamma Raspberry Pi 3, che vanta un processore quad core a 64 bit con 1,4 GHz, wireless LAN dual-band a 2,4 GHz e 5 GHz, Bluetooth 4.2 / BLE, Ethernet più veloce e PoE capacità tramite un HAT PoE separato

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

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

Inserire questo codice all’interno del file customize.yaml

  binary_sensor.door_window_sensor_158dxxxxxxx:
    friendly_name: Camera Letto Finestra DX
  binary_sensor.door_window_sensor_158dxxxxxxx:
    friendly_name: Camera Letto Finestra SX

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.

- 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"    

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

Script che controlla se le finestre sono aperte.

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."

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

  invia_notifica_telegram:
    alias : "invia notifica telegram"
    sequence:
      - service: notify.telegram_home
        data_template:
          message: "{{ message }}"

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

  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

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

- 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 

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

     
- 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

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.

- 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

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