Novedad: el cortafuegos de IA supervisa cada módulo y explica cada incidente con palabras sencillas. Vea cómo funciona

Bloques de disparo

Referencia de todos los bloques que inician un flujo: Flow input, Device message, Inject, Schedule, Named timer, Webhook, Event, Catch, Status, Complete y Link in.

Un disparador inicia una ejecución: no tiene entrada y envía un mensaje cuando ocurre su evento. Un flujo puede tener varios disparadores. Esta página enumera todos los disparadores con sus salidas y ajustes, tal como los definen los bloques. La pestaña Help del editor muestra la misma referencia para el bloque seleccionado.

Los mensajes se entregan al menos una vez: tras un fallo, un mensaje puede volver a entregarse, marcado como msg.metadata.redelivered = true, con los mismos identificadores de mensaje, de modo que los bloques que llaman a servicios externos envían las mismas claves de idempotencia. Los disparadores basados en tiempo y de webhook tienen un ajuste skip_redelivered (desactivado por defecto): si está activado, un mensaje reentregado no vuelve a iniciar el flujo.

Entrada del flujo

La entrada de los mensajes que otro flujo transfiere con Run flow y, en un flujo raíz, de los mensajes de dispositivo del ámbito de la raíz. Cada flujo tiene exactamente una; no puede eliminarse.

Salidaout: el mensaje tal como se transfirió, en la misma ejecución. En una raíz IoT, cada mensaje de dispositivo; la telemetría produce un mensaje por registro.
AjustesNinguno. El propio flujo es la dirección.
NotasEl flujo debe estar activado y en ejecución para recibir mensajes. Una raíz nunca es ejecutada por otro flujo. Los datos llegan solo a través del mensaje; defina los campos antes de Run flow.

Mensaje de dispositivo (host IoT)

Se inicia con mensajes de dispositivos. Los mensajes de dispositivo (telemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response) van solo a un flujo raíz; en una raíz cuya Flow input esté conectada, la Flow input es su entrada. Los mensajes alarm y attributes_updated van a todos los flujos con un disparador Device message que los nombre, sean raíz o no. Un disparador sin tipos marcados escucha solo los tipos de mensaje de dispositivo: marque alarm o attributes_updated por nombre para recibirlos.

AjusteSignificadoPor defectoValores
typesLos tipos de mensaje que lo iniciantodos los tipostelemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response, attributes_updated, alarm
profilesSolo dispositivos de estos perfilestodos los perfilessus perfiles de dispositivo
skip_redeliveredUn mensaje reentregado no lo iniciaoffon, off

Salidas: out (telemetría, un mensaje por registro, con msg.metadata.recordTs), error (bad_payload: telemetría que no dio ningún registro; msg.error.drops indica por qué se omitió cada valor).

Metadatos de solo lectura: msgType, deviceId, profileId, deviceName, profileName, transport (mqtt o http), ts (hora de recepción), recordTs, topic (solo datos de tópico personalizado), gatewayDeviceId, y otros. Los metadatos nunca se almacenan.

Inject

Inicia un flujo manualmente (el botón del bloque), una vez poco después de iniciarse el flujo, o repetidamente.

AjusteSignificadoPor defectoValores
payloadLo que va en msg.payloadla hora actual (segundos epoch)un número, texto, sí/no, JSON, la hora actual, nada, una variable de entorno o una expresión
topicmsg.topicvacíohasta 256 caracteres
repeat_msVuelve a dispararse cada este tiempo; 0 = sin repetición0hasta 7 días; al menos 60 s en la nube (el mínimo de su plan)
once_after_msDispara una vez este tiempo después de iniciarse el flujovacíode 0 a 24 h
originatorQuién envía el mensajela organizaciónla organización, o este flujo (su propio carril)
msg_typeEl tipo de mensajeinjectuno de los tipos de mensaje del host
metadataEntradas adicionales de msg.metadataningunahasta 16 filas
timesDetener tras este número de repeticiones0 (sin fin)requiere una repetición
catch_upTras un tiempo sin servicioonceonce (una ejecución para el disparo perdido más reciente), skip

Salida: out. El payload se calcula cada vez que se dispara.

Schedule

Inicia un flujo según el reloj de pared.

AjusteSignificadoPor defectoValores
modeCómo se indica la horadailydaily, cron, sun
timeHora del día (daily)08:00HH:MM, 24 horas
weekdaysDías en que se dispara (daily)ninguno marcado = todos los díasde lunes a domingo
cronExpresión cron0 8 * * 1-55 campos: minuto, hora, día del mes, mes, día de la semana
sunAmanecer o anochecersetrise, set
offset_minMinutos después (+) o antes (−) del evento solar0−720 a 720
lat, lonPosición para las horas solaresvacío−90 a 90, −180 a 180; obligatorio para mode sun
tzZona horariala zona por defecto de la organizaciónun nombre IANA como Europe/Istanbul
originatorQuién envía el mensajela organizaciónla organización, o este flujo
msg_typeEl tipo de mensajescheduleuno de los tipos del host
payloadSustituye el payload estándar{ event: "due", mode, at, time }cualquier valor o expresión
catch_upTras un tiempo sin servicioonceonce, skip

Salida out: msg.payload { "event": "due", "mode": "daily", "at": …, "time": … }, msg.topic schedule/<mode>.

  • Los campos cron aceptan números, *, rangos (1-5), listas (1,15) y pasos (*/10); el día de la semana 0 y 7 es domingo; los nombres como MON no se entienden. Cuando el día del mes y el día de la semana están ambos restringidos, basta con que se cumpla uno de los dos.
  • Una hora omitida por un cambio de horario de verano no dispara. Un día sin amanecer ni anochecer (regiones polares) se omite.
  • Show the next runs en los ajustes del bloque muestra las próximas horas de disparo en su zona.
  • El mensaje de un schedule no tiene dispositivo: los bloques que necesitan un mensaje de dispositivo (Save telemetry, Raise alarm, Send command) lo rechazan con not_a_device.

Named timer

Inicia un flujo cuando expira un temporizador con nombre. El bloque de acción Timer lo inicia, lo reinicia o lo cancela, desde cualquier flujo de la organización.

AjusteSignificadoValores
nameEl temporizador a escucharobligatorio

Salida out: msg.payload { "event": "fired", "name", "ms", "time" }, msg.topic timer/<name>, msg.text «Timer name ran out». Los temporizadores sobreviven a las ediciones de los flujos y la plataforma los conserva. Un temporizador que vence durante una interrupción más larga que el tiempo de vida se convierte en un mensaje fallido que puede reproducir.

Webhook

Un POST HTTP a la dirección del bloque inicia el flujo. La dirección se muestra en el diálogo Webhooks del editor una vez desplegado y activado el flujo.

AjusteSignificadoPor defectoValores
authCómo se identifican quienes llamantokentoken (Authorization: Bearer <secret>), hmac (X-Automation-Signature: HMAC-SHA256 en hexadecimal de timestamp.rawBody, y X-Automation-Timestamp dentro de 300 s), session (un miembro con sesión iniciada de su organización)
permissionSolo sesión: un permiso que el llamante también debe tenervacíoun id de permiso
originatorA quién se refiere el mensajela organizaciónla organización, o una entidad de su organización
max_bodyCuerpo más grande16 KiBcomo máximo 256 KiB
parseCómo se lee el cuerpojsonjson, text
replyCuándo recibe el llamante su respuestaacceptedaccepted (202 con un id de inmediato), response (responde un bloque HTTP response)
timeout_msCuánto espera un llamante síncrono10,0001.000 a 10.000

Salida out: msg.payload es el cuerpo; msg.metadata.http tiene method, query y las cabeceras content-type, user-agent y x-request-id (nunca authorization ni cookies). Para un hook de sesión, msg.metadata.user.id es el llamante.

Respuestas: 202 aceptada, 401 token, firma o sesión incorrectos, 403 sesión rechazada, 404 hook desconocido, 413 cuerpo demasiado grande, 429 límite de frecuencia o cuota, 503 ocupado. Un hook síncrono responde 204 cuando el flujo no envía respuesta, 500 ante un error no capturado, 504 al vencer el plazo. Consulte Connections and secrets para secretos y rotación.

Evento

Se inicia con un evento elegido por origen y tipo, como uno que otro flujo envió con Emit event.

AjusteSignificadoPredeterminadoValores
sourceEl origen del eventoanyun origen, p. ej. flow; * = cualquiera
kindEl tipo del eventoanyexacto, *, o un prefijo terminado en * (tank.*)
filterUna expresión que debe ser verdaderanonesobre msg, hasta 512 caracteres

Salida out: msg.payload son los datos del evento, msg.topic <source>/<kind>. Error invalid_value cuando el filtro no compila. Excepto para los orígenes flow y platform, debe indicar un tipo o un prefijo.

Catch

Recibe los errores de bloques del mismo flujo cuya salida error no está conectada.

AjusteSignificadoPredeterminado
scopeLos bloques cuyos errores se capturantodos los bloques del flujo
uncaught_onlySolo los errores que ningún otro Catch capturaoff

Salida out: una copia del mensaje fallido con msg.error { message, code, source: { id, type, flow, name } }.

Status

Se inicia cada vez que un bloque del mismo flujo cambia la línea de estado bajo él.

AjusteSignificadoPredeterminado
scopeLos bloques observadostodos los bloques del flujo

Salida out: msg.payload el texto de estado, msg.status { fill, shape, text, ts, source }. No observe todos los bloques y conecte a un bloque que establece su propio estado (como Debug): se volverá a iniciar a sí mismo sin fin.

Complete

Se inicia cuando los bloques seleccionados del mismo flujo terminan un mensaje sin error.

AjusteSignificadoValores
nodesLos bloques observadoshasta 64; none = nunca se activa

Salida out: una copia del mensaje terminado con msg.complete { id, type, name }.

Una entrada con nombre a la que envían los bloques Link out y Link call, desde este u otro flujo del mismo host.

AjusteSignificadoValores
nameEl nombre que usan los bloques de enlacede 1 a 32 caracteres: letras, dígitos, _, ., -; único

Salida out: cada mensaje que llega, sin cambios y en la misma ejecución.

Comment

Un bloque Comment es una nota en el lienzo (hasta 2.048 caracteres). No hace nada cuando el flujo se ejecuta.

Consulte también Routing and timing blocks para Link call, y Action blocks para Link out, Emit event, Timer y Run flow.