Ces blocs travaillent sur les données d’un appareil sur l’hôte IoT : ils enregistrent les mesures et les attributs, évaluent les règles d’alarme et ajoutent les informations de l’appareil au message. Presque tous exigent un message dont l’originator est un appareil : un message d’appareil, ou un message qu’une racine a transmis avec Run flow. Les messages lancés par un planning, un inject, un événement ou un timer concernent l’organisation, pas un appareil ; ces blocs les refusent avec not_a_device.
Enregistrer la télémétrie
Enregistre les paires clé-valeur du message comme télémétrie de l’appareil. Seul ce bloc enregistre la télémétrie : une branche sans lui n’enregistre rien. Seul msg.payload est enregistré, jamais les métadonnées.
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| clés | Seulement ces clés | toutes les clés | noms de clés |
| ts | L’heure à laquelle l’enregistrement est stocké | heure d’enregistrement | heure d’enregistrement (msg.metadata.recordTs), heure de réception (msg.metadata.ts) |
| ts_path | Avec l’heure d’enregistrement : redater l’enregistrement à partir de cette valeur | aucun | un chemin vers des millisecondes epoch (un nombre ou un texte numérique) |
Sorties : out (une fois les valeurs validées), error avec msg.error.code :
| Code | Signification |
|---|---|
not_a_device | L’originator n’est pas un appareil |
invalid_value | Le payload n’est pas un objet |
bad_ts | L’heure à ts_path n’est pas en millisecondes epoch |
too_old | Plus ancien que la durée de conservation des données brutes de votre organisation |
no_values | Rien dans le payload ne peut être enregistré |
key_limit | Pas de place pour une nouvelle clé sous le plafond de clés de l’offre |
save_failed | La base de données a refusé la ligne (msg.error.ts est son heure) |
- Les messages sont écrits par vagues de 500 au maximum, et le message suivant de l’appareil attend la validation, afin de lire ce que celui-ci a enregistré.
- Les mêmes valeurs à la même heure sont enregistrées une seule fois ; deux messages différents à la même heure sont tous deux conservés ; la dernière valeur n’est remplacée que par une heure strictement plus récente.
- Lorsque la base de données est injoignable, rien n’est perdu : l’exécution attend et est rejouée à son retour.
- Un test n’enregistre rien.
Voir Comment les mesures sont stockées et Clés de télémétrie.
Enregistrer les attributs
Enregistre les paires clé-valeur du message comme attributs client de l’appareil (ce que l’appareil indique de lui-même, comme la version de son firmware).
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| scope | Quels attributs | client | client |
| clés | Seulement ces clés | toutes les clés | noms de clés |
Erreurs : not_a_device, invalid_value, save_failed. Un message livré à nouveau ne change rien ; un message plus ancien n’écrase jamais une valeur plus récente ; une valeur inchangée n’est pas réécrite. Voir Attributs.
Définir un attribut partagé
Définit les attributs partagés de l’appareil du message. Un appareil connecté reçoit le changement immédiatement ; un appareil hors ligne à sa prochaine connexion. Les flows reçoivent le changement sous forme de message attributes_updated.
| Paramètre | Signification | Valeurs |
|---|---|---|
| éléments | Paires clé et valeur | obligatoire ; 32 au maximum. Clé : lettres, chiffres, _, ., -, 57 caractères au maximum. Valeur : une littérale (true, 22.5, {"mode":"eco"}) ou un chemin tel que msg.payload.setpoint. |
Erreurs : not_a_device, device_not_found, invalid_value, bad_attribute, too_large, managed_by_settings (une clé cfg.* d’un appareil dont les paramètres sont gérés dans son onglet Settings), limit (l’appareil a reçu trop de commandes et de paramètres émis par des flows la dernière minute ; 30 par défaut).
- Niveau de contrôle : le déploiement exige Deploy flows with control-level nodes et le nom du flow saisi.
- Les clés commençant par
_,fw_oucurrent_fw_, ainsi quesession_limitsetdeleted, appartiennent à la plateforme et ne peuvent pas être définies. - Un message tardif ne change rien. Un test indique ce qu’il définirait.
Règles d’alarme
Évalue les règles d’alarme du profil de l’appareil et ouvre, met à jour ou efface les alarmes de l’appareil. Les règles se modifient sur le profil d’appareil ; ce bloc détermine où elles s’exécutent dans le flow. La racine par défaut le place juste après l’entrée.
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| profile_rules | Évaluer les règles du profil | on | on, off |
| rules | Seulement ces types d’alarme | toutes les règles | types de règles du profil |
Sorties :
out: le message, toujours, après l’évaluation (un problème est journalisé et n’arrête jamais le message, si bien que les blocs d’enregistrement qui suivent s’exécutent quand même).created,updated,cleared: une copie du message avecmsg.msgTypealarm, l’alarme dansmsg.payloadetmsg.metadata.alarm(transition,isNew,isSeverityUpdated,isCleared,repeats,durationMs,ruleId).
La télémétrie est évaluée par rapport aux règles qui lisent l’une de ses clés ; connect, disconnect, activity et inactivity pilotent la règle hors ligne. Les mesures tardives ou désordonnées sont évaluées en rétro-saisie (historique marqué Backfilled, personne n’est notifié). Supprimer le bloc arrête les règles d’alarme pour les appareils de cette racine ; le remettre les relance. Voir Règles d’alarme sur les profils d’appareil.
Détails de l’appareil
Ajoute au message les informations et attributs de l’appareil du message.
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| fields | Champs de l’appareil | name, profile | name, label, type, serial, model, fw_version, status, online, last_activity (ms epoch), profile, profile_id, is_gateway, gateway |
| attributes | Attributs : scope, key, nom dans le message | aucun | 32 au maximum ; scope client, shared ou server |
| target | Où l’objet est écrit | msg.metadata.device | un chemin sous msg.metadata ou msg.payload |
| with_ts | Écrire les attributs sous la forme { ts, value } | off | |
| on_missing | Un champ ou un attribut sans valeur | error | error, skip, null |
Exemple de résultat : { "name": "Boiler 1", "profile": "Boilers", "online": true, "setpoint": 21 }. gateway vaut { id, name, online } pour un appareil derrière une passerelle. Les détails sont mis en cache 30 secondes ; les attributs sont lus à neuf. Erreurs : missing (avec msg.error.keys), not_a_device, not_found, invalid_value, read_failed.
Dernières valeurs
Ajoute les dernières valeurs enregistrées des clés choisies de l’appareil.
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| clés | Clés de télémétrie | obligatoire | 50 au maximum |
| target | Où | msg.metadata.latest | sous msg.metadata ou msg.payload |
| with_ts | { ts, value } au lieu de la valeur | off | |
| on_missing | Une clé sans valeur enregistrée | error | error, skip, null |
Une valeur du message en cours de traitement n’est incluse qu’après l’exécution de son bloc Enregistrer la télémétrie.
Détails du profil
Ajoute les informations du profil de l’appareil.
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| fields | Champs du profil | name | name, id, transport, inactivity_timeout_s, rpc_timeout_s, downlink_max_bytes, online_rule, expected_interval_s |
| target | Où | msg.metadata.profile | sous msg.metadata ou msg.payload |
| on_missing | Un champ sans valeur | error | error, skip, null |
Données liées
Ajoute les données des actifs et appareils liés à l’appareil ou à l’actif du message : le site où un appareil est placé, les appareils gérés par un actif, un ancêtre à trois niveaux au-dessus.
| Paramètre | Signification | Défaut | Valeurs |
|---|---|---|---|
| direction | Suivre les relations depuis l’originator, ou vers lui | from | from, to |
| relation_types | Types de relations suivis | CONTAINS | par ex. CONTAINS, MANAGES, FEEDS, MONITORS ou les vôtres ; none = tous |
| exclude_types | Types jamais suivis | aucun | |
| depth | Niveaux | 1 | 1 à 8 |
| last_level_only | Ne garder que le dernier niveau | off | |
| entity_kind | Quelles entités | any | any, asset, device |
| profiles, kinds | Seulement les appareils de ces profils, les actifs de ces types | any | |
| max | Combien d’entités | 1 | 1 à 100 (1 écrit un objet, davantage une liste) |
| data | Ce qui est lu | attributes | attributs, dernières valeurs (appareils), champs |
| portée | Portée des attributs de l’appareil | serveur | serveur, partagé, client |
| correspondance | Clés lues et leurs noms dans le message | obligatoire | 50 maximum |
| cible | Emplacement | msg.metadata.related | sous msg.metadata ou msg.payload |
| with_ts, on_missing | Comme ci-dessus | off, error |
L’arborescence des actifs et les emplacements des appareils comptent comme relations CONTAINS : direction to, CONTAINS, profondeur 3, dernier niveau uniquement, assets retrouve le site d’un appareil trois niveaux plus haut. L’ordre est fixe, donc max 1 sélectionne toujours la même entité. Voir Asset hierarchy.
Enregistrer une lecture (hôte General)
Stocke des paires clé-valeur sous forme de lecture d’un type d’enregistrement qui accepte les écritures depuis les flux (par exemple les compteurs d’actifs, si votre offre les inclut). Les données des appareils ne sont jamais enregistrées ici.
| Paramètre | Signification | Valeur par défaut | Valeurs |
|---|---|---|---|
| kind | Le type d’enregistrement | obligatoire | un type qui accepte les écritures depuis les flux |
| entity_path | Emplacement de l’identifiant de l’enregistrement | msg.originator.id | un chemin vers un UUID |
| ts, ts_path | Comme pour Enregistrer la télémétrie | horodatage de l’enregistrement | |
| keys | Seulement ces clés | toutes les clés |
Erreurs : invalid_value, invalid_entity, unknown_kind, kind_not_writable, entity_not_writable, bad_ts, save_failed.
Fin des métadonnées
Les valeurs écrites sous msg.metadata ne sont jamais enregistrées ; les valeurs sous msg.payload sont enregistrées par un bloc Enregistrer la télémétrie ultérieur. Placez l’enrichissement sous msg.metadata, sauf si vous voulez l’enregistrer.

