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

Sayaçlar, istatistikler ve watchdog’lar

Hatırlayan blokların başvurusu – Counter, Delta, Statistics, Watchdog ve Start / end – ve blok belleğinin Hermetry üzerinde nasıl davrandığı.

Bazı bloklar önceki mesajları hatırlar: bir sayım, önceki değer, bir değer penceresi, son mesajın zamanı. Bu sayfa bu blokları listeler ve belleklerinin nasıl davrandığını açıklar; bu, değişiklikleri devreye alırken önemlidir.

Blok belleği nasıl çalışır

KuralAyrıntı
Cihaz başına bir bellekkey ayarlanmadığı sürece bu bloklar her mesaj kaynağı için ayrı bellek tutar: her cihazın kendi sayımı, önceki değeri veya izlemesi vardır. Farklı gruplama için key değerini msg.topic veya başka bir yola ayarlayın.
Yeniden başlatmalara dayanırBellek ve bekleyen mesajlar platform tarafından tutulur; yeniden başlatma veya başka bir işçiye taşınma bunları kaybettirmez. Beklemeler özgün bitiş zamanlarında yeniden kurulur.
Ayar değişince sıfırlanmaAyarları değişmemiş bir blok, dağıtım boyunca belleğini korur. Ayarları değişen bir blok boş bellekle başlar (tuttuğu mesajlar korunur). Silinen bir blok veya türü değişen bir blok her şeyi kaybeder.
Duraklatılmışken korunurKapatılmış veya duraklatılmış bir akış, blokların belleğini korur; silinen bir akış ise onu kaybeder.
BoyutBlok başına en fazla 10.000 anahtar tutulur; bu sayıyı aşınca en eski anahtar unutulur. Tutulan mesajlar blok başına 16 MiB sınırına dahil edilir.
TestlerBir test boş bellekle veya Canlı durum ve bağlamdan başlat seçeneğini işaretlerseniz canlı belleğin salt okunur bir kopyasıyla başlar. Bir test hiçbir zaman canlı belleği değiştirmez.

Yani: bir Statistics penceresini değiştirdiğinizde ortalamaları sıfırdan başlar; yalnızca çevresindeki bağlantıları değiştirdiğinizde devam ederler.

Sayaç

Her anahtar için mesajları sayar; tüm zamana göre veya kayan bir pencere içinde çalışır ve sayımı mesaja ekler.

AyarAnlamıVarsayılanDeğerler
nreached çıkışına bir kopya gönderen sayım; boş veya 0 = hiçbir zamanboş0 veya daha fazla
window_msYalnızca bu kadar süredeki mesajları say; 0 = hepsi00 ila 7 gün
reset_at_nn değerine ulaşılınca 0’dan yeniden başlakapalıaçık, kapalı
keyHer anahtarın kendi sayımı vardırmsg.originatorbir yol
storememory, veya persist (akışın kalıcı bağlamında tutulur)memorymemory, persist

Çıkışlar: out (her mesaj, msg.count ile), reached (sayım n veya daha fazla olduğunda bir kopya). msg.reset = true anahtarın sayımını 0 yapar. reset_at_n yoksa, n. mesajdan itibaren her mesaj ayrıca reached çıkışına gider.

Örnek: “10 dakika içinde 3 kapı açılışı”: n 3, window_ms 10 dk, reset_at_n açık, reached → Alarm ver.

Delta

Bir sayı ile aynı anahtarın önceki sayısı arasındaki fark: bir sayaçtan tüketim, son bildirimden bu yana darbeler.

AyarAnlamıVarsayılanDeğerler
inputSayımsg.payloadbir yol
outputFarkın yazılacağı yermsg.payload.deltabir yol
periodBir önceki değerden bu yana geçen milisaniyenin yazılacağı yeryokbir yol
roundÖnce uygulanan ondalık basamak sayısıyok0 ila 15
on_negativeDüşüş (sayaç yeniden başlaması)errorerror (negative_delta), pass (işaretiyle yazılır), zero
skip_zeroDeğişmeyen sıfır farkı, yazmadan geçirkapalıaçık, kapalı
keyHer anahtarın kendi önceki değeri vardırmsg.originatorbir yol
seedİlk mesajın önceki değerinone (delta 0)none, latest (cihazın kayıtlı son değeri)
seed_keyBaşlangıç alınacak kayıtlı anahtar (seed = latest)en fazla 128 karakter
ts_pathOkumanın zamanının yerikayıt zamanıbir yol

Çıkışlar: out, other (girdi yolunda değer yok), error (not_a_number, negative_delta). Bir düşüşten sonra yeni değer her modda temel değer olur. Delta mesaj başına veritabanı okumaz, bu yüzden tüketimi hesaplamanın verimli yoludur.

Statistics

Son değerler veya son süre üzerinden, anahtar başına sayım, toplam, ortalama, en küçük, en büyük, standart sapma, son değer ve oran.

AyarAnlamıVarsayılanDeğerler
propertySayımsg.payloadbir yol
windowcount (son size değer) veya time (son size ms)countcount, time
sizeDeğer sayısı veya ms cinsinden pencere10count: 1 ila 10.000; time: 1 ms ila 7 gün
outputsHangi rakamlarcount, avg, min, maxcount, sum, avg, min, max, stddev, last, rate değerlerinden herhangi biri
emitHer mesajda each, veya her tam pencerede bir kez (end_of_window)eacheach, end_of_window
keyHer anahtarın kendi penceresi vardırmsg.originatorbir yol

msg.payload, rakamla (seçilen bir çıkış) veya rakamlardan oluşan bir nesneyle değiştirilir. rate saniyedeki değer sayısıdır. Zaman penceresi en fazla 10.000 değer tutar. window değeri time yapıldıktan sonra size değerini milisaniye olarak ayarlayın: varsayılan 10, 10 ms olurdu. Hata invalid_value “sayı değil”.

Örnek: saatlik ortalama, saatte bir gönderilir: window time, size 3600000, outputs avg, emit end_of_window.

Watchdog

Mesajlar kesildiğinde haber verir: bir anahtarın mesajı süre içinde gelmezse zaman aşımı mesajı gönderir; mesajlar geri döndüğünde bunu da bildirir.

AyarAnlamıVarsayılanDeğerler
msBir anahtarın sessiz kalabileceği süre1 dk100 ms ila 7 gün
keyHer anahtar kendi başına izlenirmsg.originatorbir yol
repeatSessiz kaldıkça her ms aralıkla timeout yeniden gönderkapalıaçık, kapalı

Çıkışlar:

  • timeout: msg.payload = anahtar, son mesajın msg.topic‘i, msg.timeout_ms ve son mesajın kaynağı ile yeni bir mesaj (yeni bir çalıştırma), böylece Alarm ver bunun üzerinde çalışır.
  • ok: bir zaman aşımından sonra bir anahtarın ilk mesajı, değiştirilmeden.

Diğer mesajlar iletilmez. Bir anahtarın izlemesi ilk mesajıyla başlar; hiç göndermeyen bir cihaz fark edilmez (bunun için bir çevrimdışı alarm kuralı kullanın; bkz. Çevrimdışı alarmlar). Geciken bir mesaj (kesintiden sonra) ne izlemeyi besler ne de tetikler; böylece sessizlik alarmı eski okumalarla temizlenmez. Cihaz başına izleme için key değerinin cihaza ayarlanması gerekir: msg.originator (varsayılan) veya msg.metadata.deviceId.

Başlangıç / bitiş

Bir etkinlik döneminin başlangıcını ve sonunu işaretler.

AyarAnlamıVarsayılanDeğerler
msDönemi bitiren, son mesajdan sonraki sessiz süre1 dk0 ila 7 gün
keyHer anahtarın kendi dönemi vardırmsg.originatorbir yol

Çıkışlar: start (bir dönemin ilk mesajının kopyası, hemen), end (son mesaj, gelişinden ms sonra). Aradaki mesajlar çıkmaz.

Bellek olarak değişkenler

Birden fazla blok veya akışın paylaştığı değerler için Değişken ayarla veya Değiştir ile değişken yazın ve yollarla okuyun:

DepoKapsamSınır
flow.xBu akışAkış başına 1 MiB
global.xKuruluşun her akışıKuruluş başına 4 MiB
flow.persist:x, global.persist:xAynı kapsamın kalıcı deposuaynı sınırlar içinde

Sınırı aşan bir yazma limit ile başarısız olur ve eski değeri korur. Düzenleyicinin Activity > Data sekmesi değerleri ve depoların ne kadar dolu olduğunu gösterir. Bkz. Eylem blokları.

Zamanlayıcılar

Akışlar arasında “10 dakika içinde bir şey iptal etmezse, bunu yap” için Named timer tetikleyicisiyle Timer eylem bloğunu kullanın. Bkz. Eylem blokları ve Tetikleyici blokları.