Home Assistant (HASS.io) ofrece la posibilidad de montar un sistema de alarma inteligente con el componente alarm_control_panel su documentació oficial Manual Alarm Control Panel – Home Assistant
Estados de alarma
- armed_home: Alarma activada pero con presencia en la casa.
- armed_away: Alarma activada y nadie en casa.
- armed_night: Modo nocturno.
- triggered: Lanzar alarma
Tiempos
- pending_time: tiempo antes de cambiar hacia otro estado de alarma, en armed_away es el tiempo que otorga para salir de la estancia.
- delay_time: tiempo antes de disparar la alarma, en armed_away es el tiempo otorgado para desbloquear la alarma.
- trigger_time: duración en segundos de la alarma sonando.
Definición del panel de Alarma
Ejemplo de definición de una alarma con las siguientes características: código para armar y desarmar la alarma 1234, especifica tiempo para armar la alarma y salir de la vivienda 60 segundos, al llegar a la vivienda 30 segundos para desbloquear la alarma, al iniciar la alarma dar 10 segundos antes de lanzar la alarma general.
- Código para armar y desarmar la alarma 1234
- Tiempo para armar la alarma y salir de la instancia: 60 segundos
- Tiempo para desarmar la alarma 30 segundos
- Marguen antes de iniciar la alarma 10 segundos
alarm_control_panel: - platform: manual name: Home Alarm code: 1234 disarmed: trigger_time: 0 armed_home: pending_time: 0 delay_time: 0 armed_away: pending_time: 60 delay_time: 30 triggered: pending_time: 10 disarm_after_trigger: false
Definición de sensores para las puertas y etc…
Para integrar los sensores que detectan la apertura de las puertas, ventanas, detección de movimiento, presencia en la instancia etc… se puede controlar con un sensor binario 0 cerrado, 1 abierto
binary_sensor: - platform: mqtt name: Entrance door state_topic: /home/entrance/door payload_on: "1" payload_off: "0" device_class: door
En la propiedad device_class se puede especificar el tipo del sensor: door, window, motion, garage_door, presence, para obtener más tipos consultar la documentación oficial de Binary Sensor – Home Assistant
Lo más cómodo es separar los tipos de sensores por grupos, puertas, ventanas, detectores, así con solo obtener el estado del grupo se simplifica la acción a comprobar.
- has_windows_opened: grupo de sensores de tipo window, para las ventanas
- has_door_opened: grupo de sensores de tipo door, garage_door, para las puertas de acceso
- has_motion_detected: grupo de sensores de detección de movimiento definidos como motion
has_windows_opened: entities: - binary_sensor.dinning_room_window - binary_sensor.kitchen_window - binary_sensor.bathroom_window - binary_sensor.main_bedroom_window has_door_opened: entities: - binary_sensor.entrance_door - binary_sensor.back_door has_motion_detected: entities: - binary_sensor.dinning_room_motion - binary_sensor.kitchen_motion - binary_sensor.garage_motion - binary_sensor.garden_motion
Programar el sistema de Alarma Inteligente
Para programar el sistema de Alarma lo haremos con las Automatizaciones que ofrece Home Assistant, es donde indicaremos que salte la alarma al detectar que se abre una puerta, ventana o detecte presencia en una instancia de la vivienda. Como también la acción a realizar al lanzar la alarma.
Automatización de Alarma en modo sin presencia
Domotizar la casa, cuando la alarma está armada en modo sin presencia en la casa amerd_away, al abrir una puerta, ventana o detectar movimiento que inicie la alarma
- alias: 'Alarm onDetectSensor hasArmedAway alarmTrigger' trigger: - platform: state entity_id: group.has_door_opened to: 'on' - platform: state entity_id: group.has_motion_detected to: 'on' - platform: state entity_id: group.has_windows_opened to: 'on' condition: - condition: state entity_id: alarm_control_panel.home_alarm state: armed_away action: - service: alarm_control_panel.alarm_trigger entity_id: alarm_control_panel.home_alarm
Automatización de Alarma en modo en casa
Cuando la alarma está armada en modo en casa (armed_home) solo debe iniciar la alarma en caso de apertura de puertas o ventanas, ya que estando en casa se debe permitir moverse por las instancias, los sensores de detección de movimiento se excluyen
- alias: 'Alarm onDetectSensor hasArmedHome alarmTrigger' trigger: - platform: state entity_id: group.has_door_opened to: 'on' - platform: state entity_id: group.has_windows_opened to: 'on' 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
Comprobar sensores previamente a la activación de la alarma
Con las automatizaciones anteriores solo se lanza la alarma cuando la alarma está activada y un sensor ha cambiado de estado de cerrado a abierto.
Pero puede darse el caso que durante la activación de la alarma dejamos la puerta o una ventana abierta
#Al al ponerse en armed_away comprobar si la puerta está abierta lanzar alarma - alias: 'Alarm onSetAlarmMode hasSensorsOn alarmTrigger' trigger: - platform: state entity_id: alarm_control_panel.home_alarm to: armed_away - platform: state entity_id: alarm_control_panel.home_alarm to: armed_home condition: condition: or conditions: - condition: state entity_id: group.has_door_opened state: 'on' - condition: state entity_id: group.has_windows_opened state: 'on' action: - service: alarm_control_panel.alarm_trigger entity_id: alarm_control_panel.home_alarm