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

Debounce, hystérésis et dampening

Empêchez les alarmes de basculer en boucle : debounce par relevés ou par heure de l'appareil, marge de fermeture, et dampening qui retient une alarme instable ouverte.

Un système de supervision qui crie au loup est pire que pas de système du tout. Les règles d’alarme disposent de trois réglages contre le bruit. Le debounce oblige une condition à faire ses preuves avant que l’alarme ne s’ouvre ou ne se ferme. L’hystérésis ajoute une marge côté fermeture. Le dampening retient une alarme qui n’arrête pas de basculer.

Debounce

Champ (JSON)Libellé du formulairePlagePar défaut
debounce.modeComptage en : Relevés consécutifs (count) ou Secondes (heure de l’appareil) (duration)count
debounce.raiseDéclencher après ce nombre de relevés consécutifs / Déclencher lorsque vrai pendant (secondes)1 à 86 4001
debounce.clearEffacer après ce nombre de relevés consécutifs / Effacer lorsque faux pendant (secondes)1 à 86 4001

Par relevés

L’alarme s’ouvre au raise-ième relevé consécutif dont la condition est vraie, et se ferme au clear-ième relevé consécutif dont la condition est fausse. Un relevé dans l’autre sens remet le compteur à zéro. Avec la valeur par défaut 1 et 1, l’alarme suit chaque relevé.

Seuls les relevés contenant l’une des clés de la règle comptent. Un message avec d’autres clés n’est pas un relevé pour cette règle.

Par heure de l’appareil

L’alarme s’ouvre lorsque la condition a été vraie sans interruption pendant raise secondes, mesurées sur les horodatages des relevés et non sur l’horloge du serveur. Elle se ferme de manière symétrique.

Important

Le temps n’avance que lorsqu’un relevé arrive. Si un appareil transmet toutes les 10 minutes, « vrai pendant 60 secondes » est atteint avec le deuxième relevé vrai, 10 minutes plus tard. Si l’appareil cesse d’émettre, aucune décision n’est prise tant qu’il n’a pas renvoyé de données. Faites en sorte que les appareils répètent périodiquement leur état, ou utilisez une alarme hors ligne pour détecter le silence.

Exemple : « porte ouverte pendant 120 s » correspond à door_open == true avec Secondes (heure de l’appareil), déclenchement à 120.

Changements de gravité

Dans une alarme ouverte, un changement de gravité attend le même debounce : une hausse attend le nombre ou la durée de déclenchement, une baisse attend le nombre ou la durée d’effacement.

Hystérésis

hysteresis (formulaire : Hystérésis (marge de fermeture)) est un nombre absolu, égal ou supérieur à 0. Il élargit le seuil du côté de fermeture des comparaisons d’ordre (>, >=, <, <=) :

ConditionHystérésisOuvreFerme
temperature > 803au-dessus de 80à 77 ou moins
battery < 205en dessous de 20à 25 ou plus
pressure >= 60.2à 6 ou plusen dessous de 5.8

L’hystérésis ne s’applique pas à == ni à !=, et elle est ignorée lorsque la règle comporte une condition clear explicite (c’est cette condition qui décide). Une valeur qui oscille autour du seuil n’ouvre et ne ferme donc pas l’alarme à chaque relevé.

Dampening

Le dampening s’applique à toutes les règles à seuil. Sans bloc dampening, les valeurs par défaut sont utilisées :

ChampSignificationPlagePar défaut
maxTransitionsOuvertures et fermetures autorisées dans la fenêtre2 à 1004
windowSecLa fenêtre10 à 86 400 s600
holdSecDurée pendant laquelle la condition doit rester fausse avant qu’une alarme retenue ne se ferme1 à 86 400 s300

Lorsqu’une fermeture dépasserait maxTransitions ouvertures et fermetures dans windowSec, la fermeture est retenue : l’alarme reste ouverte et est marquée Oscillation (chronologie : Oscillation : fermetures retenues). Elle ne se ferme qu’une fois sa condition fausse depuis holdSec secondes d’heure de l’appareil.

Avec les valeurs par défaut : une alarme qui s’est ouverte et fermée deux fois en 10 minutes et s’ouvre une troisième fois est retenue ouverte à sa prochaine fermeture, jusqu’à ce que la condition soit fausse depuis 5 minutes.

Définissez vos propres valeurs en mode JSON :

"dampening": { "maxTransitions": 6, "windowSec": 1800, "holdSec": 600 }

Exemples détaillés

Une sonde de température bruitée. Des relevés toutes les 10 s oscillent de ±1 °C autour de 80.

"severities": [ { "severity": "MAJOR", "condition": { "key": "temperature", "op": ">", "value": 80 } } ],
"debounce": { "mode": "count", "raise": 3, "clear": 3 },
"hysteresis": 2

Ouvre au troisième relevé consécutif au-dessus de 80, ferme au troisième relevé consécutif à 78 ou moins.

Une porte qui peut rester ouverte brièvement.

"severities": [ { "severity": "WARNING", "condition": { "key": "door_open", "op": "==", "value": true } } ],
"debounce": { "mode": "duration", "raise": 300, "clear": 1 }

S’ouvre lorsque la porte est restée ouverte pendant 5 minutes selon l’horloge de l’appareil (l’appareil doit émettre pendant que la porte est ouverte). En mode temporel, un relevé isolé ne décide jamais : l’alarme se ferme avec le deuxième relevé « fermée », au moins 1 seconde après le premier.

Une pompe qui cycle volontairement. Une règle sur une pression qui chute à chaque cycle de pompe basculerait en permanence. Augmentez maxTransitions ou holdSec pour que le cycle attendu ne déclenche pas d’alerte, et gardez un debounce court pour qu’une vraie panne soit toujours détectée rapidement.

Choix des valeurs

Fréquence d’envoi de l’appareilDebounce suggéré
Toutes les quelques secondescount de 3 à 5, ou duration de 30 à 60
Toutes les minutescount de 2 à 3
Toutes les 10 à 60 minutescount de 1 à 2. Une règle duration prend au moins un intervalle d’envoi.
Uniquement en cas de changementcount 1 ; utilisez le délai propre à l’appareil, ou un déclencheur « reste dans cet état pendant » de la carte Règles