Saltar a contenido

Trigger: Event (event)

Este trigger inicia una automatización cuando el sistema recibe uno o más tipos de evento (event types). Opcionalmente podés acotarlo por dominios y/o por objetos.

¿Cuándo usarlo?

  • Cuando querés reaccionar a eventos del sistema: alarmas, cambios de estado publicados como eventos, botones de pánico, eventos de analítica, integraciones, etc.
  • Cuando ya tenés un “Event Type” definido y querés que dispare un flujo.

Si lo que necesitás es un disparo manual (para pruebas) usá el trigger “When clicked in Test Automation”.
Si querés recibir llamados externos HTTP, usá Webhook.


Cómo configurarlo (recomendado: usando el formulario)

La mayoría de usuarios debería configurar este nodo desde la pestaña Form (es más segura y evita errores de formato).

Paso 0) Abrir la parametrización

  • En el canvas de automatizaciones, hacé doble click sobre el nodo Event.

Paso 1) Elegir el alcance por Domain / Objects

En la parte superior vas a ver un selector con 3 secciones:

  • Domains: filtra por uno o más dominios.
  • Objects: filtra por uno o más objetos (desde el árbol).
  • Groups: placeholder (visible en la UI pero hoy no aplica a este trigger).

Opción A — Domains (opcional)

  • Seleccioná Domains.
  • Click en Select domains y marcá uno o más.
  • Si lo dejás vacío, aplica a cualquier dominio.

Opción B — Objects (opcional)

  • Seleccioná Objects.
  • Elegí objetos desde el árbol.
  • Si lo dejás vacío, aplica a cualquier objeto.

Paso 2) Seleccionar “Event Types” (recomendado)

Este paso define qué eventos disparan la automatización.

  • En Select event types, click para abrir el selector.
  • Elegí uno o más Event Types.
  • Vas a ver cada selección como un tag; podés eliminarlo con la “x”.

Paso 3) Validar con una prueba real

  • Si el flujo no dispara: dejá Domains y Objects vacíos temporalmente y mantené solo Event Types para descartar filtros demasiado estrictos.
  • Si el flujo dispara de más: agregá filtro por Objects y/o reducí Event Types.

Qué configura exactamente (estructura del input) (avanzado / referencia)

Este nodo guarda su configuración en input con esta estructura:

{
  "ruleSet": {
    "objects_id": ["..."],
    "domains": ["..."],
    "event_types": ["..."]
  },
  "config": {}
}
  • ruleSet.event_types: lista de IDs/keys de tipos de evento que van a disparar el flujo.
  • ruleSet.objects_id: lista de IDs de objetos. Si está vacío, no filtra por objeto.
  • ruleSet.domains: lista de dominios. Si está vacío, no filtra por dominio.
  • config: actualmente se guarda como objeto vacío ({}).

Importante: el selector de “Groups” aparece en la UI pero no está implementado en este trigger (queda como placeholder).


Cómo configurarlo (JSON Editor) (solo usuarios expertos)

La pestaña JSON Editor sirve para:

  • Copiar/pegar configuraciones entre flujos.
  • Hacer cambios masivos (por ejemplo, pegar 20 IDs de objetos).
  • Revisar el “shape” real que se guarda en el nodo.

Ejemplo mínimo (solo filtrar por tipo de evento):

{
  "ruleSet": {
    "domains": [],
    "objects_id": [],
    "event_types": ["alarm_panel.state.change"]
  },
  "config": {}
}

Ejemplo acotado por objetos:

{
  "ruleSet": {
    "domains": [],
    "objects_id": ["obj_123", "obj_987"],
    "event_types": ["alarm_panel.state.change"]
  },
  "config": {}
}

Ejemplo acotado por dominio + múltiples tipos de evento:

{
  "ruleSet": {
    "domains": ["access_control"],
    "objects_id": [],
    "event_types": ["door.forced", "door.held_open"]
  },
  "config": {}
}

Guías rápidas (recetas)

Receta A — “Cuando pase X, enviar una notificación”

  • Trigger Event: event_types = ["<tu_event_type>"]
  • Acción: Notify / Send Telegram / Send Email (según tu caso)

Recomendación: primero probalo con el flujo desactivado y usando eventos reales/esperables.

Receta B — “Reaccionar solo a un objeto específico”

  • Objects: seleccioná el objeto (o pegá su ID en objects_id)
  • Event types: elegí el tipo de evento

Esto evita disparos por “ruido” de otros dispositivos.

Receta C — “Un mismo evento, diferentes rutas”

Si necesitás ramificar por condiciones (por ejemplo, distinto horario o severidad):

  • Trigger Event (general)
  • Condition nodes (por ejemplo If, Datetime, Switch) para decidir
  • Acciones en cada rama

Buenas prácticas

  • Elegí event types lo más específicos posible: reduce ejecuciones innecesarias.
  • Filtrá por objetos cuando sepas el origen (cámara/sensor/puerta específica).
  • Evitá listas enormes de objetos si podés resolverlo por dominio (más mantenible).
  • Nombrá el nodo con intención: “When door.held_open on Main Entrance”.

Problemas comunes (troubleshooting)

  • No dispara nunca
  • Verificá que el Event Type exista y esté bien escrito/seleccionado.
  • Probá dejar domains y objects_id vacíos para descartar filtros demasiado estrictos.
  • Confirmá que el sistema realmente está generando ese tipo de evento (miralo en el log de eventos si está disponible).

  • Dispara demasiado

  • Agregá filtro por Objects.
  • Restringí event_types a menos keys.
  • Considerá agregar una condición adicional (por ejemplo, ventana horaria).

  • El selector de “Groups” no hace nada

  • Es esperado: hoy está visible pero no implementado en este nodo.

Referencias internas (para ubicarlo en el editor)

  • Key del nodo: event
  • Clase: trigger
  • Parámetros: pestañas Form y JSON Editor

Si estás creando una automatización “desde un evento” (por ejemplo desde un log de eventos), este trigger se preconfigura con:

  • ruleSet.event_types = [eventKey]
  • ruleSet.objects_id = [...] (si elegís “y este objeto”)