Saltar a contenido

Trigger: Zona GPS / Geofence (geofence_trigger)

Este trigger inicia una automatización cuando un objeto geolocalizable (tracker GPS) entra o sale de una zona geográfica definida en el sistema. Es ideal para monitorear flotas, guardias, vehículos y activos móviles en instalaciones o perímetros.

¿Cuándo usarlo?

  • Cuando un vehículo o guardia sale del perímetro autorizado y necesitás disparar una alerta.
  • Cuando un activo móvil (camión, maquinaria, persona con tracker) ingresa a una zona restringida.
  • Cuando necesitás registrar automáticamente la llegada o salida de un recurso a una zona operativa.
  • Cuando querés notificar al centro de control que un operario llegó a su destino de ronda.
  • Cuando necesitás activar o desactivar dispositivos al detectar la presencia de un vehículo en una playa de estacionamiento o zona de carga.

Si lo que necesitás es reaccionar a un cambio de estado de un objeto (no a su posición geográfica), usá Trigger: State Change.
Si necesitás disparar la automatización a un horario fijo, usá Trigger: Schedule.


Cómo configurarlo

La mayoría de usuarios debería usar la pestaña Form. La pestaña JSON Editor es para usuarios avanzados.

Paso 0) Abrir la parametrización

  • En el canvas de automatizaciones, hacé doble click sobre el nodo GPS Zone.
  • Se abre un modal con dos pestañas: Form y JSON Editor. Quedate en Form.

Paso 1) Seleccionar los objetos geolocalizables a monitorear

Esta sección define qué trackers (objetos GPS) se van a vigilar.

Hay dos modos de selección:

Modo Cuándo usarlo Campo que se guarda
Por ID Cuando querés monitorear trackers específicos por nombre objects_id
Por Dominio Cuando querés monitorear todos los trackers de un grupo/dominio domains

Por Plantilla (Use Template Engine) está deshabilitado por el momento.

Pasos: 1. Elegí el modo (Por ID o Por Dominio). 2. Usá el selector múltiple para elegir uno o más trackers o dominios. 3. Podés buscar escribiendo en el selector. Si la lista está desactualizada, usá el botón Refresh.

Ejemplos: - Por ID: Camion-001, Guardia-Norte, Vehiculo-Supervisor - Por Dominio: flota-logistica, personal-seguridad


Paso 2) Seleccionar las zonas geográficas

Esta sección define en qué zonas se evalúa la posición del tracker.

Hay dos modos de selección:

Modo Cuándo usarlo Campo que se guarda
Por ID Cuando querés monitorear zonas específicas por nombre zones_as_objects
Por Tipo Cuando querés aplicar la regla a todas las zonas de un tipo determinado zones_from_tags

Por Plantilla (Use Template Engine) está deshabilitado por el momento.

Pasos: 1. Elegí el modo (Por ID o Por Tipo). 2. Usá el selector múltiple para elegir una o más zonas o tipos de zona. 3. Podés buscar escribiendo en el selector. Si la lista está desactualizada, usá el botón Refresh.

Ejemplos: - Por ID: Zona-Restringida-Norte, Perimetro-Planta-A, Estacionamiento-Principal - Por Tipo: zona_restringida, zona_operativa, perimetro_exterior


Paso 3) Configurar el modo de activación

El campo Modo determina qué evento geográfico dispara la automatización.

Opción Descripción Cuándo usarla
Al entrar (inside) Se dispara cuando el tracker ingresa a la zona Detectar acceso no autorizado, registrar llegadas
Al salir (outside) Se dispara cuando el tracker sale de la zona Detectar abandono de perímetro, registrar salidas
Ambos (both) Se dispara tanto al entrar como al salir Auditoría completa de presencia, trazabilidad de recorridos

Solo se puede tener un modo activo a la vez. Si seleccionás uno, los otros se deseleccionan automáticamente.


Buenas prácticas

  • Definí zonas con precisión adecuada: zonas muy grandes pueden generar falsos positivos; zonas muy pequeñas pueden no detectar correctamente la entrada/salida según la frecuencia de actualización GPS.
  • Usá "Por Dominio" para flotas enteras: si necesitás monitorear todos los vehículos de un grupo, es más mantenible que agregar cada uno por ID.
  • Combiná "Por Tipo" para zonas homogéneas: si tenés muchas zonas del mismo tipo (ej: todas las zonas restringidas), es más eficiente que enumerarlas una a una.
  • Evitá "Ambos" sin lógica posterior: si usás modo both, asegurate de que el flujo tenga lógica para diferenciar si fue entrada o salida (el payload del evento debería indicarlo).
  • Probá con un tracker y una zona pequeña primero antes de escalar la configuración a múltiples trackers y zonas.
  • Considerá la latencia GPS: los eventos de entrada/salida dependen de la frecuencia de actualización del tracker. Un tracker que actualiza cada 30 segundos puede demorar hasta 30 segundos en disparar el trigger.

Troubleshooting (problemas comunes)

  • El trigger no se dispara aunque el tracker está en la zona
  • Verificá que el tracker esté enviando actualizaciones de posición activamente.
  • Confirmá que la zona geográfica esté correctamente dibujada/definida en el sistema.
  • Revisá que el tracker seleccionado sea el correcto (Por ID: verificá el ID exacto; Por Dominio: verificá que el tracker pertenezca al dominio).
  • Verificá que el modo de activación (inside/outside/both) coincida con el evento que esperás.

  • El trigger se dispara repetidamente para el mismo evento

  • Esto puede ocurrir si el tracker oscila en el límite de la zona (entra y sale múltiples veces). Revisá si la zona necesita ampliarse o si el tracker tiene problemas de señal GPS.

  • No aparecen trackers en el selector

  • Usá el botón Refresh para recargar la lista.
  • Verificá que existan objetos de tipo gps_tracker en el sistema.
  • Confirmá los permisos del usuario para ver ese tipo de objeto.

  • No aparecen zonas en el selector

  • Usá el botón Refresh para recargar la lista.
  • Verificá que existan objetos de tipo gps_zone en el sistema.
  • Si usás el modo Por Tipo, confirmá que existan tipos de zona configurados.

  • Seleccioné "Por Dominio" pero al cambiar a "Por ID" se perdió la selección

  • Esto es comportamiento esperado: al cambiar de modo, la selección anterior del otro modo se limpia automáticamente para evitar configuraciones inconsistentes.

Configuración avanzada (JSON Editor) — solo usuarios expertos

La pestaña JSON Editor te permite ver y editar directamente la estructura interna del nodo. Es útil para:

  • Copiar configuraciones entre flujos o instancias.
  • Pegar configuraciones preparadas externamente.
  • Revisar el estado exacto del nodo.

Estructura del input

{
  "ruleSet": {
    "zones_as_objects": [{"object_id": "uuid-de-la-zona"}],
    "objects_id": ["uuid-del-tracker"],
    "domains": [],
    "zones_from_tags": [],
    "activation_method": "inside",
    "for": "00:00:00"
  },
  "config": {}
}

Tabla de campos

Campo Tipo Descripción
ruleSet.zones_as_objects { object_id: string }[] Zonas seleccionadas Por ID. Exclusivo con zones_from_tags.
ruleSet.zones_from_tags { tag: string }[] Zonas seleccionadas Por Tipo. Exclusivo con zones_as_objects.
ruleSet.objects_id string[] IDs de trackers seleccionados Por ID. Exclusivo con domains.
ruleSet.domains string[] Dominios de trackers seleccionados Por Dominio. Exclusivo con objects_id.
ruleSet.activation_method "inside" \| "outside" \| "both" Cuándo se dispara: al entrar, al salir, o en ambos.
ruleSet.for "00:00:00" Duración (reservado para uso futuro, siempre "00:00:00").
config {} Siempre vacío (reservado para uso futuro).

Importante: zones_as_objects y zones_from_tags son mutuamente excluyentes. Lo mismo aplica para objects_id y domains. Si llenás ambos a la vez desde el JSON Editor, el comportamiento puede ser inesperado.


Ejemplos JSON por caso de uso

Tracker específico entra a zona específica

{
  "ruleSet": {
    "zones_as_objects": [{"object_id": "zona-restringida-norte-uuid"}],
    "objects_id": ["camion-001-uuid"],
    "domains": [],
    "zones_from_tags": [],
    "activation_method": "inside",
    "for": "00:00:00"
  },
  "config": {}
}

Cualquier tracker del dominio de guardias sale de cualquier zona de tipo "perimetro"

{
  "ruleSet": {
    "zones_as_objects": [],
    "objects_id": [],
    "domains": ["personal-seguridad"],
    "zones_from_tags": [{"tag": "perimetro_exterior"}],
    "activation_method": "outside",
    "for": "00:00:00"
  },
  "config": {}
}

Múltiples vehículos y múltiples zonas — entrada y salida

{
  "ruleSet": {
    "zones_as_objects": [
      {"object_id": "estacionamiento-principal-uuid"},
      {"object_id": "zona-de-carga-uuid"}
    ],
    "objects_id": ["camion-001-uuid", "camion-002-uuid", "auto-supervisor-uuid"],
    "domains": [],
    "zones_from_tags": [],
    "activation_method": "both",
    "for": "00:00:00"
  },
  "config": {}
}

Guías rápidas (recetas)

Receta A — "Alerta cuando un vehículo entra a zona restringida"

  • Trackers: Por ID → seleccionar los vehículos de la flota
  • Zonas: Por ID → seleccionar la zona restringida
  • Modo: Al entrar
  • Acción: Enviar notificación Telegram al supervisor / activar alerta sonora

Receta B — "Registrar llegada de guardia al punto de ronda"

  • Trackers: Por Dominio → dominio guardias-turno-noche
  • Zonas: Por Tipo → tipo punto_ronda
  • Modo: Al entrar
  • Acción: Escribir en Google Sheets con timestamp / actualizar estado del objeto

Receta C — "Detectar cuando un camión abandona el perímetro de la planta"

  • Trackers: Por Dominio → dominio flota-logistica
  • Zonas: Por ID → zona perimetro-planta-principal
  • Modo: Al salir
  • Acción: Enviar SMS al centro de control / iniciar registro de auditoría

Receta D — "Auditoría completa de presencia en zona de carga"

  • Trackers: Por ID → vehículos autorizados para zona de carga
  • Zonas: Por ID → zona dock-carga-norte
  • Modo: Ambos
  • Acción: Registrar evento (entrada/salida) en el log de eventos con timestamp

Receta E — "Activar luz de bienvenida cuando el supervisor llega a la sede"

  • Trackers: Por ID → tracker del vehículo del supervisor
  • Zonas: Por ID → zona estacionamiento-gerencia
  • Modo: Al entrar
  • Acción: Enviar acción HTTP para activar luces / notificar recepción

Receta F — "Monitoreo de todos los activos en zonas de riesgo"

  • Trackers: Por Dominio → todos los dominios de activos móviles
  • Zonas: Por Tipo → tipo zona_riesgo
  • Modo: Al entrar
  • Acción: Disparar protocolo de seguridad / notificar brigada

Referencias internas (para ubicarlo en el editor)

  • Key del nodo: geofence_trigger
  • Clase: trigger
  • Campos requeridos: al menos un tracker (objects_id o domains) y al menos una zona (zones_as_objects o zones_from_tags)
  • Modos de activación soportados: inside, outside, both
  • Tipo de objetos monitoreados: gps_tracker (trackers) y gps_zone (zonas)