Les règles d’alarme se définissent sur un profil d’appareil et s’appliquent à chaque appareil de ce profil. Une règle ouvre une alarme lorsque sa condition est vérifiée et la ferme lorsque la condition n’est plus vraie. Les règles s’exécutent à l’étape d’alarme du flux racine, pour chaque message des appareils du profil.
Ouvrir les règles
- Ouvrez Device Profiles et ouvrez un profil.
- Ouvrez l’onglet Alarm rules.
Vous voyez les règles du profil avec leur type, leur genre (Threshold ou Device offline), leur condition en bref et un interrupteur Enabled. Toute personne disposant de View alarms and alarm rules peut les voir ; pour les modifier, il faut Edit the alarm rules of device profiles (Admin par défaut). Sans ce droit, l’onglet affiche « You can view the rules but not change them. »
Ajouter ou modifier une règle
- Cliquez sur Add rule et choisissez Threshold rule ou Device offline rule, ou cliquez sur Edit sur une règle.
- Remplissez le tiroir (voir ci-dessous). Passez de Form à JSON en haut.
- Cliquez sur Add to list (nouvelle règle) ou Update the list.
- Répétez pour les autres règles. L’onglet affiche « n rules changed and not saved yet: nothing applies until you save. »
- Cliquez sur Save rules. Discard supprime les modifications non enregistrées.
L’enregistrement remplace l’ensemble des règles du profil. Une règle dont la définition ou l’interrupteur a changé reçoit une nouvelle version ; une règle inchangée conserve sa version et son état. Les nouvelles règles atteignent tous les workers en environ deux secondes. Si quelqu’un d’autre a enregistré le même profil au même moment, vous obtenez « The alarm rules changed at the same time; try again. »
Règle de seuil : le formulaire
| Champ | Ce que vous définissez |
|---|---|
| Type | Le nom de l’alarme. Lettres, chiffres et _ . : -, 128 caractères maximum, unique dans le profil. Une seule alarme ouverte par appareil et par type. Une nouvelle règle commence par high_value. |
| Alarm title | Ce que voit l’utilisateur, 300 caractères maximum. Espaces réservés : {{device.name}}, {{value}}, {{key}}, {{threshold}}, {{severity}}, {{type}}. Une nouvelle règle commence par {{device.name}}: {{value}}. |
| Enabled | Activé ou désactivé. |
| Severity | Une ligne par gravité : la gravité, puis Key, Operator et Value. Add a severity ajoute une ligne (cinq maximum, chaque gravité une seule fois). La ligne vraie la plus haute l’emporte. |
| Key | Une clé de télémétrie. La zone propose les clés déclarées du profil et accepte un texte libre. |
| Operator | >, >=, <, <=, ==, !=. |
| Value | Un nombre, true ou false, un texte, ou attribute:<name> pour une limite propre à chaque appareil. |
| Only from topic | Sous Advanced : ne comparer que les messages de ce topic MQTT. Vide = tout topic. |
| How long the condition must hold | Count in Readings in a row ou Seconds (device time), puis les seuils de déclenchement et de fermeture (1 à 86 400). |
| Hysteresis (clear margin) | Une marge absolue du côté de la fermeture. |
| Runbook | Texte affiché avec l’alarme : quoi vérifier et que faire (10 000 caractères maximum). |
Détails sur les conditions, le debounce et l’hystérésis : Alarm conditions reference et Debounce, hysteresis and dampening.
Règle de hors ligne : le formulaire
| Champ | Ce que vous définissez |
|---|---|
| Alarm title | Par défaut {{device.name}} is offline. |
| Open after (seconds offline) | 10 à 604 800 (7 jours). Par défaut 600. |
| Severity | Par défaut Warning. |
| Runbook, Enabled | Comme ci-dessus. |
Son type est toujours device_offline, donc un profil en a au plus une. Voir Offline alarms.
Ce que seul le mode JSON affiche
Le formulaire couvre la forme courante. Ces éléments n’existent qu’en mode JSON :
| Élément | Champ JSON | Page |
|---|---|---|
| Conditions combinées (plusieurs comparaisons avec all/any) | severities[].condition avec all / any | Alarm conditions reference |
| Une condition de fermeture explicite | clear | Clear conditions and late readings |
| Réglages d’amortissement | dampening | Debounce, hysteresis and dampening |
| Notifications : destinataires, canaux, gravité minimale, rappels | notify | Alarm notifications in depth |
| Rejeu des mesures arrivées dans le désordre | evaluateBackfill | Clear conditions and late readings |
Le formulaire conserve ces éléments lorsque vous modifiez d’autres champs. Une règle à conditions combinées s’ouvre en mode JSON avec la note « This rule uses combined conditions or other settings the form does not show: edit it as JSON. » Le mode JSON est strict : un champ que Hermetry ne connaît pas est refusé, si bien qu’une règle enregistrée ne contient jamais de réglage ignoré.
Une règle complète
{
"type": "high_temperature",
"title": "{{device.name}}: {{value}} °C",
"severities": [
{ "severity": "CRITICAL", "condition": { "key": "temperature", "op": ">", "value": 90 } },
{ "severity": "MAJOR", "condition": { "key": "temperature", "op": ">", "value": { "attribute": "max_temp" } } }
],
"debounce": { "mode": "duration", "raise": 60, "clear": 120 },
"hysteresis": 2,
"notify": {
"recipients": [ { "kind": "role", "role": "ADMIN" }, { "kind": "email", "email": "oncall@example.com" } ],
"minSeverity": "MAJOR",
"repeatEverySec": 1800
},
"runbook": "Check the cooling fan and the door seal. Clear with a note when fixed.",
"enabled": true
}
Clés vérifiées par les règles
À l’enregistrement, chaque clé de condition doit être une clé de télémétrie : sans espace et pas un nombre seul (« A key names a telemetry key: no spaces and not a number. »). Une clé qui ressemble à un nombre, comme un numéro de registre 40001, est acceptée si le profil la déclare. Une clé non déclarée par le profil n’est qu’un avertissement : « Not a telemetry key of this profile: … The rule fires only on devices that send these keys; save is still possible. »
Suppression, désactivation et renommage
- Remove demande « Remove type? » et avertit : « When you save, its open alarms are resolved. » Elles sont fermées à l’enregistrement.
- Désactiver une règle arrête son évaluation. Une alarme déjà ouverte par elle reste ouverte jusqu’à ce que vous la fermiez manuellement ou que vous réactiviez la règle.
- Si vous renommez une clé de télémétrie dans le profil, celui-ci liste les règles d’alarme qui lisent l’ancienne clé et peut les réécrire vers la nouvelle en une seule étape. Chaque règle réécrite reçoit une nouvelle version.
- Un profil dont des règles d’alarme existent ne peut pas être supprimé tant que ces règles ne sont pas retirées ; la suppression les liste.
Limites
| Limite | Valeur |
|---|---|
| Règles par profil | 50 |
| Gravités par règle | 5 (chacune une fois) |
| Comparaisons par condition | 16 |
| Imbrication des groupes all/any | 4 niveaux |
| Type | 128 caractères, A-Z a-z 0-9 _ . : - |
| Titre | 300 caractères |
| Runbook | 10 000 caractères |
| Clé | 128 caractères |
| Valeur texte | 256 caractères |
| Debounce déclenchement et fermeture | 1 à 86 400 |
| Destinataires | 20 |
| Délai hors ligne | 10 s à 7 jours |
Au-delà des seuils
Les règles d’alarme comparent une valeur à un nombre fixe ou à un attribut d’appareil. Elles ne peuvent pas calculer (pas de « setpoint + 10 »), suivre un planning ni comparer deux appareils. Pour cela, utilisez une Rules-card rule ou un flow, qui peuvent tous deux déclencher et fermer des alarmes avec le même cycle de vie. Exemples prêts à l’emploi : Alarm rule cookbook.

