Certains blocs mémorisent des messages précédents : un compteur, la valeur précédente, une fenêtre de valeurs, l’heure du dernier message. Cette page énumère ces blocs et explique le fonctionnement de leur mémoire, ce qui compte lors du déploiement de modifications.
Fonctionnement de la mémoire des blocs
| Règle | Détail |
|---|---|
| Une mémoire par appareil | Sauf si vous définissez key, ces blocs conservent une mémoire distincte par émetteur de message : chaque appareil a son propre compteur, sa propre valeur précédente ou sa propre surveillance. Définissez key sur msg.topic ou sur un autre chemin pour regrouper différemment. |
| Conservée après redémarrage | La mémoire et les messages en attente sont conservés par la plateforme ; un redémarrage ou un transfert vers un autre worker ne les perd pas. Les attentes sont réarmées à leur échéance initiale. |
| Réinitialisation lors d’une modification des paramètres | Un bloc conserve sa mémoire lors d’un déploiement si ses paramètres n’ont pas changé. Un bloc dont les paramètres ont changé démarre avec une mémoire vide (les messages qu’il retenait sont conservés). Un bloc supprimé, ou dont le type a changé, perd tout. |
| Conservée pendant la pause | Un flux désactivé ou mis en pause conserve la mémoire de ses blocs ; un flux supprimé la perd. |
| Taille | 10 000 clés au maximum par bloc ; au-delà, la clé la plus ancienne est oubliée. Les messages retenus comptent dans la limite de 16 MiB par bloc. |
| Tests | Un test démarre avec une mémoire vide, ou à partir d’une copie en lecture seule de la mémoire active lorsque vous cochez Démarrer à partir de l’état et du contexte actifs. Un test ne modifie jamais la mémoire active. |
Donc : si vous modifiez la fenêtre d’un bloc Statistics, ses moyennes repartent de zéro ; si vous ne faites que modifier le câblage autour, elles se poursuivent.
Compteur
Compte les messages par clé, sur toute la durée ou dans une fenêtre glissante, et ajoute le total au message.
| Paramètre | Signification | Valeur par défaut | Valeurs |
|---|---|---|---|
| n | Le nombre qui envoie une copie vers reached ; vide ou 0 = jamais | vide | 0 ou plus |
| window_ms | Ne compter que sur cette durée écoulée ; 0 = tout | 0 | 0 à 7 jours |
| reset_at_n | Repartir de 0 lorsque n est atteint | off | on, off |
| key | Chaque clé a son propre compteur | msg.originator | un chemin |
| store | memory, ou persist (conservé dans le contexte persistant du flux) | memory | memory, persist |
Sorties : out (chaque message, avec msg.count), reached (une copie lorsque le compteur atteint n ou plus). msg.reset = true remet à 0 le compteur de la clé. Sans reset_at_n, chaque message à partir du n-ième est également envoyé vers reached.
Exemple : « 3 ouvertures de porte en 10 minutes » : n 3, window_ms 10 min, reset_at_n on, reached → Déclencher une alarme.
Delta
La différence entre un nombre et le nombre précédent de la même clé : consommation d’un compteur, impulsions depuis le dernier relevé.
| Paramètre | Signification | Valeur par défaut | Valeurs |
|---|---|---|---|
| input | Le nombre | msg.payload | un chemin |
| output | Emplacement où la différence est écrite | msg.payload.delta | un chemin |
| period | Emplacement où écrire les millisecondes écoulées depuis la valeur précédente | none | un chemin |
| round | Décimales, appliquées en premier | none | 0 à 15 |
| on_negative | Une baisse (redémarrage du compteur) | error | error (negative_delta), pass (écrit avec son signe), zero |
| skip_zero | Transmettre un delta nul inchangé, sans l’écrire | off | on, off |
| key | Chaque clé a sa propre valeur précédente | msg.originator | un chemin |
| seed | La valeur précédente du premier message | none (delta 0) | none, latest (la dernière valeur enregistrée de l’appareil) |
| seed_key | La clé enregistrée à partir de laquelle initialiser (seed = latest) | jusqu’à 128 caractères | |
| ts_path | Emplacement de l’heure de la mesure | l’heure d’enregistrement | un chemin |
Sorties : out, other (aucune valeur au chemin d’entrée), error (not_a_number, negative_delta). Après une baisse, la nouvelle valeur devient la référence dans tous les modes. Delta ne lit aucune base de données à chaque message : c’est donc la manière efficace de calculer une consommation.
Statistics
Nombre, somme, moyenne, minimum, maximum, écart type, dernière valeur et taux sur les dernières valeurs ou la dernière période, par clé.
| Paramètre | Signification | Valeur par défaut | Valeurs |
|---|---|---|---|
| property | Le nombre | msg.payload | un chemin |
| window | count (les dernières size valeurs) ou time (les dernières size ms) | count | count, time |
| size | Nombre de valeurs, ou la fenêtre en ms | 10 | count : 1 à 10 000 ; time : 1 ms à 7 jours |
| outputs | Quels indicateurs | count, avg, min, max | n’importe lesquels de count, sum, avg, min, max, stddev, last, rate |
| emit | each pour chaque message, ou une fois par fenêtre complète (end_of_window) | each | each, end_of_window |
| key | Chaque clé a sa propre fenêtre | msg.originator | un chemin |
msg.payload est remplacé par l’indicateur (une sortie choisie) ou par un objet d’indicateurs. rate est exprimé en valeurs par seconde. Une fenêtre temporelle contient au maximum 10 000 valeurs. Après avoir passé window à time, réglez size en millisecondes : la valeur par défaut 10 représenterait 10 ms. Erreur invalid_value « not a number ».
Exemple : moyenne horaire envoyée une fois par heure : window time, size 3600000, outputs avg, emit end_of_window.
Watchdog
Signale l’arrêt des messages : si aucun message d’une clé n’arrive dans le délai, il envoie un message de dépassement de délai ; lorsque les messages reprennent, il le signale également.
| Paramètre | Signification | Valeur par défaut | Valeurs |
|---|---|---|---|
| ms | Durée pendant laquelle une clé peut rester silencieuse | 1 min | 100 ms à 7 jours |
| key | Chaque clé est surveillée séparément | msg.originator | un chemin |
| repeat | Envoyer à nouveau timeout toutes les ms tant que le silence persiste | off | on, off |
Sorties :
timeout: un nouveau message (une nouvelle exécution) avecmsg.payload= la clé,msg.topicdu dernier message,msg.timeout_ms, et l’émetteur du dernier message, afin que Déclencher une alarme puisse l’exploiter.ok: le premier message d’une clé après un dépassement de délai, inchangé.
Les autres messages ne sont pas transmis. La surveillance d’une clé commence avec son premier message : un appareil qui n’envoie jamais n’est pas détecté (utilisez pour cela une règle d’alarme hors ligne ; voir Alarmes hors ligne). Un message tardif (après une panne) n’alimente ni ne déclenche le watchdog, afin qu’une alarme de silence ne soit pas effacée par d’anciennes mesures. Pour surveiller par appareil, key doit être défini sur l’appareil : msg.originator (la valeur par défaut) ou msg.metadata.deviceId.
Début / fin
Marque le début et la fin d’une période d’activité.
| Paramètre | Signification | Valeur par défaut | Valeurs |
|---|---|---|---|
| ms | Délai de silence après le dernier message qui termine la période | 1 min | 0 à 7 jours |
| key | Chaque clé a sa propre période | msg.originator | un chemin |
Sorties : start (une copie du premier message d’une période, immédiatement), end (le dernier message, ms après son arrivée). Les messages intermédiaires ne sont pas envoyés.
Variables utilisées comme mémoire
Pour les valeurs partagées par plusieurs blocs ou flux, écrivez des variables avec Définir une variable ou Modifier, et lisez-les avec des chemins :
| Stockage | Portée | Limite |
|---|---|---|
flow.x | Ce flux | 1 MiB par flux |
global.x | Chaque flux de l’organisation | 4 MiB par organisation |
flow.persist:x, global.persist:x | Le stockage persistant de la même portée | dans les mêmes limites |
Une écriture au-delà d’une limite échoue avec limit et conserve l’ancienne valeur. L’onglet Données de Activité > de l’éditeur affiche les valeurs et le taux de remplissage des stockages. Voir Blocs d’action.
Minuteries
Pour « si rien ne l’annule dans les 10 minutes, faites ceci » entre plusieurs flux, utilisez le bloc d’action Minuterie avec un déclencheur Minuterie nommée. Voir Blocs d’action et Blocs déclencheurs.

