These blocks decide where a message goes and when. Blocks that wait or hold messages keep them durably: a restart of the platform does not drop them. Unless a key is set, blocks that remember per key keep one memory per device (the message’s originator). Each block keeps at most 10,000 keys and holds at most 16 MiB of messages.
Switch
Bir mesajı tek bir özelliğin değerine göre yönlendirir. Her kuralın kendi çıkışı vardır.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| property | Kuralların sınadığı değer | msg.payload | bir yol |
| rules | Her satır için bir satır ve bir çıkış: op, value (ve between için value2), isteğe bağlı Name | yok | en fazla 16 kural |
| stop_first | Mesajı yalnızca eşleşen ilk kurala gönderir | on | on, off |
Çıkışlar: o0 … o15 (kural başına bir tane; ayarlıysa kuralın Name değeriyle etiketlenir), else (“otherwise” olarak gösterilir), error. Operatörler Compare ile aynıdır; buna ek olarak between (value ile value2 arası, iki uç dahil) ve expr (kuralın kendi ifadesi doğrudur). stop_first kapalıyken eşleşen her kural mesajı alır.
Gate
Açıkken mesajları geçirir; kapalıyken onları tutar veya atar.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| initial | Akış başladığında durum | open | open, closed |
| control_topic | Kontrol mesajlarının topic değeri; boşsa yok | gate | en fazla 64 karakter |
| condition | İsteğe bağlı ifade: yalnızca doğru olduğunda açık | boş | bir ifade |
| closed | Kapalıyken gelen bir mesaj | drop | drop, queue |
| max_queue | Kuyruğa alınırken tutulan mesaj sayısı | 32 | en fazla 1.000 |
Kontrol mesajlarında msg.topic kontrol topic’ine eşittir ve msg.payload değeri open (veya true, 1, on), close (veya false, 0, off), toggle ya da status olur; bunlar iletilmez. Çıkışlar: out, dropped (kapalıyken ya da dolu bir kuyruktan itilerek atılan), error. Çalışma saatleri için örnek koşul: number(fmt_time(now(), "%H")) >= 8 && number(fmt_time(now(), "%H")) < 18.
All of
Farklı anahtarlara sahip (varsayılan olarak farklı topic’lere sahip) mesajların bir zaman penceresi içinde hepsi gelene kadar bekler, sonra hepsinin payload’unu içeren tek bir mesaj gönderir.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| window_ms | Tüm mesajlar bundan daha yeni olmalı; 0 = sınır yok | 10 s | 0 ila 24 sa |
| key | Anahtarın okunduğu yer | msg.topic | bir yol |
| min_inputs | Kaç farklı anahtar gerektiği | 2 | 2 ila 16 |
out çıkışı: tamamlayan mesaj, msg.payload = { key: payload, … } ile. Yalnızca tamamlayan mesaj gönderilir. Topladığı veriler varsayılan olarak cihaz bazında tutulur (group_by: originator veya flow).
Any of
Her mesajı geçirir; isteğe bağlı olarak bir anahtarın tekrarlarını atar.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| dedup_ms | Bir anahtarın geçtiği süre bundan kısaysa mesajı at; 0 = hepsini geçir | 0 | 0 ila 24 sa |
| key | Tekrar kontrolü için anahtar | msg.topic | bir yol |
Not
msg.payload değerini mantıksal tersiyle, true ya da false ile değiştirir. false, null, 0, "" ve sayı-olmayan (NaN) değerler true olur; diğer her şey ("0", "false", [], {} dahil) false olur. Ayarı yoktur.
Split
msg.payload değerinin her parçası için bir mesaj: dizi öğesi, nesne anahtarı, metin satırı ya da sabit boyutlu parça başına.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| mode | auto (öğe, anahtar ya da ayırıcı) veya length (parçalar) | auto | auto, length |
| delimiter | Metnin kesildiği yer; \n yeni satır, \t sekme | \n | en fazla 16 karakter |
| length | Öğe ya da karakter cinsinden parça boyutu | 1 | 1 ila 65.536 |
Her parça, Join için msg.parts (id, index, count, type, key …) taşır. 10.000 parçanın üzerinde queue_full hatası.
Join
Mesajları tek bir mesajda toplar.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| mode | auto, Split işleminin kestiğini geri birleştirir; manual herhangi bir mesajdan oluşturur | auto | auto, manual |
| build | Ne oluşturulacağı (manual) | array | array, object, string |
| joiner | Metin parçaları arasına | \n | en fazla 16 karakter |
| key | Her mesajın nesne anahtarı | msg.topic | bir yol |
| count | Bu kadar mesajdan sonra gönder; 0 = sayı yok | 0 | 0 ila 10.000 |
| timeout_ms | İlk mesajdan bu süre sonra, o ana kadar gelenleri gönder; 0 = bekle | 0 | 0 ila 24 sa |
msg.complete (herhangi bir değer) elle oluşturulan grubu hemen gönderir. Elle modda count, timeout_ms ya da msg.complete ayarlayın; aksi halde grup yalnızca 10.000 mesaj sınırında çıkar.
Sort
Bir listeyi (array modu: özellik, isteğe bağlı alan) ya da Split veya Batch ile oluşturulan grubun mesajlarını (messages modu: key, timeout_ms) sıralar. Ayarlar: sıra asc/desc, sayısal açık/kapalı (sayısal değilse "10", "9"‘dan önce gelir). 10.000 öğenin üzerinde queue_full hatası.
Batch
Mesajları gruplar halinde iletir.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| mode | Sayıya ya da zamana göre | count | count, interval |
| count | Bir gruptaki mesaj sayısı | 10 | 1 ila 10.000 |
| overlap | Son gönderilen grubun mesajları, bir sonrakiyle birlikte yeniden gönderilir | 0 | 0 ila count − 1 |
| interval_ms | Bekleyen ilk mesajdan grup çıkana kadar geçen süre | 1 s | 1 ms ila 24 sa |
Grubun her mesajı msg.parts alır; auto modundaki bir Join bunlardan tek bir liste oluşturur.
Delay
Her mesajı bekletir, sonra değiştirmeden iletir.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| ms | Wait | 1 s | 0 ila 7 gün |
| ms2 | Rastgele beklemenin üst sınırı | boş | 0 ila 7 gün |
| from_msg | Beklemeyi msg.delay değerinden al | off | on, off |
| max_pending | Aynı anda bekleyen mesaj sayısı | 1,000 | 1 ila 100.000 |
| on_new | queue: her mesaj kendi süresini bekler; restart: yeni bir mesaj, aynı anahtardaki bekleyenleri düşürür | queue | queue, restart |
| key | restart için anahtar | msg.originator | bir yol |
msg.reset = true bekleyen tüm mesajları düşürür. max_pending değerine ulaşıldığında queue_full hatası oluşur.
Debounce
Her patlama için bir mesaj.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| ms | Bir patlamayı bitiren sessizlik süresi | 500 ms | 0 ila 24 sa |
| edge | trailing: sessizlik süresinden sonraki son mesaj; leading: ilk mesaj hemen | trailing | trailing, leading |
| key | Her anahtar kendi başına debounce edilir | msg.originator | bir yol |
Deduplicate
Her süre ve anahtar için bir mesaj, kaç tane gelirse gelsin.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| strategy | first, last ya da all (her { payload, metadata } kaydını payload’unda listeleyen tek bir mesaj) | first | first, last, all |
| window_ms (Period) | Bir anahtarın ilk mesajıyla başlar | 60 s | 1 s ila 24 sa |
| key | Değer başına bir paket | msg.originator | bir yol |
| time | message (okumanın kendi zamanı, ts_path ya da kayıt zamanından) veya arrival | message | message, arrival |
| ts_path | Okuma zamanının bulunduğu yer (time = message) | kayıt zamanı | bir yol |
| max_pending | all için anahtar başına tutulan mesaj sayısı | 100 | 1 ila 1.000 |
| msg_type | all sonucunun mesaj tipi | ilk mesajın tipi | en fazla 64 karakter |
Sonuç, count, start ve end içeren msg.metadata.dedup taşır. Time message ile, biriken birikmiş veri her cihaz zamanı süresi için bir sonuç üretir.
Rate limit
Her süre ve anahtar için en fazla n mesaj.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| n | Süre başına mesaj sayısı | 1 | 1 ila 10.000 |
| per_ms | Kayan süre | 1 s | 1 ms ila 24 sa |
| mode | Sınır aşıldığında: drop, latest (yalnızca en yenisini tut), queue | drop | drop, latest, queue |
| max_queue | Anahtar başına bekleyen mesaj sayısı | 32 | 1 ila 1.000 |
| key | Her anahtarın kendi sınırı vardır | msg.originator | bir yol |
Çıkışlar: out, dropped. SMS, e-posta ya da dış arama çağrısının önüne koyun.
Only changes
Bir mesajı, değeri son geçen mesajdan bu yana değiştiyse geçirir.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| property | Değer | msg.payload | bir yol |
| mode | change, deadband (en az value kadar), deadband_pct (son değerin en az value % kadar) | change | |
| value | Ölü bant | 0 | 0 veya daha fazla |
| key | Her anahtarın kendi son değeri vardır | msg.originator | bir yol |
| first | Bir anahtarın ilk değerinin geçmesine izin ver | on | on, off |
Yeni değer, geçen son değerle karşılaştırılır; böylece yavaş sapma birikince bildirilir.
Trigger
İlk mesajı gönderir, bekler, sonra ikinciyi gönderir.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| first | Hemen gönderilir: mesajın kendisi, hiçbir şey ya da msg.payload için bir değer | the message | |
| then | Bekleme sonrası gönderilir: hiçbir şey, mesaj ya da bir değer | nothing | |
| ms | Wait | 1 s | 0 ila 7 gün |
| extend | Bekleme sırasında gelen yeni bir mesaj beklemeyi baştan başlatır | off | on, off |
| key | Her anahtarın kendi beklemesi vardır | msg.originator | bir yol |
msg.reset = true o anahtarın beklemesini iptal eder.
Detach
Dalın geri kalanı ayrı çalışır; böylece cihazın bir sonraki mesajı onu beklemez. Yavaş bir dalın önüne koyun. Sonrasında mesaj sırası garanti edilmez. Ayarı yoktur.
Link call
Mesajı bir Link in öğesine (ya da flow:<slug> ile başka bir akışın Flow input öğesine) gönderir ve return modundaki bir Link out öğesinden yanıt bekler.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| target | Link in adı | zorunlu | |
| timeout_ms | Yanıt için bekleme | 30 s | 1 ms ila 1 sa |
| returns | Hedefin adlandırılmış dönüşleri; her biri bir çıkış olur | yok |
Çıkışlar: out (yanıt), adlandırılmış dönüş başına bir tane, timeout (zamanında yanıt yok; özgün mesaj), error (invalid_value böyle bir link yok, queue_full, unknown_return, loop). Çağrılar en fazla 16 derinliğe kadar iç içe geçebilir; kendi çağrı yığınına giren bir çağrı loop ile başarısız olur.

