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:SScon 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:SScon dos dígitos en cada parte:00:00:05, no0: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[] |
Sí | [] |
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-cargaahabilitada+ 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:05para 5 segundos) - Documentación oficial: https://docs.netsocs.com/en/automations/nodes/trigger/button/