Uso de calendario local con Home Assistant

En la versión 2022.12, tenemos muchas novedades en Home Assistant, sobre todo referentes al estándar Matter, pero también nos deja nuevas funcionalidades que son muy demandadas desde hace tiempo por los usuarios, como es el Calendario Local.

Calendarios a la carta

Veamos cómo usar esta integración que nos dará el control total de eventos según la fecha y hora y de una manera muy visual como veremos.

Paso 1: Instalar el componente de calendario de Home Assistant

Antes de poder configurar un calendario local en Home Assistant, es necesario instalar el componente de calendario en esta plataforma. Esto se puede hacer a través de la interfaz de configuración de Home Assistant o editando el archivo de configuración configuration.yaml.

Para instalar el componente de calendario desde la interfaz de configuración, sigue estos pasos:

Accede a la interfaz de Home Assistant, y selecciona la opción de «Settings» o «Ajustes» si lo tienes en español:

Haz clic en la pestaña «Integraciones» y añadimos una nueva integración:

Busca el componente de calendario local (local calendar) en la lista de integraciones disponibles y haz clic en el botón «Configurar»:

Sigue las instrucciones en pantalla para completar la configuración del componente de calendario. Inicialmente estableciendo un nombre descriptivo (en nuestro caso lo llamaremos «calendario_alarma» pues haremos un uso específico para esta automatización):

Pulsaremos en ENVIAR y si todo es correcto ya hemos terminado la integración:

Podemos crear tantos calendarios como queramos, siendo muy útil crear alguno, como en este caso, específico para ajustar alguna automatización que ya tengamos.

Paso 2: Configurar el calendario local

Una vez que hayas instalado el componente de calendario en Home Assistant, necesitarás configurar el calendario local para que Home Assistant pueda acceder a él y usarlo. Esto se puede hacer a través de la interfaz gráfica del propio Home Assistant

Para configurar un calendario local desde la interfaz de configuración, sigue estos pasos:

Haz clic en la pestaña «Calendario» del menú lateral:

Veremos a la izquierda una selección de nuestros calendarios, y obviamente el propio calendario. Podemos hacer clic en el botón «Añadir evento«:

Sigue las instrucciones en pantalla (es muy intuitivo) para completar la configuración del calendario local:

Es importante establecer un resumen del evento y una descripción, en la que aparezca alguna palabra que luego usaremos en nuestras automatizaciones. En nuestro caso la palabra clave ha sido «alarma on«

Se pueden crear tantos eventos como queramos, incluso de forma recurrente en una única definición:

Ejemplos de uso del calendario local en Home Assistant

Como hemos comentado, vamos a usar nuestro recién creado calendario para activar alguna automatización que nos interese.

En nuestro caso activaremos una automatización que se encarga de generar una alarma en el caso de que se active algún sensor cuando no estamos en casa. Lo vimos al tratar el tema de las notificaciones.

Crearemos por tanto una nueva automatización que se encargará de activar nuestro modo alarma según el calendario que hemos creado, y además nos notificará por Telegram de dicha acción:

Veamos cada sección por separado:

Sección Desencadenantes

Establecemos que nuestro desencadenante (Trigger) será el inicio de un evento de nuestro calendario, que tendremos que especificar en el campo correspondiente:

Sección Condiciones

Solo se ejecutarán las acciones si se cumple la condición.

Tendremos que hacer uso de un Template para mirar dentro del campo de descripción del evento, para que la condición sea cierta únicamente cuando contenga las palabras «alarma on«:

Sección Acciones

Aquí es donde activamos nuestro modo alarma y además mandamos una notificación para que nos informe:

Por último nos quedaría crear otra automatización para desactivar el modo de alarma si lo vemos necesario.

Os dejamos en formato yaml todo el código completo para que podáis copiarlo y adaptarlo:

alias: calendar.alarma
description: Activa alarma según evento de calendario
trigger:
  - platform: calendar
    event: start
    offset: "0:0:0"
    entity_id: calendar.calendario_alarma
    id: alarma_on
condition:
  - condition: template
    value_template: "{{ 'alarma on' in trigger.calendar_event.summary }}"
action:
  - service: automation.turn_on
    data: {}
    target:
      entity_id: automation.general_modo_alarma
  - service: notify.telegramnormal
    data:
      message: Evento de Calendario
      title: "Titulo: Alarma activada desde evento de Calendario"
mode: single

Si os ha gustado el tutorial, os dejamos una relación de otras entradas que os pueden gustar: