Saltar a contenido

Trigger: Botón (button_trigger)

Este trigger inicia una automatización cuando un botón físico conectado al sistema es presionado o liberado. Permite monitorear uno o varios botones a la vez y distinguir entre pulsación corta y pulsación sostenida usando un tiempo mínimo de duración. Es ideal para pulsadores de emergencia, botones de confirmación y controles manuales en instalaciones.

¿Cuándo usarlo?

  • Cuando tenés un pulsador de pánico o botón de emergencia y querés que al presionarlo se dispare una alarma, se notifique al centro de control, o se active una sirena.
  • Cuando necesitás un botón de confirmación para que un guardia o operador confirme manualmente que realizó una ronda o verificó un punto de control.
  • Cuando querés implementar una acción de apertura remota de barrera o puerta mediante un pulsador físico.
  • Cuando necesitás detectar que alguien mantuvo presionado un botón durante un tiempo determinado para distinguirlo de una pulsación accidental.
  • Cuando querés registrar en un log cada vez que un operario activa o desactiva un control físico en planta.

Si lo que necesitás es reaccionar a cambios de estado de un objeto en general (no un botón físico), usá Trigger: State Change.
Si lo que necesitás es un disparo programado o por evento del sistema, usá Trigger: Schedule o Trigger: Event.


Cómo configurarlo

Paso 0) Abrir la parametrización

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

Paso 1) Seleccionar los botones a monitorear

El campo Select objects muestra un árbol de objetos filtrado por tipo button. Seleccioná uno o más botones físicos que debe monitorear este trigger.

  • Expandí el árbol para encontrar el botón por nombre o dominio.
  • Hacé click en el objeto para seleccionarlo. Podés seleccionar más de uno.
  • Los objetos seleccionados aparecen como etiquetas debajo del árbol. Podés quitarlos haciendo click en la "X" de cada etiqueta.

Ejemplos: - Pulsador-Panico-Recepcion - Boton-Confirmar-Ronda-Sector-A - Pulsador-Apertura-Portón-Norte

Este campo es obligatorio. El nodo no funcionará sin al menos un botón seleccionado.


Paso 2) Elegir el estado que dispara el trigger

El campo Pressed determina en qué momento del ciclo del botón se activa la automatización.

Estado Comportamiento Caso de uso típico
Pressed (activado, defecto) Se dispara cuando el botón es presionado Pulsador de emergencia, botón de acceso
Released (desactivado) Se dispara cuando el botón es liberado Confirmación de que la pulsación terminó, control de tiempo de presión
  • Hacé click en el toggle para alternar entre Pressed y Released.
  • El valor por defecto es Pressed.

Paso 3) (Opcional) Configurar la duración mínima de pulsación

El campo For permite definir cuánto tiempo debe mantenerse el botón en el estado configurado antes de que se dispare la automatización. El formato es HH:MM:SS.

Valor Comportamiento
Vacío o 00:00:00 Se dispara inmediatamente al detectar el estado (presionado o liberado)
00:00:03 Se dispara solo si el botón estuvo 3 segundos en ese estado sin cambiar
00:00:10 Se dispara solo si el botón estuvo 10 segundos en ese estado
00:01:00 Se dispara solo si el botón estuvo 1 minuto en ese estado

Ejemplos de uso: - Vacío: pulsador de emergencia que responde de inmediato al primer toque. - 00:00:05: botón de pánico que requiere 5 segundos sostenidos para evitar falsas alarmas. - 00:00:03: confirmación de ronda que requiere mantener presionado 3 segundos.

El campo acepta solo el formato HH:MM:SS con valores válidos: horas 00-23, minutos 00-59, segundos 00-59.


Buenas prácticas

  • Usá "For" para evitar falsas alarmas: si el botón puede ser presionado accidentalmente, un tiempo mínimo de 3 a 5 segundos reduce los disparos no deseados.
  • Modo "Released" para confirmar fin de pulsación: si el flujo debe ejecutarse después de que el operario terminó de presionar (no mientras lo presiona), usá Released.
  • Seleccioná múltiples botones solo si deben tener el mismo comportamiento: si dos botones necesitan disparar flujos diferentes, creá un nodo Button separado para cada uno.
  • Documentá qué botón hace qué: si el sistema tiene muchos pulsadores, usá nombres descriptivos en los objetos para que el árbol de selección sea claro.
  • Combiná con condiciones de horario: si el pulsador solo debe funcionar en horario hábil, agregá un nodo Condition: Date/Time después para filtrar fuera de horario.

Troubleshooting (problemas comunes)

  • El trigger no se dispara aunque se presiona el botón
  • Verificá que el objeto botón esté correctamente registrado en el sistema y enviando eventos.
  • Confirmá que el objeto seleccionado en el árbol sea el correcto (mismo nombre que el dispositivo físico).
  • Revisá que el estado elegido (Pressed o Released) coincida con el evento que esperás.
  • Si tenés "For" configurado, verificá que el botón se esté manteniendo presionado el tiempo suficiente.

  • El trigger se dispara varias veces con una sola pulsación

  • Puede deberse a rebote (bounce) del botón físico o a que el dispositivo envía múltiples eventos. Configurá un valor en el campo For (por ejemplo 00:00:01) para filtrar pulsaciones muy cortas.

  • No encuentro el botón en el árbol de objetos

  • Verificá que el objeto exista en el sistema y que su tipo sea button.
  • Expandí todos los nodos del árbol (por dominio o grupo).
  • Confirmá los permisos del usuario para ver ese tipo de objeto.

  • El campo "For" muestra error de validación

  • El formato requerido es exactamente HH:MM:SS con dos dígitos en cada parte: 00:00:05, no 0:0:5.
  • Los valores válidos son: horas 00-23, minutos 00-59, segundos 00-59.

  • Quitei un botón del selector pero sigue apareciendo

  • Hacé click en la "X" de la etiqueta del botón para quitarlo correctamente. Si el árbol sigue mostrándolo como seleccionado, refrescá la página y volvé a abrir el nodo.

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

La pestaña JSON Editor te permite ver y editar directamente la estructura interna del nodo.

Estructura del input

{
  "ruleSet": {
    "objects_id": ["uuid-del-boton"],
    "pressed": true,
    "for": "00:00:00"
  },
  "config": {}
}

Tabla de campos

Campo Tipo Requerido Defecto Descripción
ruleSet.objects_id string[] [] Lista de IDs de objetos tipo button a monitorear
ruleSet.pressed boolean No true true = disparar al presionar; false = disparar al liberar
ruleSet.for string (HH:MM:SS) No "" Duración mínima en el estado requerido antes de disparar. Vacío = inmediato
config {} No {} Siempre vacío (reservado para uso futuro)

Ejemplos JSON por caso de uso

Pulsador de emergencia — disparo inmediato al presionar

{
  "ruleSet": {
    "objects_id": ["pulsador-panico-recepcion-uuid"],
    "pressed": true,
    "for": ""
  },
  "config": {}
}

Botón de confirmación — requiere 5 segundos sostenidos

{
  "ruleSet": {
    "objects_id": ["boton-confirmar-ronda-sector-a-uuid"],
    "pressed": true,
    "for": "00:00:05"
  },
  "config": {}
}

Disparo al soltar el botón — sin tiempo mínimo

{
  "ruleSet": {
    "objects_id": ["pulsador-apertura-portón-norte-uuid"],
    "pressed": false,
    "for": ""
  },
  "config": {}
}

Monitorear múltiples pulsadores de emergencia

{
  "ruleSet": {
    "objects_id": [
      "pulsador-panico-recepcion-uuid",
      "pulsador-panico-sala-servidores-uuid",
      "pulsador-panico-deposito-uuid"
    ],
    "pressed": true,
    "for": ""
  },
  "config": {}
}

Guías rápidas (recetas)

Receta A — "Pulsador de pánico en recepción → notificar al centro de seguridad"

  • Botones: Pulsador-Panico-Recepcion
  • Pressed: Activado (al presionar)
  • For: vacío (respuesta inmediata)
  • Acción: Enviar Telegram al grupo de seguridad + activar sirena

Receta B — "Botón de ronda con confirmación sostenida"

  • Botones: Boton-Punto-Ronda-01, Boton-Punto-Ronda-02
  • Pressed: Activado (al presionar)
  • For: 00:00:03 (mantener 3 segundos)
  • Acción: Registrar en log de rondas con timestamp y guardia actual

Receta C — "Pulsador de apertura de portón — disparo al soltar"

  • Botones: Pulsador-Porton-Vehiculos
  • Pressed: Desactivado (al soltar)
  • For: vacío
  • Acción: Enviar acción HTTP para abrir barrera / registrar evento de acceso

Receta D — "Botón de alerta silenciosa en sala de servidores"

  • Botones: Pulsador-Alerta-Sala-Servidores
  • Pressed: Activado
  • For: 00:00:02 (2 segundos para evitar falsas alarmas)
  • Acción: Notificar al área de IT + jefe de turno por Telegram

Receta E — "Botón de habilitación de zona de carga — requiere pulsación larga"

  • Botones: Boton-Zona-Carga-Habilitacion
  • Pressed: Activado
  • For: 00:00:10 (10 segundos sostenidos)
  • Acción: Cambiar estado de objeto zona-carga a habilitada + notificación

Receta F — "Control múltiple: cualquier pulsador de emergencia del piso 2"

  • Botones: todos los pulsadores del piso 2 (Pulsador-P2-Pasillo, Pulsador-P2-Oficina, Pulsador-P2-Baño)
  • Pressed: Activado
  • For: vacío
  • Acción: Activar protocolo de emergencia piso 2 + notificar equipo de respuesta

Referencias internas (para ubicarlo en el editor)

  • Key del nodo: button_trigger
  • Clase: trigger
  • Campos requeridos: objects_id (al menos un objeto seleccionado)
  • Campos opcionales: pressed (defecto: true), for (defecto: vacío = inmediato)
  • Tipo de objetos soportados: objetos de tipo button
  • Formato del campo "For": HH:MM:SS (ej: 00:00:05 para 5 segundos)
  • Documentación oficial: https://docs.netsocs.com/en/automations/nodes/trigger/button/