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
| Kural | Ayrıntı |
|---|---|
| Cihaz başına bir bellek | key 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ır | Bellek 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ırlanma | Ayarları 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 korunur | Kapatılmış veya duraklatılmış bir akış, blokların belleğini korur; silinen bir akış ise onu kaybeder. |
| Boyut | Blok 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. |
| Testler | Bir 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.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| n | reached çıkışına bir kopya gönderen sayım; boş veya 0 = hiçbir zaman | boş | 0 veya daha fazla |
| window_ms | Yalnızca bu kadar süredeki mesajları say; 0 = hepsi | 0 | 0 ila 7 gün |
| reset_at_n | n değerine ulaşılınca 0’dan yeniden başla | kapalı | açık, kapalı |
| key | Her anahtarın kendi sayımı vardır | msg.originator | bir yol |
| store | memory, veya persist (akışın kalıcı bağlamında tutulur) | memory | memory, 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.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| input | Sayı | msg.payload | bir yol |
| output | Farkın yazılacağı yer | msg.payload.delta | bir yol |
| period | Bir önceki değerden bu yana geçen milisaniyenin yazılacağı yer | yok | bir yol |
| round | Önce uygulanan ondalık basamak sayısı | yok | 0 ila 15 |
| on_negative | Düşüş (sayaç yeniden başlaması) | error | error (negative_delta), pass (işaretiyle yazılır), zero |
| skip_zero | Değişmeyen sıfır farkı, yazmadan geçir | kapalı | açık, kapalı |
| key | Her anahtarın kendi önceki değeri vardır | msg.originator | bir yol |
| seed | İlk mesajın önceki değeri | none (delta 0) | none, latest (cihazın kayıtlı son değeri) |
| seed_key | Başlangıç alınacak kayıtlı anahtar (seed = latest) | en fazla 128 karakter | |
| ts_path | Okumanın zamanının yeri | kayı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.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| property | Sayı | msg.payload | bir yol |
| window | count (son size değer) veya time (son size ms) | count | count, time |
| size | Değer sayısı veya ms cinsinden pencere | 10 | count: 1 ila 10.000; time: 1 ms ila 7 gün |
| outputs | Hangi rakamlar | count, avg, min, max | count, sum, avg, min, max, stddev, last, rate değerlerinden herhangi biri |
| emit | Her mesajda each, veya her tam pencerede bir kez (end_of_window) | each | each, end_of_window |
| key | Her anahtarın kendi penceresi vardır | msg.originator | bir 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.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| ms | Bir anahtarın sessiz kalabileceği süre | 1 dk | 100 ms ila 7 gün |
| key | Her anahtar kendi başına izlenir | msg.originator | bir yol |
| repeat | Sessiz kaldıkça her ms aralıkla timeout yeniden gönder | kapalı | açık, kapalı |
Çıkışlar:
timeout:msg.payload= anahtar, son mesajınmsg.topic‘i,msg.timeout_msve 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.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| ms | Dönemi bitiren, son mesajdan sonraki sessiz süre | 1 dk | 0 ila 7 gün |
| key | Her anahtarın kendi dönemi vardır | msg.originator | bir 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:
| Depo | Kapsam | Sınır |
|---|---|---|
flow.x | Bu akış | Akış başına 1 MiB |
global.x | Kuruluşun her akışı | Kuruluş başına 4 MiB |
flow.persist:x, global.persist:x | Aynı kapsamın kalıcı deposu | aynı 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ı.

