Home Assistant - Come creare un sistema di allarme domestico

Home Assistant - Come creare un sistema di allarme domestico

di Luigi Duchi

09 Giugno 2018

Domotica

Luigi Duchi

Negli articoli precedenti abbiamo configurato vari dispositivi nel nostro Home Assistant, oggi vedremo come far collaborare alcuni di questi per creare un sistema di allarme domestico con tanto di sirena e notifica sul nostro telefono.

Per prima cosa vi faccio un elenco dei dispositivi che ho utilizzato per realizzare questo sistema di allarme:

C'è un componente base che ci aiuterà a creare il pannello di controllo nel nostro Home Assistant ed e' chiamato appunto Manual Alarm Control panel.

Questo component sarà necessario inserirlo all'interno del nostro file configuration.yaml, lo potrete copiare esattamente come indicato qua sotto:

alarm_control_panel:
  - platform: manual
    name: Allarme Casa
    pending_time: 10
    delay_time: 50
    trigger_time: 10000

andiamo ad analizzare le voci:

pending_time: è il tempo che intercorre prima che l'allarme inizi la fase di attivazione o la fase di disattivazione, nel mio caso ho impostato 10 secondi.

delay_time: è il tempo che passerà prima che l'allarme si attivi, se impostato a 0 dopo il pending time l'allarme si attiverà subito, nel mio caso ho impostato a 50 secondi che sommati ai 10 di pending time fanno 60 secondi, infatti nella mia impostazione quando attivo l'allarme ho 60 secondi per lasciare l'edificio e la sirena suonerà 60 secondi dopo che una porta o una finestra sarà aperta.

trigger_time: e' il tempo di durata del trigger ad esempio il suono di una sirena una volta che l'allarme viene innescato.

Dopo aver salvato il nostro configuration.yaml ciò che vi troverete davanti nell'interfaccia grafica sarà questo:

Home Assistant - Come creare un sistema di allarme domestico
Home Assistant - Come creare un sistema di allarme domestico

Benissimo, adesso vediamo come configurare il nostro pannello.

Innanzitutto noteremo che avremo due possibilità di attivazione per il nostro allarme: ARM HOME e ARM AWAY

Il primo (arm home) sta ad indicare un attivazione dell'allarme quando siamo presenti in casa, ad esempio i soli sensori perimetrali (sensore porte e finestre) escludendo i volumetrici (rilevatori di presenza).

Il secondo (arm away) sta ad indicare un attivazione dell'allarme totale per quando saremo lontani dalla nostra abitazione e di conseguenza farà scattare l'allarme tramite ogni tipologia di sensore (sensore porte e finestre e rilevatori di presenza).

Dovremo poi decidere cosa far accadere una volta che l'allarme è scattato nel mio caso farò suonare una sirena collegata ad una smart plug e farò inviare una notifica sul mio telefono tramite Telegram (come abbiamo visto in un articolo precedente che potete trovare QUI).

Andiamo a vedere come come programmare Home Assistant per entrambe le scene:

La prima cosa da fare sarà creare lo switch virtuale che farà accendere/spegnere la sirena. Il sistema fisico sarà composto da una presa smart che, nel mio caso (lo consiglio a tutti), sarà alimentata da un UPS (gruppo di continuità) in modo che anche se la corrente del mio appartamento venisse a mancare, il funzionamento della presa smart sarebbe comunque garantito. Io ho utilizzato una presa smart wifi della xiaomi, ovviamente vi posterò l'esempio della creazione dello switch in funzione di questa presa, se voi foste dotati di altra tipologia di presa smart, dovrete creare lo switch seguendo le regole di integrazione con Home Assistant del vostro dispositivo. Andiamo a configurare lo switch nel seguente modo:

switch:
  - platform: xiaomi_miio
    name: Sirena allarme
    host: 192.168.x.xxx indirizzo ip smartplug
    token: token segreto ricavato da mihome

ovviamente sostituite l'indirizzo ip con quello della vostra presa smart, che vi consiglio di prenotare in fase di configurazione sul router in modo che sia assegnato sempre e in ogni caso il solito indirizzo.

e il token segreto che potrete ricavare con il backup di MiHome seguendo questa guida QUI 

Adesso andiamo nel nostro file automation.yaml (nel caso abbiate tutte le automazioni in un file dedicato). Andiamo a configurare l'automazione che farà scattare l'allarme nel caso di arm home:

- alias: 'allarme se sensori attivati home'
  trigger:
    - platform: state
      entity_id: binary_sensor.door_window_sensor_xxx
      to: 'on'
    - platform: state
      entity_id: binary_sensor.door_window_sensor_yyy
      to: 'on'
    - platform: state
      entity_id: binary_sensor.door_window_sensor_zzz
      to: 'on'
  condition:
    - condition: state
      entity_id: alarm_control_panel.allarme_casa
      state: armed_home
  action:
    - service: alarm_control_panel.alarm_trigger
      entity_id: alarm_control_panel.allarme_casa
    - delay: 60
    - service: switch.toggle
      entity_id: switch.sirena_allarme

ovviamente al posto dei nomi dei sensori xxx yyy e zzz dovrete inserire il nome dei sensori porte e finestre che avrete impostato in Home Assistant. Nel mio caso sono sensori Xiaomi che necessitano del loro Gateway anche questo messo sotto UPS.

Questa automazione permetterà, se l'allarme e' inserito in modalità home, alla sirena di suonare dopo 60 secondi che uno dei sensori porta e finestre risulterà aperto. Ovviamente potrete aggiungere tutti i sensori che desiderate (io ne ho inseriti solo 3 per rendere piu snello l'esempio) e potrete eventualmente eliminare o aumentare il tempo (delay) necessario prima che la sirena si attivi dopo che un sensore dia il segnale. 

Andiamo a vedere invece come programmare l'allarme in caso di arm away:

La programmazione e' pressochè identica eccezione fatta per la presenza questa volta dei sensori volumetrici (sensori di presenza) che attiveranno l'allarme:

- alias: 'allarme se sensori attivati away'
  trigger:
    - platform: state
      entity_id: binary_sensor.door_window_sensor_xxx
      to: 'on'
    - platform: state
      entity_id: binary_sensor.door_window_sensor_yyy
      to: 'on'
    - platform: state
      entity_id: binary_sensor.door_window_sensor_zzz
      to: 'on'
    - platform: state
      entity_id: binary_sensor.motion_sensor_hhh
      to: 'on'
  condition:
    - condition: state
      entity_id: alarm_control_panel.allarme_casa
      state: armed_away
  action:
    - service: alarm_control_panel.alarm_trigger
      entity_id: alarm_control_panel.allarme_casa
    - delay: 60
    - service: switch.toggle
      entity_id: switch.sirena_allarme

ovviamente anche in questo caso sostituirete le hhh con il nome del vostro sensore pir, questa automazione come l'altra permetterà, se l'allarme e' inserito in modalità away di far suonare la sirena dopo 60 secondi che uno dei sensori porta e finestre risulta aperto. Ovviamente potrete aggiungere tutti i sensori che desiderate (io ne ho inseriti solo 4 per rendere più snello l'esempio) e potrete eventualmente eliminare o aumentare il tempo (delay) necessario prima che la sirena si attivi dopo che un sensore da il segnale. 

Bene adesso andiamo a vedere come creare l'automazione per disattivare l'allarme e di conseguenza fermare la sirena nel caso sia scattato. Copiate questo codice nel file automation.yaml :

- alias: "disattiva sirena"
  trigger:
    - platform: state
      entity_id: alarm_control_panel.allarme_casa
      to: disarmed
  condition:
    - condition: state
      entity_id: switch.sirena_allarme
      state: 'on'
  action:
    - service: switch.turn_off
      entity_id: switch.sirena_allarme

Il nostro allarme è pronto!

Adesso vediamo come preparare la notifica Telegram in caso di attivazione/disattivazione oppure nel caso in cui l'allarme rilevi un intrusione.

Vi ricordate che nella guida relativa alle notifiche telegram vi avevo fatto mettere in white list una cartella chiamata photo? Benissimo, scaricate da internet 3 immagini che userete associate alla notifica Telegram. Le tre immagini dovranno raffigurare l'attivazione, la disattivazione e allarme attuato. Potrete scegliere quelle che vorrete e le potrete chiamare come vi aggrada anche se vi consiglio di chiamarle con un nome che raffiguri l'azione che andranno a compiere.

le mie 3 ad esempio le ho chiamate lucchettochiuso, lucchettoaperto e allarme

Copiatele appunto nella cartella photo a questo percorso sul vostro raspberry:

home/homeassistant/.homeassistant/photo  

una volta fatto, andate nel vostro file automation.yaml ed incollate le seguenti automazioni:

- alias: 'allarme scattato'
  hide_entity: true
  trigger:
    platform: state
    entity_id: alarm_control_panel.allarme_casa
    to: 'triggered'
  action:
    service: notify.telegram
    data:
      message: "ALLARME! qualcuno e' entrato in casa"
      data:
        photo: 
          - file: /home/homeassistant/.homeassistant/photo/allarme.jpg
            caption: "ALLARME! qualcuno e' entrato in casa" 

- alias: 'allarme attivato home'
  hide_entity: true
  trigger:
    platform: state
    entity_id: alarm_control_panel.allarme_casa
    to: 'armed_home'
  action:
    service: notify.telegram
    data:
      message: "allarme inserito"
      data:
        photo: 
          - file: /home/homeassistant/.homeassistant/photo/lucchettochiuso.jpg
            caption: "allarme inserito" 

- alias: 'allarme attivato away'
  hide_entity: true
  trigger:
    platform: state
    entity_id: alarm_control_panel.allarme_casa
    to: 'armed_away'
  action:
    service: notify.telegram
    data:
      message: "allarme inserito"
      data:
        photo: 
          - file: /home/homeassistant/.homeassistant/photo/lucchettochiuso.jpg
            caption: "allarme inserito" 

- alias: 'allarme disattivato'
  hide_entity: true
  trigger:
    platform: state
    entity_id: alarm_control_panel.allarme_casa
    to: 'disarmed'
  action:
    service: notify.telegram
    data:
      message: "allarme disattivato"
      data:
        photo: 
          - file: /home/homeassistant/.homeassistant/photo/lucchettoaperto.jpg
            caption: "allarme disattivato" 

ovviamente metterete il nome dell'immagine che avrete scelto e potrete cambiare il messaggio che volete che telegram vi notifichi. Io ho inserito lo stesso messaggio e la stessa immagine sia per arm away che per arm home ma ovviamente se vorrete potrete creare due notifiche con messaggi e immagini diverse.

Anche per questa guida abbiamo concluso, vi ricordo di contattarci per ulteriori chiarimenti.

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.

Luigi Duchi

Luigi Duchi

Nato a Grosseto il 24 Dicembre 1982 perito elettrotecnico che lavora nel mondo della domotica e installazione di impianti elettrici, impianti di allarmi, videosorveglianza e automazioni in genere. Appassionato da sempre di tecnologia e aperto alla conoscenza di nuove soluzioni.

Disqus loading...