Jedes Rezept ist eine Regel. So verwenden Sie es: Öffnen Sie den Reiter Alarmregeln des Profils, klicken Sie auf Regel hinzufügen > Schwellenwertregel (oder Regel für Gerät offline), wechseln Sie zu JSON, fügen Sie ein, passen Sie Schlüssel und Zahlen an, klicken Sie auf Zur Liste hinzufügen und dann auf Regeln speichern. Jeder Schlüssel muss mit dem übereinstimmen, was Ihre Geräte senden, einschließlich der Groß- und Kleinschreibung.
1. Temperaturstufen
Drei Schweregrade für einen Schlüssel; der höchste zutreffende gewinnt.
{
"type": "high_temperature",
"title": "{{device.name}}: {{value}} °C ({{severity}})",
"severities": [
{ "severity": "CRITICAL", "condition": { "key": "temperature", "op": ">", "value": 90 } },
{ "severity": "MAJOR", "condition": { "key": "temperature", "op": ">", "value": 80 } },
{ "severity": "WARNING", "condition": { "key": "temperature", "op": ">", "value": 70 } }
],
"debounce": { "mode": "count", "raise": 2, "clear": 2 },
"hysteresis": 2,
"runbook": "Check cooling and airflow. Above 90 °C shut the unit down.",
"enabled": true
}
2. Eine Regel, ein Grenzwert pro Gerät
Jedes Gerät trägt seinen eigenen Grenzwert als Server- oder Shared-Attribut maxTempThreshold. Geräte ohne dieses Attribut werden nicht geprüft.
{
"type": "temp_over_limit",
"title": "{{device.name}}: {{value}} °C, limit {{threshold}}",
"severities": [
{ "severity": "MAJOR", "condition": { "key": "air_temp", "op": ">", "value": { "attribute": "maxTempThreshold" } } }
],
"debounce": { "mode": "count", "raise": 2, "clear": 2 },
"enabled": true
}
3. Warnbereich unterhalb des Grenzwerts
Eine Warnung zwischen einem Warnattribut und dem harten Grenzwert; Rezept 2 deckt Werte oberhalb des Grenzwerts ab.
{
"type": "temp_warning_band",
"title": "{{device.name}}: {{value}} °C, getting warm",
"severities": [
{ "severity": "WARNING", "condition": { "all": [
{ "key": "air_temp", "op": ">", "value": { "attribute": "warnTempThreshold" } },
{ "key": "air_temp", "op": "<=", "value": { "attribute": "maxTempThreshold" } }
] } }
],
"enabled": true
}
4. Niedriger Batteriestand
Hysterese 3 verhindert, dass der Alarm flackert, wenn sich die Batterie in der Sonne erholt.
{
"type": "battery_low",
"title": "{{device.name}}: battery {{value}} %",
"severities": [
{ "severity": "MINOR", "condition": { "key": "battery", "op": "<", "value": 10 } },
{ "severity": "WARNING", "condition": { "key": "battery", "op": "<", "value": 20 } }
],
"hysteresis": 3,
"enabled": true
}
5. Tür offen bei niedrigem Druck
Zwei Schlüssel, die in getrennten Nachrichten eintreffen können. Die Regel verwendet den jeweils neuesten Wert.
{
"type": "door_open_low_pressure",
"title": "{{device.name}}: door open with low pressure",
"severities": [
{ "severity": "MAJOR", "condition": { "all": [
{ "key": "door_open", "op": "==", "value": true },
{ "key": "pressure", "op": "<", "value": 1.2 }
] } }
],
"debounce": { "mode": "duration", "raise": 60, "clear": 30 },
"enabled": true
}
6. Tür zu lange offen
{
"type": "door_open_long",
"title": "{{device.name}}: door open for over 5 minutes",
"severities": [ { "severity": "WARNING", "condition": { "key": "door_open", "op": "==", "value": true } } ],
"debounce": { "mode": "duration", "raise": 300, "clear": 1 },
"enabled": true
}
Die Zeit ist Gerätezeit: Das Gerät muss melden, während die Tür offen bleibt.
7. Leckage, die bis zum Zurücksetzen bestehen bleibt
Der Alarm wird nicht gelöscht, wenn der Sensor trocknet; er wartet auf leak_reset.
{
"type": "water_leak",
"title": "{{device.name}}: water leak",
"severities": [ { "severity": "CRITICAL", "condition": { "key": "water_leak", "op": "==", "value": true } } ],
"clear": { "key": "leak_reset", "op": "==", "value": true },
"runbook": "Close the main valve and find the leak. The alarm clears when the device reports leak_reset = true, or clear it by hand.",
"enabled": true
}
8. Fehlercode von einer Steuerung
Jeder Alarmcode ungleich null, wobei der Code im Titel steht.
{
"type": "ups_fault",
"title": "{{device.name}}: UPS alarm code {{value}}",
"severities": [ { "severity": "MAJOR", "condition": { "key": "ups_a_alarm_code", "op": "!=", "value": 0 } } ],
"enabled": true
}
Verwenden Sie für einen Textstatus == mit dem Text: { "key": "state", "op": "==", "value": "fault" }.
9. Ein flackernder Sensor
Ein Füllstandsschalter, der nahe seines Schaltpunkts prellt. Entprellung über Messwerte, zusätzlich eine strengere Dämpfung.
{
"type": "tank_high_level",
"title": "{{device.name}}: tank level high",
"severities": [ { "severity": "MAJOR", "condition": { "key": "level_high", "op": "==", "value": true } } ],
"debounce": { "mode": "count", "raise": 3, "clear": 5 },
"dampening": { "maxTransitions": 4, "windowSec": 1800, "holdSec": 900 },
"enabled": true
}
10. Offline nach 15 Minuten, mit Erinnerungen
{
"type": "device_offline",
"title": "{{device.name}} is offline",
"inactivity": { "afterSec": 900, "severity": "MAJOR" },
"notify": {
"recipients": [ { "kind": "role", "role": "ADMIN" }, { "kind": "email", "email": "noc@example.com" } ],
"repeatEverySec": 3600
},
"enabled": true
}
Erinnerungen werden stündlich versendet, solange der Alarm offen ist und niemand ihn bestätigt hat.
Benachrichtigungen hinzufügen
Jedes Rezept nimmt einen notify-Block auf:
"notify": {
"recipients": [ { "kind": "role", "role": "OWNER" }, { "kind": "email", "email": "oncall@example.com" } ],
"minSeverity": "MAJOR",
"repeatEverySec": 1800
}
Siehe Alarmbenachrichtigungen im Detail.
Nur für ein Topic
Für Geräte, die eigene Topics veröffentlichen, fügen Sie "topic" zu einem Blattknoten hinzu: { "key": "temp", "op": ">", "value": 60, "topic": "plant/line2/oven" }. Siehe Referenz der Alarmbedingungen.

