Advertisement
energywave

Home Assistant - Alarm

Nov 25th, 2020 (edited)
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 13.83 KB | None | 0 0
  1. alarm_control_panel:
  2.   - platform: manual
  3.     code: !secret alarm_code
  4.     code_arm_required: true
  5.     delay_time: 0
  6.     arming_time: 60
  7.     trigger_time: 3600
  8.     disarm_after_trigger: false
  9.     disarmed:
  10.       trigger_time: 0
  11.     # armed_home:
  12.     #   arming_time: 0
  13.     #   delay_time: 0
  14.     # armed_night:
  15.     #   arming_time: 0
  16.     #   delay_time: 0
  17.  
  18. input_text:
  19.   prev_alarm_triggered_mode:
  20.     name: Modalità allarme quando scattato l'ultima volta
  21.  
  22. input_boolean:
  23.   alarm_triggered:
  24.     name: Allarme scattato?
  25.     initial: false
  26.   alarm_cancelled:
  27.     name: Inserimento allarme annullato?
  28.     initial: false  
  29.   alarm_auto_arm:
  30.     name: Attivazione automatica allarme
  31.   alarm_auto_disarm:
  32.     name: Disattivazione automatica allarme
  33.  
  34. group:
  35.  #Elenco delle luci che si accendono quando scatta l'antifurto
  36.   luci_antifurto:
  37.     name: Luci antifurto
  38.     entities:
  39.      - switch.lampada_a_terra
  40.       - light.shelly_1_cucina
  41.       - light.shelly_1_farettofront
  42.       - light.shelly_1_tettoia
  43.       - light.shelly_faretti_soggiorno
  44.       - light.shelly_soffitto_soggiorno
  45.       - light.shelly_luce_letto
  46.  
  47.   #Sensori usati per l'antifurto in modalità fuori casa. Servono sia come trigger che come elenco di ricerca per il messaggio di intrusione
  48.   sensori_antifurto_away:
  49.     name: Sensori usati per antifurto
  50.     entities:
  51.      - binary_sensor.porta_ingresso
  52.       - binary_sensor.portafinestra_cucina
  53.       - binary_sensor.finestra_cucina
  54.       - binary_sensor.motion_cucina
  55.       - binary_sensor.finestra_soggiorno_lato_cucina
  56.       - binary_sensor.finestra_soggiorno_lato_scale
  57.       - binary_sensor.motion_soggiorno
  58.       - binary_sensor.finestra_corridoio_lato_scale
  59.       - binary_sensor.finestra_corridoio_lato_bagno
  60.       - binary_sensor.motion_corridoio
  61.       - binary_sensor.finestra_bagno
  62.       - binary_sensor.finestra_camera
  63.       - binary_sensor.portafinestra_camera
  64.       - binary_sensor.finestra_cameretta
  65.       - binary_sensor.portafinestra_cameretta
  66.       - binary_sensor.finestra_mansarda_pc
  67.       - binary_sensor.finestra_mansarda_letto
  68.  
  69.   #Sensori usati per l'antifurto in modalità notte. Servono sia come trigger che come elenco di ricerca per il messaggio di intrusione
  70.   sensori_antifurto_night:
  71.     name: Sensori usati per antifurto
  72.     entities:
  73.      - binary_sensor.porta_ingresso
  74.       - binary_sensor.portafinestra_cucina
  75.       - binary_sensor.finestra_cucina
  76.       - binary_sensor.motion_cucina
  77.       - binary_sensor.finestra_soggiorno_lato_cucina
  78.       - binary_sensor.finestra_soggiorno_lato_scale
  79.       - binary_sensor.motion_soggiorno
  80.       - binary_sensor.finestra_corridoio_lato_scale
  81.       - binary_sensor.finestra_corridoio_lato_bagno
  82.       - binary_sensor.finestra_bagno
  83.       - binary_sensor.finestra_camera
  84.       - binary_sensor.portafinestra_camera
  85.       - binary_sensor.finestra_cameretta
  86.       - binary_sensor.portafinestra_cameretta
  87.       - binary_sensor.finestra_mansarda_pc
  88.       - binary_sensor.finestra_mansarda_letto
  89.  
  90.   #Sensori usati per l'antifurto in modalità a casa. Servono sia come trigger che come elenco di ricerca per il messaggio di intrusione
  91.   sensori_antifurto_home:
  92.     name: Sensori usati per antifurto
  93.     entities:
  94.      - binary_sensor.porta_ingresso
  95.       - binary_sensor.portafinestra_cucina
  96.       - binary_sensor.finestra_cucina
  97.       - binary_sensor.finestra_soggiorno_lato_cucina
  98.       - binary_sensor.finestra_soggiorno_lato_scale
  99.       - binary_sensor.finestra_corridoio_lato_scale
  100.       - binary_sensor.finestra_corridoio_lato_bagno
  101.       - binary_sensor.finestra_bagno
  102.       - binary_sensor.finestra_camera
  103.       - binary_sensor.portafinestra_camera
  104.       - binary_sensor.finestra_cameretta
  105.       - binary_sensor.portafinestra_cameretta
  106.       - binary_sensor.finestra_mansarda_pc
  107.       - binary_sensor.finestra_mansarda_letto
  108.  
  109. light:
  110.  #Elenco delle luci che si accendono in flash rosso quando scatta l'antifurto
  111.   - platform: group
  112.     name: luci_antifurto_flash
  113.     entities:
  114.      - light.shelly_tavolo_1
  115.       - light.shelly_tavolo_3
  116.       - light.shelly_tavolo_2
  117.       - light.shelly_rgbw2_tv
  118.       - light.luce_armadio_camera
  119.  
  120. script:
  121.  # Accensione luci allarme
  122.   luci_allarme:
  123.     alias: Accensione luci allarme
  124.     description: Accende tutte le luci configurate e fa lampeggiare quelle che possono di rosso
  125.     sequence:
  126.      #- condition: state
  127.       #  entity_id: sun.sun
  128.       #  state: 'below_horizon'
  129.       - service: light.turn_on
  130.         entity_id: group.luci_antifurto
  131.       - service: switch.turn_on
  132.         entity_id: group.luci_antifurto
  133.       - service: light.turn_on
  134.         entity_id: light.luci_antifurto_flash
  135.         data:
  136.           rgb_color:
  137.            - 255
  138.             - 0
  139.             - 0
  140.           brightness: 255
  141.           effect: 'Flash'
  142.  
  143.   # Reset luci allarme
  144.   reset_luci_allarme:
  145.     alias: Spegne luci allarme
  146.     description: Dopo aver acceso le luci allarme questo script reimposta la situazione normale al disinserimento dell'allarme
  147.     sequence:
  148.       - service: light.turn_off
  149.         entity_id: group.luci_antifurto
  150.       - service: switch.turn_off
  151.         entity_id: group.luci_antifurto
  152.       - service: light.turn_on
  153.         entity_id: light.luci_antifurto_flash
  154.         data:
  155.           rgb_color:
  156.            - 255
  157.             - 255
  158.             - 255
  159.           brightness: 255
  160.           effect: 'Off'
  161.       - delay:
  162.           seconds: 1
  163.       - service: light.turn_off
  164.         entity_id: light.luci_antifurto_flash
  165.  
  166. automation:
  167.  # Avvio Home Assistant
  168.   - alias: 'Reset allarme riavvio Home Assistant'
  169.     trigger:
  170.       - platform: homeassistant
  171.         event: start
  172.     condition: []
  173.     action:
  174.       - service: input_boolean.turn_off
  175.         entity_id: input_boolean.alarm_triggered
  176.  
  177.   # Sensori scattati -> attivo allarme
  178.   - alias: 'Trigger allarme'
  179.     trigger:
  180.       - platform: state
  181.         entity_id: group.sensori_antifurto_night
  182.         to: 'on'
  183.       - platform: state
  184.         entity_id: group.sensori_antifurto_home
  185.         to: 'on'
  186.       - platform: state
  187.         entity_id: group.sensori_antifurto_away
  188.         to: 'on'
  189.     condition:
  190.       - condition: or
  191.         conditions:
  192.           - condition: and
  193.             conditions:
  194.               - condition: state
  195.                 entity_id: alarm_control_panel.ha_alarm
  196.                 state: armed_night
  197.               - condition: state
  198.                 entity_id: group.sensori_antifurto_night
  199.                 state: 'on'
  200.           - condition: and
  201.             conditions:
  202.               - condition: state
  203.                 entity_id: alarm_control_panel.ha_alarm
  204.                 state: armed_home
  205.               - condition: state
  206.                 entity_id: group.sensori_antifurto_home
  207.                 state: 'on'
  208.           - condition: and
  209.             conditions:
  210.               - condition: state
  211.                 entity_id: alarm_control_panel.ha_alarm
  212.                 state: armed_away
  213.               - condition: state
  214.                 entity_id: group.sensori_antifurto_away
  215.                 state: 'on'
  216.     action:
  217.       - service: input_text.set_value
  218.         entity_id: input_text.prev_alarm_triggered_mode
  219.         data_template:
  220.           value: "{{states('alarm_control_panel.ha_alarm')}}"
  221.       - service: alarm_control_panel.alarm_trigger
  222.         entity_id: alarm_control_panel.ha_alarm
  223.  
  224.   # Allarme scattato (qualunque motivo)
  225.   - alias: 'Allarme scattato'
  226.     trigger:
  227.       - platform: state
  228.         entity_id: alarm_control_panel.ha_alarm
  229.         to: 'triggered'
  230.     condition: []
  231.     action:
  232.       - service: script.luci_allarme
  233.       - choose:
  234.          #armed_night
  235.           - conditions:
  236.               - condition: state
  237.                 entity_id: input_text.prev_alarm_triggered_mode
  238.                 state: 'armed_night'
  239.             sequence:
  240.               - service: script.notifica_allarme
  241.                 data_template:
  242.                   title: 'ALLARME'
  243.                   message: >
  244.                    {% set detected = dict((states | selectattr('entity_id', 'in', state_attr('group.sensori_antifurto_night', 'entity_id')) | list) | groupby('state'))['on'] | map(attribute='name') | list | join(', ') %}
  245.                     Allarme! Intrusione da {{ detected }}
  246.         #armed_home
  247.           - conditions:
  248.             - condition: state
  249.               entity_id: input_text.prev_alarm_triggered_mode
  250.               state: 'armed_home'
  251.             sequence:
  252.               - service: script.notifica_allarme
  253.                 data_template:
  254.                   title: 'ALLARME'
  255.                   message: >
  256.                    {% set detected = dict((states | selectattr('entity_id', 'in', state_attr('group.sensori_antifurto_home', 'entity_id')) | list) | groupby('state'))['on'] | map(attribute='name') | list | join(', ') %}
  257.                     Allarme! Intrusione da {{ detected }}
  258.         #armed_away
  259.           - conditions:
  260.             - condition: state
  261.               entity_id: input_text.prev_alarm_triggered_mode
  262.               state: 'armed_away'
  263.             sequence:
  264.               - service: script.notifica_allarme
  265.                 data_template:
  266.                   title: 'ALLARME'
  267.                   message: >
  268.                    {% set detected = dict((states | selectattr('entity_id', 'in', state_attr('group.sensori_antifurto_away', 'entity_id')) | list) | groupby('state'))['on'] | map(attribute='name') | list | join(', ') %}
  269.                     Allarme! Intrusione da {{ detected }}
  270.       - service: input_boolean.turn_on
  271.         entity_id: input_boolean.alarm_triggered
  272.  
  273.   # Allarme disinserito
  274.   - alias: 'Allarme disinserito: spegnimento luci e notifica'
  275.     trigger:
  276.       - platform: state
  277.         entity_id: alarm_control_panel.ha_alarm
  278.         to: 'disarmed'
  279.     condition:
  280.       - condition: state
  281.         entity_id: input_boolean.alarm_cancelled
  282.         state: 'off'
  283.     action:
  284.       - service: script.notifica
  285.         data:
  286.           title: Antifurto disinserito
  287.           message: L'antifurto è stato disinserito
  288.           channel: info
  289.           group: info
  290.           icon: protection_off
  291.           alexa: true
  292.       - choose:
  293.         - conditions:
  294.           - condition: state
  295.             entity_id: input_boolean.movimentazione_automatica_tapparelle
  296.             state: 'on'
  297.           - condition: template
  298.             value_template: '{{ state_attr("sun.sun", "elevation") > -6 }}'
  299.           sequence:
  300.             - service: script.tapparelle_apri
  301.       - condition: state
  302.         entity_id: input_boolean.alarm_triggered
  303.         state: 'on'
  304.       - service: script.reset_luci_allarme
  305.  
  306.   # Allarme inserito
  307.   - alias: 'Allarme inserito'
  308.     trigger:
  309.       - platform: state
  310.         entity_id: alarm_control_panel.ha_alarm
  311.         to: 'armed_home'
  312.       - platform: state
  313.         entity_id: alarm_control_panel.ha_alarm
  314.         to: 'armed_away'
  315.       - platform: state
  316.         entity_id: alarm_control_panel.ha_alarm
  317.         to: 'armed_night'
  318.     condition: []
  319.     action:
  320.       - service: input_boolean.turn_off
  321.         entity_id: input_boolean.alarm_triggered
  322.       - service: input_boolean.turn_off
  323.         entity_id: input_boolean.alarm_cancelled
  324.       - service: script.notifica
  325.         data:
  326.           title: Antifurto inserito
  327.           message: "L'antifurto è stato inserito in modalità {{states('alarm_control_panel.ha_alarm')}}"
  328.           channel: info
  329.           group: info
  330.           icon: protection
  331.           alexa: true
  332.       - choose:
  333.         - conditions:
  334.           - condition: state
  335.             entity_id: input_boolean.movimentazione_automatica_tapparelle
  336.             state: 'on'
  337.           sequence:
  338.             - service: script.tapparelle_chiudi
  339.    
  340.   # Allarme in inserimento, determino se annullare l'inserimento (uso group.sensori_antifurto_home perchè comprende solo i sensori porte/finestre)
  341.   - alias: 'Allarme in inserimento'    
  342.     trigger:
  343.       - platform: state
  344.         entity_id: alarm_control_panel.ha_alarm
  345.         to: 'arming'
  346.     condition:
  347.       - condition: state
  348.         entity_id: group.sensori_antifurto_home
  349.         state: 'on'
  350.     action:
  351.       - service: script.notifica
  352.         data:
  353.           title: ANTIFURTO NON ATTIVATO!
  354.           message: >
  355.            {% set detected = dict((states | selectattr('entity_id', 'in', state_attr('group.sensori_antifurto_home', 'entity_id')) | list) | groupby('state'))['on'] | map(attribute='name') | list | join(', ') %}
  356.             Porte o finestre aperte: {{ detected }} . Impossibile attivare antifurto! Operazione annullata.
  357.           channel: warning
  358.           group: warning
  359.           icon: warning
  360.           alexa: true
  361.       - service: input_boolean.turn_on
  362.         entity_id: input_boolean.alarm_cancelled
  363.       - service: alarm_control_panel.alarm_disarm
  364.         data:
  365.           entity_id: alarm_control_panel.ha_alarm
  366.           code: !secret alarm_code
  367.  
  368.   # Attivazione allarme quando l'ultimo esce da casa (se attiva la configurazione)
  369.   - alias: 'Attivazione automatica allarme'
  370.     trigger:
  371.       - platform: event
  372.         event_type: uscita_ultimo_da_casa
  373.     condition:
  374.       - condition: state
  375.         entity_id: input_boolean.alarm_auto_arm
  376.         state: 'on'
  377.     action:
  378.       - service: alarm_control_panel.alarm_arm_away
  379.         entity_id: alarm_control_panel.ha_alarm
  380.         data:
  381.           code: !secret alarm_code
  382.  
  383.   # Disattivazione allarme quando il primo rientra in casa (se attiva la configurazione)
  384.   - alias: 'Disattivazione automatica allarme'
  385.     trigger:
  386.       - platform: event
  387.         event_type: arrivo_primo_a_casa
  388.     condition:
  389.       - condition: state
  390.         entity_id: input_boolean.alarm_auto_disarm
  391.         state: 'on'
  392.     action:
  393.       - service: alarm_control_panel.alarm_disarm
  394.         entity_id: alarm_control_panel.ha_alarm
  395.         data:
  396.           code: !secret alarm_code
  397.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement