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_trackeren 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_zoneen 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_objectsyzones_from_tagsson mutuamente excluyentes. Lo mismo aplica paraobjects_idydomains. 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→ dominioguardias-turno-noche - Zonas:
Por Tipo→ tipopunto_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→ dominioflota-logistica - Zonas:
Por ID→ zonaperimetro-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→ zonadock-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→ zonaestacionamiento-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→ tipozona_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_idodomains) y al menos una zona (zones_as_objectsozones_from_tags) - Modos de activación soportados:
inside,outside,both - Tipo de objetos monitoreados:
gps_tracker(trackers) ygps_zone(zonas)