Estos bloques actúan sobre los datos de un dispositivo en el host IoT: almacenan lecturas y atributos, evalúan reglas de alarma y añaden datos del dispositivo al mensaje. Casi todos necesitan un mensaje cuyo originador es un dispositivo: un mensaje de dispositivo, o un mensaje que un nodo raíz pasó con Run flow. Los mensajes iniciados por una programación, inject, evento o temporizador tratan sobre la organización, no sobre un dispositivo; estos bloques los rechazan con not_a_device.
Guardar telemetría
Almacena los pares clave-valor del mensaje como telemetría del dispositivo. Solo este bloque almacena telemetría: una rama sin él no almacena nada. Solo se almacena msg.payload, nunca los metadatos.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| claves | Solo estas claves | todas las claves | nombres de clave |
| ts | Momento en que se almacena el registro | hora del registro | hora del registro (msg.metadata.recordTs), hora de recepción (msg.metadata.ts) |
| ts_path | Con hora del registro: reasigna el registro a partir de este valor | ninguno | ruta a milisegundos epoch (un número o texto numérico) |
Salidas: out (una vez confirmados los valores), error con msg.error.code:
| Código | Significado |
|---|---|
not_a_device | El originador no es un dispositivo |
invalid_value | El payload no es un objeto |
bad_ts | La hora en ts_path no son milisegundos epoch |
too_old | Más antiguo de lo que tu organización conserva los datos brutos |
no_values | Nada del payload puede almacenarse |
key_limit | No hay espacio para una clave nueva dentro del límite de claves del plan |
save_failed | La base de datos rechazó la fila (msg.error.ts es su hora) |
- Los mensajes se escriben en oleadas de hasta 500, y el siguiente mensaje del dispositivo espera a la confirmación, así que lee lo que este almacenó.
- Los mismos valores en el mismo momento se almacenan una vez; dos mensajes distintos en el mismo momento se conservan ambos; el último valor solo se actualiza con una hora estrictamente posterior.
- Cuando no se puede acceder a la base de datos, no se pierde nada: la ejecución espera y se repite cuando vuelve.
- Una ejecución de prueba no almacena nada.
Consulta Cómo se almacenan las lecturas y Claves de telemetría.
Guardar atributos
Almacena los pares clave-valor del mensaje como atributos client del dispositivo (lo que el dispositivo informa sobre sí mismo, como su versión de firmware).
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| scope | Qué atributos | client | client |
| claves | Solo estas claves | todas las claves | nombres de clave |
Errores: not_a_device, invalid_value, save_failed. Un mensaje entregado de nuevo no cambia nada; un mensaje más antiguo nunca sobrescribe un valor más nuevo; un valor sin cambios no se vuelve a escribir. Consulta Atributos.
Establecer atributo compartido
Establece atributos compartidos del dispositivo del mensaje. Un dispositivo conectado recibe el cambio al instante; uno sin conexión, al volver a conectarse. Los flujos reciben el cambio como un mensaje attributes_updated.
| Ajuste | Significado | Valores |
|---|---|---|
| elementos | Pares clave y valor | obligatorio; como máximo 32. Clave: letras, dígitos, _, ., -, como máximo 57 caracteres. Valor: un literal (true, 22.5, {"mode":"eco"}) o una ruta como msg.payload.setpoint. |
Errores: not_a_device, device_not_found, invalid_value, bad_attribute, too_large, managed_by_settings (una clave cfg.* de un dispositivo cuyos ajustes se gestionan en su pestaña Settings), limit (el dispositivo tuvo demasiados comandos y ajustes de flujos en el último minuto; por defecto 30).
- Nivel de control: desplegar requiere Deploy flows with control-level nodes y escribir el nombre del flujo.
- Las claves que empiezan por
_,fw_ocurrent_fw_, así comosession_limitsydeleted, pertenecen a la plataforma y no se pueden establecer. - Un mensaje tardío no cambia nada. Una ejecución de prueba indica lo que establecería.
Reglas de alarma
Evalúa las reglas de alarma del perfil del dispositivo y abre, actualiza o cierra las alarmas del dispositivo. Las reglas se editan en el perfil del dispositivo; este bloque decide en qué punto del flujo se ejecutan. El nodo raíz por defecto lo coloca justo después de la entrada.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| profile_rules | Evaluar las reglas del perfil | on | on, off |
| reglas | Solo estos tipos de alarma | todas las reglas | tipos de regla del perfil |
Salidas:
out: el mensaje, siempre, tras la evaluación (un problema se registra y nunca detiene el mensaje, así que los bloques de guardado posteriores siguen ejecutándose).created,updated,cleared: una copia del mensaje conmsg.msgTypealarm, la alarma enmsg.payloadymsg.metadata.alarm(transition,isNew,isSeverityUpdated,isCleared,repeats,durationMs,ruleId).
La telemetría se evalúa contra las reglas que leen una de sus claves; connect, disconnect, activity e inactivity activan la regla de desconexión. Las lecturas tardías o desordenadas se evalúan como backfill (historial marcado como Backfilled, sin notificar a nadie). Si eliminas el bloque, las reglas de alarma se detienen para los dispositivos de este nodo raíz; si lo vuelves a poner, continúan. Consulta Reglas de alarma en perfiles de dispositivo.
Detalles del dispositivo
Añade datos y atributos del dispositivo del mensaje al mensaje.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| fields | Campos del dispositivo | name, profile | name, label, type, serial, model, fw_version, status, online, last_activity (epoch ms), profile, profile_id, is_gateway, gateway |
| attributes | Atributos: scope, key, nombre en el mensaje | ninguno | como máximo 50; scope client, shared o server |
| target | Dónde se escribe el objeto | msg.metadata.device | una ruta bajo msg.metadata o msg.payload |
| with_ts | Escribe los atributos como { ts, value } | off | |
| on_missing | Un campo o atributo sin valor | error | error, skip, null |
Resultado de ejemplo: { "name": "Boiler 1", "profile": "Boilers", "online": true, "setpoint": 21 }. gateway es { id, name, online } para un dispositivo detrás de una pasarela. Los detalles se guardan en caché 30 segundos; los atributos se leen en el momento. Errores: missing (con msg.error.keys), not_a_device, not_found, invalid_value, read_failed.
Últimos valores
Añade los últimos valores almacenados de las claves elegidas del dispositivo.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| claves | Claves de telemetría | obligatorio | como máximo 50 |
| target | Dónde | msg.metadata.latest | bajo msg.metadata o msg.payload |
| with_ts | { ts, value } en lugar del valor | off | |
| on_missing | Una clave sin valor almacenado | error | error, skip, null |
Un valor del mensaje en curso se incluye solo después de que se ejecute su bloque Guardar telemetría.
Detalles del perfil
Añade datos del perfil del dispositivo.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| fields | Campos del perfil | name | name, id, transport, inactivity_timeout_s, rpc_timeout_s, downlink_max_bytes, online_rule, expected_interval_s |
| target | Dónde | msg.metadata.profile | bajo msg.metadata o msg.payload |
| on_missing | Un campo sin valor | error | error, skip, null |
Datos relacionados
Añade datos de activos y dispositivos relacionados con el dispositivo o activo del mensaje: el sitio donde se ubica un dispositivo, los dispositivos que gestiona un activo, un antecesor tres niveles arriba.
| Ajuste | Significado | Por defecto | Valores |
|---|---|---|---|
| direction | Seguir relaciones desde el originador, o hacia él | from | from, to |
| relation_types | Tipos de relación seguidos | CONTAINS | p. ej. CONTAINS, MANAGES, FEEDS, MONITORS o los tuyos; ninguno = cualquiera |
| exclude_types | Tipos que nunca se siguen | ninguno | |
| depth | Niveles | 1 | 1 a 8 |
| last_level_only | Conservar solo el último nivel | off | |
| entity_kind | Qué entidades | any | any, asset, device |
| profiles, kinds | Solo dispositivos de estos perfiles, activos de estos tipos | any | |
| max | Cuántas entidades | 1 | 1 a 100 (1 escribe un objeto, más de uno una lista) |
| data | Qué se lee | attributes | atributos, últimos valores (dispositivos), campos |
| ámbito | Ámbito del atributo del dispositivo | servidor | servidor, compartido, cliente |
| asignación | Claves leídas y sus nombres en el mensaje | obligatorio | como máximo 50 |
| destino | Dónde | msg.metadata.related | bajo msg.metadata o msg.payload |
| with_ts, on_missing | Igual que arriba | off, error |
El árbol de activos y las ubicaciones de los dispositivos cuentan como relaciones CONTAINS: dirección to, CONTAINS, profundidad 3, solo último nivel; assets encuentra el sitio de un dispositivo tres niveles por encima. El orden es fijo, así que max 1 elige siempre la misma entidad. Consulte Asset hierarchy.
Guardar lectura (host General)
Almacena pares clave-valor como una lectura de un tipo de registro que acepta escrituras desde flujos (por ejemplo, contadores de activos, si su plan los incluye). Los datos de los dispositivos nunca se guardan aquí.
| Ajuste | Significado | Valor predeterminado | Valores |
|---|---|---|---|
| kind | El tipo de registro | obligatorio | un tipo que acepta escrituras desde flujos |
| entity_path | Dónde está el id del registro | msg.originator.id | una ruta a un UUID |
| ts, ts_path | Igual que para Guardar telemetría | hora del registro | |
| keys | Solo estas claves | todas las claves |
Errores: invalid_value, invalid_entity, unknown_kind, kind_not_writable, entity_not_writable, bad_ts, save_failed.
Dónde termina el metadato
Los valores escritos bajo msg.metadata nunca se almacenan; los valores bajo msg.payload los almacena un Guardar telemetría posterior. Coloque el enriquecimiento bajo msg.metadata salvo que quiera almacenarlo.

