Nouveau : le pare-feu IA surveille chaque module et explique chaque incident en termes simples. Découvrez comment ça marche

Blocs de données IoT

Référence de Enregistrer la télémétrie, Enregistrer les attributs, Définir un attribut partagé, Règles d'alarme, Détails de l'appareil, Dernières valeurs, Détails du profil, Données associées et Enregistrer une lecture.

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ètreSignificationDéfautValeurs
clésSeulement ces cléstoutes les clésnoms de clés
tsL’heure à laquelle l’enregistrement est stockéheure d’enregistrementheure d’enregistrement (msg.metadata.recordTs), heure de réception (msg.metadata.ts)
ts_pathAvec l’heure d’enregistrement : redater l’enregistrement à partir de cette valeuraucunun 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 :

CodeSignification
not_a_deviceL’originator n’est pas un appareil
invalid_valueLe payload n’est pas un objet
bad_tsL’heure à ts_path n’est pas en millisecondes epoch
too_oldPlus ancien que la durée de conservation des données brutes de votre organisation
no_valuesRien dans le payload ne peut être enregistré
key_limitPas de place pour une nouvelle clé sous le plafond de clés de l’offre
save_failedLa 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ètreSignificationDéfautValeurs
scopeQuels attributsclientclient
clésSeulement ces cléstoutes les clésnoms 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ètreSignificationValeurs
élémentsPaires clé et valeurobligatoire ; 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_ ou current_fw_, ainsi que session_limits et deleted, 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ètreSignificationDéfautValeurs
profile_rulesÉvaluer les règles du profilonon, off
rulesSeulement ces types d’alarmetoutes les règlestypes 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 avec msg.msgType alarm, l’alarme dans msg.payload et msg.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ètreSignificationDéfautValeurs
fieldsChamps de l’appareilname, profilename, label, type, serial, model, fw_version, status, online, last_activity (ms epoch), profile, profile_id, is_gateway, gateway
attributesAttributs : scope, key, nom dans le messageaucun32 au maximum ; scope client, shared ou server
targetOù l’objet est écritmsg.metadata.deviceun chemin sous msg.metadata ou msg.payload
with_tsÉcrire les attributs sous la forme { ts, value }off
on_missingUn champ ou un attribut sans valeurerrorerror, 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ètreSignificationDéfautValeurs
clésClés de télémétrieobligatoire50 au maximum
targetOùmsg.metadata.latestsous msg.metadata ou msg.payload
with_ts{ ts, value } au lieu de la valeuroff
on_missingUne clé sans valeur enregistréeerrorerror, 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ètreSignificationDéfautValeurs
fieldsChamps du profilnamename, id, transport, inactivity_timeout_s, rpc_timeout_s, downlink_max_bytes, online_rule, expected_interval_s
targetOùmsg.metadata.profilesous msg.metadata ou msg.payload
on_missingUn champ sans valeurerrorerror, 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ètreSignificationDéfautValeurs
directionSuivre les relations depuis l’originator, ou vers luifromfrom, to
relation_typesTypes de relations suivisCONTAINSpar ex. CONTAINS, MANAGES, FEEDS, MONITORS ou les vôtres ; none = tous
exclude_typesTypes jamais suivisaucun
depthNiveaux11 à 8
last_level_onlyNe garder que le dernier niveauoff
entity_kindQuelles entitésanyany, asset, device
profiles, kindsSeulement les appareils de ces profils, les actifs de ces typesany
maxCombien d’entités11 à 100 (1 écrit un objet, davantage une liste)
dataCe qui est luattributesattributs, dernières valeurs (appareils), champs
portéePortée des attributs de l’appareilserveurserveur, partagé, client
correspondanceClés lues et leurs noms dans le messageobligatoire50 maximum
cibleEmplacementmsg.metadata.relatedsous msg.metadata ou msg.payload
with_ts, on_missingComme ci-dessusoff, 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ètreSignificationValeur par défautValeurs
kindLe type d’enregistrementobligatoireun type qui accepte les écritures depuis les flux
entity_pathEmplacement de l’identifiant de l’enregistrementmsg.originator.idun chemin vers un UUID
ts, ts_pathComme pour Enregistrer la télémétriehorodatage de l’enregistrement
keysSeulement ces cléstoutes 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.