Estos bloques actúan sobre personas y dispositivos: abren y cierran alarmas, envían comandos, responden a las peticiones propias de un dispositivo y envían notificaciones. Los bloques de alarma y de comando necesitan un mensaje cuyo origen sea un dispositivo; Notify funciona con cualquier mensaje.
Raise alarm
Abre una alarma en el dispositivo del mensaje, o actualiza la abierta del mismo tipo: una alarma abierta por dispositivo y tipo.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| alarm | El tipo de alarma | obligatorio | una plantilla, p. ej. tank.{{ msg.metadata.topic }}.low; letras, dígitos, _ . : -, como máximo 128 tras la renderización |
| severity | Severidad | warning | critical, major, minor, warning, info |
| text | Título | el tipo | una plantilla, como máximo 256 caracteres |
| value | Se guarda en los detalles de la alarma | msg.payload | una ruta |
| notify_to | Quién es avisado | nadie | ids de usuario, direcciones de correo, los roles OWNER, ADMIN, USER |
| notify_channels | Canales | elección de cada persona | ids de canal como inapp, mail |
| notify_min_severity | Avisar solo desde esta severidad | info | una severidad |
| notify_repeat_sec | Recordar mientras esté abierta y sin reconocer | sin recordatorio | 0, o 60 segundos o más |
out: la alarma (msgType alarm, la alarma en msg.payload). Errores: not_a_device, bad_alarm_id. Las notificaciones siguen el mismo ciclo de vida que las reglas de alarma: throttling, un resumen en una tormenta de alarmas, las alarmas críticas se saltan las preferencias personales salvo que su organización lo haya desactivado. Una escalada vuelve a notificar; un nuevo aviso con la misma severidad no. Un mensaje tardío no cambia ninguna alarma. Consulte Alarm notifications in depth.
Clear alarm
Resuelve la alarma abierta de un tipo en el dispositivo del mensaje.
| Ajuste | Significado | Valores |
|---|---|---|
| alarm | El tipo de alarma | obligatorio, una plantilla |
out: la alarma despejada, o el mensaje sin cambios si no había ninguna abierta. Quien fue avisado de la alarma recibe el aviso de que se ha resuelto.
Acknowledge alarm
Reconoce las alarmas abiertas del dispositivo: siguen abiertas, los recordatorios se detienen.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| alarm | Qué alarmas | todas las alarmas abiertas | *, un tipo, o un prefijo terminado en * |
| min_severity | Solo desde esta severidad | info | una severidad |
| note | Una nota en la línea de tiempo de cada alarma | ninguna | como máximo 256 caracteres |
Los tres bloques de alarma producen alarmas exactamente igual que las reglas de alarma. Un cambio de alarma que hagan lo recibirán los disparadores Device message que escuchan alarm; un flujo que lanza una alarma y además escucha alarmas puede volver a arrancarse a sí mismo, y el despliegue avisa de «May start its own flow again». Consulte Working with alarms.
Send command
Envía un comando de la lista de comandos del perfil del dispositivo al dispositivo del mensaje. No espera: el mensaje continúa con la petición que ha hecho; la respuesta del dispositivo llega más tarde.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| command | Un comando de la lista de comandos del perfil | obligatorio (o un método raw) | elegido de los comandos de sus perfiles |
| params | Los parámetros del comando | ninguno | un objeto como {"on": true}, o una ruta como msg.payload |
| method | Un método raw fuera de la lista de comandos | vacío | namespace.verb, como máximo 64 caracteres |
out: el mensaje con msg.metadata.rpcId (la petición, también en la pestaña Commands del dispositivo) y msg.metadata.rpcStatus (QUEUED, o FAILED cuando el comando no pudo esperar y el dispositivo estaba desconectado). Errores (no se hizo ninguna petición):
| Código | Significado |
|---|---|
not_a_device, device_not_found | No es uno de sus dispositivos |
unknown_command | El perfil del dispositivo no tiene ese comando |
bad_params | Los parámetros no coinciden con el comando (msg.error.param indica cuál) |
method_refused | Un restablecimiento de fábrica, el emparejamiento o el olvido de la red nunca se envían desde la nube |
limit | Demasiados comandos a este dispositivo en el último minuto (por defecto 30 desde los flujos) |
device_not_active, rpc_not_supported_by_profile, payload_too_large | Tal como lo diría la consola |
- El comando se busca en el perfil del dispositivo de cada mensaje: un flujo que atiende varios perfiles solo envía a los que tienen el comando en su perfil.
- La petición se hace como el flujo y aparece en el historial de comandos del dispositivo como una hecha desde la consola. Un comando de alto impacto no requiere confirmación al ejecutarse: se confirmó en el despliegue.
- Desplegar necesita el permiso de envío del nivel del comando en cada perfil que lo tenga, Deploy flows with control-level nodes para un comando de alto impacto, y el permiso de RPC raw para un método raw.
- Un mensaje repetido o reentregado encuentra la petición que ya hizo y no envía nada de nuevo. Un mensaje tardío no envía ningún comando.
- Cada petición termina con un mensaje
rpc_response(SUCCESSFUL,FAILED,TIMEOUT,EXPIRED,CANCELLED) conmsg.metadata.rpcStatus,rpcIdyrequestedBy. Es un mensaje de dispositivo, así que llega al flujo raíz del dispositivo; enrútelo desde allí.
Los comandos a dispositivos detrás de una pasarela están en desarrollo. Consulte Sending commands to devices.
Answer device request
Responde a una petición que el dispositivo envió a la plataforma (un mensaje rpc_request: el dispositivo llama a un método en la nube). Los métodos integrados getCurrentTime y getSessionLimits se responden antes de que un flujo vea nada.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| result | Lo que devuelve el método | msg.payload | cualquier valor; se envía como {"ok": true, "result": …} |
| error | Rechazar en su lugar | ninguno | unsupported_method, bad_params, busy, timeout, expired, forbidden, payload_too_large, internal; se envía como {"ok": false, "error": …} |
| message | Texto enviado con un rechazo | vacío | como máximo 256 caracteres, se admiten plantillas |
Gana la primera respuesta. Si ningún flujo responde en 5 segundos, la plataforma responde unsupported_method. Errores: rpc_request_closed, not_an_rpc_request, payload_too_large, invalid_value. Un dispositivo MQTT recibe la respuesta en v1/rpc/up/res/{id}, un dispositivo HTTP en su petición en espera. Coloque este bloque en la rama rpc_request del flujo raíz (el raíz por defecto solo registra estas peticiones).
Notify
Envía una notificación y pasa el mensaje.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| Recipients | Filas de un Kind y un valor | obligatorio | como máximo 20 filas; 20 destinatarios tras la expansión |
| Repeat reason | Lo que hace que dos notificaciones sean «la misma» para el periodo de espera | las palabras de la notificación | plantilla, 200 caracteres |
| Channels | Restringir a estos canales | las preferencias de cada destinatario | ids de canal como inapp, mail, sms, push |
| Urgency | critical se salta las preferencias personales salvo que su organización lo haya desactivado | normal | normal, critical |
| Title, Text | El mensaje | plantillas, 200 y 4.000 caracteres | |
| Text format | text, o html para correo | text | text, html |
| Mail subject, Reply to | Opciones de correo | el título, ninguno | plantillas |
| Copy, Hidden copy | Más destinatarios de correo; cada uno recibe su propio correo | ninguno | plantillas |
| Mail attachments | Archivos para el correo | ninguno | 10 archivos, 1 MiB en total |
Quién es alcanzado, por qué canal
| Kind | Value | Alcanza a |
|---|---|---|
user | El id de usuario de un miembro | Ese miembro, en la aplicación, por push y en las aplicaciones de chat vinculadas |
role | OWNER, ADMIN o USER | Cada miembro activo con ese rol, como arriba |
custom_role | Una clave de rol personalizado | Sus miembros, como arriba |
team | Un id de equipo | Sus miembros, como arriba |
originator_owner | Vacío | Los propietarios del origen del mensaje, cuando un módulo los declara, como arriba |
address | Una o más direcciones de correo electrónico, separadas por comas | Correo electrónico |
phone | Uno o más números en formato internacional, separados por comas | SMS |
Los miembros se indican solo por su id de usuario. El correo electrónico y los SMS llegan únicamente a las filas address y phone. Un miembro incluido como user, o alcanzado a través de un rol, un rol personalizado o un equipo, recibe la notificación en la aplicación, por push y en las aplicaciones de chat vinculadas según sus preferencias, pero no por correo electrónico ni por SMS, incluso si tiene una dirección de correo. Para enviar correos a personas, añada sus direcciones en una fila address.
Un rol o equipo con más de 20 miembros activos se rechaza (too_many_recipients) en lugar de enviarse a medias.
Enfriamiento, cuotas y mensajes tardíos
- Una persona recibe una notificación del mismo motivo desde el mismo flujo una vez cada 10 minutos (su plan puede establecer otro valor, de al menos 1 minuto). Configure Repetir motivo cuando el texto cambie con cada lectura, por ejemplo
level of {{ msg.metadata.deviceName }}. La siguiente notificación, al terminar el enfriamiento, incluye «(+n)». - Antes de enviar, el bloque comprueba las cuotas mensuales de correo y SMS; un canal sin cuota se omite (
msg.metadata.notify.quota). Solo cuando todos los canales están sin cuota falla conlimit. - Un mensaje tardío no notifica a nadie.
out incluye msg.metadata.notify: recipients, delivered, failed, suppressed, invalid, quota, held. Errores: no_recipients, too_many_recipients, members_unavailable, invalid_attachment, notify_failed, node_not_ready, circuit_open, limit.
Consulte Notifications from rules and flows para plantillas, correos HTML y adjuntos.

