Alarm kuralları gürültüye karşı üç ayarla gelir; yanlış alarm veren bir izleme sistemi hiç olmamasından kötüdür. Debounce, bir koşulun alarmın açılmadan veya kapanmadan önce kendini kanıtlamasını sağlar. Hysteresis, kapanma tarafına bir pay koyar. Dampening, sürekli durum değiştiren bir alarmı tutar.
Debounce
| Alan (JSON) | Form etiketi | Aralık | Varsayılan |
|---|---|---|---|
debounce.mode | Sayım birimi: Art arda okuma sayısı (count) veya Saniye (cihaz zamanı) (duration) | count | |
debounce.raise | Bu kadar art arda okumadan sonra aç / Doğru olma süresi (saniye) sonrasında aç | 1 ile 86.400 arası | 1 |
debounce.clear | Bu kadar art arda okumadan sonra kapat / Yanlış olma süresi (saniye) sonrasında kapat | 1 ile 86.400 arası | 1 |
Okuma sayısına göre
Alarm, koşulu doğru olan art arda raise-inci okumada açılır; koşulu yanlış olan art arda clear-inci okumada kapanır. Ters yönde tek bir okuma sayacı sıfırlar. Varsayılan 1 ve 1 ile alarm her okumayı izler.
Yalnızca kuralın anahtarlarından birini taşıyan okumalar sayılır. Başka anahtarlar içeren bir mesaj bu kural için okuma değildir.
Cihaz zamanına göre
Koşul kesintisiz raise saniye boyunca doğru kaldığında alarm açılır; süre, sunucunun saatine göre değil, okumaların zaman damgalarına göre ölçülür. Kapanma da aynı şekilde simetrik çalışır.
Önemli
Zaman yalnızca bir okuma geldiğinde ilerler. Bir cihaz her 10 dakikada bir rapor veriyorsa, “60 saniye doğru” koşulu ikinci doğru okumada, yani 10 dakika sonra sağlanır. Cihaz göndermeyi bırakırsa, yeniden gönderene kadar hiçbir karar verilmez. Cihazların durumunu periyodik olarak tekrarlamasını sağlayın ya da sessizlik için bir çevrimdışı alarm kullanın.
Örnek: “kapı 120 sn açık” koşulu, Saniye (cihaz zamanı) ile door_open == true ve raise 120 olarak yazılır.
Önem derecesi değişiklikleri
Açık bir alarm içinde önem derecesindeki değişiklik aynı debounce’u bekler: yükseliş raise sayısını veya süresini, düşüş clear sayısını veya süresini bekler.
Hysteresis
hysteresis (form: Hysteresis (kapanma payı)) mutlak bir sayıdır, 0 veya daha büyük. Sıralama karşılaştırmalarının (>, >=, <, <=) kapanma tarafındaki eşiğini genişletir:
| Koşul | Hysteresis | Açılır | Kapanır |
|---|---|---|---|
temperature > 80 | 3 | 80 üzeri | 77 ve altında |
battery < 20 | 5 | 20 altı | 25 ve üzerinde |
pressure >= 6 | 0.2 | 6 ve üzerinde | 5,8 altında |
Hysteresis, == ve != için uygulanmaz; kuralın açık bir clear koşulu varsa yok sayılır (bu koşul belirleyicidir). Böylece eşik civarında gezinen bir değer, her okumada alarmı açıp kapatmaz.
Dampening
Dampening her eşik kuralına uygulanır. dampening bloğu yoksa varsayılanlar kullanılır:
| Alan | Anlamı | Aralık | Varsayılan |
|---|---|---|---|
maxTransitions | Pencere içinde izin verilen açılma ve kapanma sayısı | 2 ile 100 arası | 4 |
windowSec | Pencere | 10 ile 86.400 s arası | 600 |
holdSec | Tutulan bir alarmın kapanmadan önce koşulun kesintisiz temiz kalması gereken süre | 1 ile 86.400 s arası | 300 |
Bir kapanma, windowSec içinde maxTransitions değerinden fazla açılma ve kapanmaya yol açacaksa, kapanma tutulur: alarm açık kalır ve Flapping olarak işaretlenir (zaman çizelgesinde: Flapping: clears held back). Yalnızca koşul, cihaz zamanına göre holdSec saniye boyunca temiz kaldıktan sonra kapanır.
Varsayılanlarla: 10 dakikada iki kez açılıp kapanan ve üçüncü kez açılan bir alarm, bir sonraki kapanışında koşul 5 dakika boyunca temiz kalana kadar açık tutulur.
Kendi değerlerinizi JSON modunda ayarlayın:
"dampening": { "maxTransitions": 6, "windowSec": 1800, "holdSec": 600 }
Çalışılmış örnekler
Gürültülü bir sıcaklık sensörü. Her 10 sn’de bir gelen okumalar 80 civarında ±1 °C sıçrar.
"severities": [ { "severity": "MAJOR", "condition": { "key": "temperature", "op": ">", "value": 80 } } ],
"debounce": { "mode": "count", "raise": 3, "clear": 3 },
"hysteresis": 2
80 üzerinde art arda üçüncü okumada açılır; 78 ve altında art arda üçüncü okumada kapanır.
Kısa süreliğine açık kalabilen bir kapı.
"severities": [ { "severity": "WARNING", "condition": { "key": "door_open", "op": "==", "value": true } } ],
"debounce": { "mode": "duration", "raise": 300, "clear": 1 }
Cihazın saatine göre kapı 5 dakikadır açık olduğunda açılır (cihaz kapı açıkken rapor vermelidir). Zaman modunda tek bir okuma asla karar vermez: alarm, ilk kapalı okumadan en az 1 saniye sonra gelen ikinci kapalı okumayla kapanır.
Bilerek çevrim yapan bir pompa. Her pompa çevriminde düşen bir basınç üzerindeki kural sürekli durum değiştirir. Beklenen çevrimin sayfa oluşturmaması için maxTransitions veya holdSec değerini yükseltin; gerçek bir arızanın hâlâ hızla görülmesi için debounce’u kısa tutun.
Değerleri seçme
| Cihaz raporu | Önerilen debounce |
|---|---|
| Her birkaç saniyede bir | count 3 ile 5, veya duration 30 ile 60 |
| Her dakika | count 2 ile 3 |
| Her 10 ila 60 dakikada bir | count 1 ile 2. Bir duration kuralı en az bir raporlama aralığı alır. |
| Yalnızca değişiklikte | count 1; cihazın kendi gecikmesini kullanın veya Kurallar kartındaki “şu süre boyunca böyle kalırsa” tetikleyicisini kullanın |

