Conceptos basicos

Conceptos básicos: eventos

Hoy puedes incorporar una nueva herramienta en tu taller de Home Assistant que va a marcar la diferencia tras conocer otro de los conceptos básicos: eventos.

🥑 Si lo prefieres, puedes ver el video del taller de la academia en el que te explico cómo utilizar los eventos, y otras herramientas para desarrolladores.

¿Qué es un evento?

Los eventos son señales que se emiten en Home Assistant cuando algo sucede. Por ejemplo, cuando pulsas el botón físico del timbre de la puerta o de un mando. Estos acontecimientos no aparecen en el estado de una entidad, con las que ya estamos acostumbrados a trabajar.

💡 Por ejemplo, un timbre no tiene un estado como "encendido" o "apagado", sino que es presionado momentáneamente, generando un estado "instantáneo".

Además, algunos eventos pueden contemplar variaciones. Por ejemplo, algunos mandos son capaces de distinguir entre una pulsación simple, una pulsación doble o una pulsación larga.

Home Assistant permite que cualquier integración active o escuche eventos. Es el núcleo de todo. Por ejemplo, cualquier cambio de estado se anunciará como un evento ‘state_changed’ que contiene el estado anterior y el nuevo de una entidad. De esta forma podemos «capturar» esta información y ponerla a disposición de Home Assistant como una entidad.

¿Para qué puedo utilizar los eventos?

Los eventos son un magnífico recurso cuando quieres crear una automatización en base a un suceso, pero no encuentras de qué entidad «tirar». Para ser más concreto, puedes utilizar los eventos como desencadenantes de una automatización.

Para ello tienes que añadir un nuevo «disparador» y buscar la opción «Evento manual». A continuación tendrás que indicar el tipo de evento (por ejemplo, ‘state_changed’ para un cambio de estado) y los datos del evento (por ejemplo, la entidad que quieres monitorizar).

Los datos del evento van a actuar como una restricción. Es decir, para que se desencadene la automatización se tienen que dar todos los datos que hayas indicado de forma explícita, por lo que es una buena forma de crear ‘triggers’ avanzados.

Por ejemplo, puedes crear una automatización cuando un usuario concreto, envíe un texto específico desde un chat en particular a tu bot de telegram (como hicimos para crear notificaciones accionables desde cualquier reloj). Con la siguiente automatización cuando el usuario pregunta al bot «¿Qué día es hoy»? este le contesta con la fecha.

alias: notificacion telegram
description: ""
trigger:
  - platform: event
    event_type: telegram_text
    event_data:
      text: ¿Qué día es hoy?
      chat_id: -109475424234
      user_id: 2840868837
condition: []
action:
  - service: notify.USUARIO
    data:
      message: "{{ now().day }}"
mode: single

¿Cómo se qué datos tengo que utilizar?

Esta es una excelente pregunta, ya que la información no está almacenada en una entidad que podemos consultar, como estamos habituados. Es por ello que, estos conceptos básicos: eventos, son un tesoro escondido.

Tienes dos formas de obtener la información que necesitas:

  • La primera es consultar en la documentación oficial el listado de eventos que más se utilizan en las automatizaciones. Aquí encontrarás el detalle para aplicar algunos tan útiles, como desencadenar una automatización cuando se llama a un servicio concreto (con el tipo de evento ‘call_service’) o cuando se producen eventos relacionados con el propio sistema (como cuando se actualiza la configuración, con el tipo de evento ‘core_config_updated’).
  • La segunda es acudir al apartado de eventos de las Herramientas para desarrolladores. A la derecha del todo verás un bloque titulado «Oyentes activos» que incluye los eventos que puedes monitorizar. Lo único que tienes que hacer es copiar el nombre del que quieres extraer información (por ejemplo, ‘state_changed’) y pegarlo en el campo «Evento al que suscribirse» del apartado «Escuchar eventos». Tan pronto como pulses en «Empezar a escuchar» y se ejecute el evento, podrás revisar la información correspondiente en la parte inferior.

¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
Contenido exclusivo de Aguacatec
Send this to a friend