Yeni: Yapay zekâ güvenlik duvarı her modülü izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Alarm kuralı tarif kitabı

Profilin JSON modunda yapıştırmaya hazır on alarm kuralı – sıcaklık merdivenleri, cihaz başına limitler, pil, kapılar, sızıntılar, arızalar ve çevrimdışı durumu.

Her tarif tek bir kuraldır. Kullanmak için profilin Alarm kuralları sekmesini açın, Kural ekle > Eşik kuralı (veya Cihaz çevrimdışı kuralı) seçeneğine tıklayın, JSON sekmesine geçin, yapıştırın, anahtarları ve sayıları ayarlayın, Listeye ekle düğmesine tıklayın, ardından Kuralları kaydet düğmesine basın. Her anahtar, büyük-küçük harf dahil, cihazlarınızın gönderdiği ile birebir eşleşmelidir.

1. Sıcaklık merdiveni

Aynı anahtarda üç önem derecesi; doğru olan en yüksek seviye geçerli olur.

{
  "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. Tek kural, cihaz başına bir limit

Her cihav, sunucu veya paylaşılan özellik olarak kendi limitini maxTempThreshold adıyla taşır. Bu özelliği olmayan cihazlar kontrol edilmez.

{
  "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. Limitin altında uyarı bandı

Uyarı özelliği ile kesin limit arasındaki bir uyarı; limitin üzerini 2. tarif kapsar.

{
  "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. Düşük pil

Histerezis 3, pil güneşte toparlanırken alarmın sürekli açılıp kapanmasını önler.

{
  "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. Basınç düşükken kapı açık

Ayrı mesajlarla gelebilen iki anahtar. Kural, her birinin en son değerini kullanır.

{
  "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. Kapı çok uzun süre açık

{
  "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
}

Süre cihaz zamanına göredir: kapı açık kaldığı sürece cihazın veri göndermesi gerekir.

7. Sıfırlanana kadar devam eden sızıntı

Sensör kuruduğunda alarm temizlenmez; leak_reset beklenir.

{
  "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. Kontrolörden gelen hata kodu

Sıfır olmayan her alarm kodu, kod başlıkta yer alır.

{
  "type": "ups_fault",
  "title": "{{device.name}}: UPS alarm code {{value}}",
  "severities": [ { "severity": "MAJOR", "condition": { "key": "ups_a_alarm_code", "op": "!=", "value": 0 } } ],
  "enabled": true
}

Metin durumu için metinle birlikte == kullanın: { "key": "state", "op": "==", "value": "fault" }.

9. Titreyen sensör

Anahtarlama noktası civarında sürekli gidip gelen bir seviye şalteri. Okuma sayısına göre gecikme uygulayın, ayrıca daha sıkı bir sönümleme ekleyin.

{
  "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. 15 dakika sonra çevrimdışı, hatırlatmalarla

{
  "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
}

Alarm açık ve kimse onaylamadığı sürece hatırlatmalar her saat gönderilir.

Bildirim ekleme

Her tarif bir notify bloğu alır:

"notify": {
  "recipients": [ { "kind": "role", "role": "OWNER" }, { "kind": "email", "email": "oncall@example.com" } ],
  "minSeverity": "MAJOR",
  "repeatEverySec": 1800
}

Bakınız Alarm bildirimleri ayrıntılı.

Yalnızca tek bir konu için

Kendi konularını yayınlayan cihazlar için, bir yaprağa "topic" ekleyin: { "key": "temp", "op": ">", "value": 60, "topic": "plant/line2/oven" }. Bakınız Alarm koşulları başvuru kılavuzu.