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 formulaire | Plage | Par défaut |
|---|---|---|---|
debounce.mode | Comptage en : Relevés consécutifs (count) ou Secondes (heure de l’appareil) (duration) | count | |
debounce.raise | Déclencher après ce nombre de relevés consécutifs / Déclencher lorsque vrai pendant (secondes) | 1 à 86 400 | 1 |
debounce.clear | Effacer après ce nombre de relevés consécutifs / Effacer lorsque faux pendant (secondes) | 1 à 86 400 | 1 |
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 (>, >=, <, <=) :
| Condition | Hystérésis | Ouvre | Ferme |
|---|---|---|---|
temperature > 80 | 3 | au-dessus de 80 | à 77 ou moins |
battery < 20 | 5 | en dessous de 20 | à 25 ou plus |
pressure >= 6 | 0.2 | à 6 ou plus | en 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 :
| Champ | Signification | Plage | Par défaut |
|---|---|---|---|
maxTransitions | Ouvertures et fermetures autorisées dans la fenêtre | 2 à 100 | 4 |
windowSec | La fenêtre | 10 à 86 400 s | 600 |
holdSec | Durée pendant laquelle la condition doit rester fausse avant qu’une alarme retenue ne se ferme | 1 à 86 400 s | 300 |
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’appareil | Debounce suggéré |
|---|---|
| Toutes les quelques secondes | count de 3 à 5, ou duration de 30 à 60 |
| Toutes les minutes | count de 2 à 3 |
| Toutes les 10 à 60 minutes | count de 1 à 2. Une règle duration prend au moins un intervalle d’envoi. |
| Uniquement en cas de changement | count 1 ; utilisez le délai propre à l’appareil, ou un déclencheur « reste dans cet état pendant » de la carte Règles |

