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

Yönlendirme ve zamanlama blokları

Switch, Gate, All of, Any of, Not, Split, Join, Sort, Batch, Delay, Debounce, Deduplicate, Rate limit, Only changes, Trigger, Detach ve Link call bloklarının başvurusu.

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.

AyarAnlamıVarsayılanDeğerler
propertyKuralların sınadığı değermsg.payloadbir yol
rulesHer satır için bir satır ve bir çıkış: op, value (ve between için value2), isteğe bağlı Nameyoken fazla 16 kural
stop_firstMesajı yalnızca eşleşen ilk kurala gönderironon, 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.

AyarAnlamıVarsayılanDeğerler
initialAkış başladığında durumopenopen, closed
control_topicKontrol mesajlarının topic değeri; boşsa yokgateen fazla 64 karakter
conditionİsteğe bağlı ifade: yalnızca doğru olduğunda açıkboşbir ifade
closedKapalıyken gelen bir mesajdropdrop, queue
max_queueKuyruğa alınırken tutulan mesaj sayısı32en 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.

AyarAnlamıVarsayılanDeğerler
window_msTüm mesajlar bundan daha yeni olmalı; 0 = sınır yok10 s0 ila 24 sa
keyAnahtarın okunduğu yermsg.topicbir yol
min_inputsKaç farklı anahtar gerektiği22 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.

AyarAnlamıVarsayılanDeğerler
dedup_msBir anahtarın geçtiği süre bundan kısaysa mesajı at; 0 = hepsini geçir00 ila 24 sa
keyTekrar kontrolü için anahtarmsg.topicbir 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.

AyarAnlamıVarsayılanDeğerler
modeauto (öğe, anahtar ya da ayırıcı) veya length (parçalar)autoauto, length
delimiterMetnin kesildiği yer; \n yeni satır, \t sekme\nen fazla 16 karakter
lengthÖğe ya da karakter cinsinden parça boyutu11 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.

AyarAnlamıVarsayılanDeğerler
modeauto, Split işleminin kestiğini geri birleştirir; manual herhangi bir mesajdan oluştururautoauto, manual
buildNe oluşturulacağı (manual)arrayarray, object, string
joinerMetin parçaları arasına\nen fazla 16 karakter
keyHer mesajın nesne anahtarımsg.topicbir yol
countBu kadar mesajdan sonra gönder; 0 = sayı yok00 ila 10.000
timeout_msİlk mesajdan bu süre sonra, o ana kadar gelenleri gönder; 0 = bekle00 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.

AyarAnlamıVarsayılanDeğerler
modeSayıya ya da zamana görecountcount, interval
countBir gruptaki mesaj sayısı101 ila 10.000
overlapSon gönderilen grubun mesajları, bir sonrakiyle birlikte yeniden gönderilir00 ila count − 1
interval_msBekleyen ilk mesajdan grup çıkana kadar geçen süre1 s1 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.

AyarAnlamıVarsayılanDeğerler
msWait1 s0 ila 7 gün
ms2Rastgele beklemenin üst sınırıboş0 ila 7 gün
from_msgBeklemeyi msg.delay değerinden aloffon, off
max_pendingAynı anda bekleyen mesaj sayısı1,0001 ila 100.000
on_newqueue: her mesaj kendi süresini bekler; restart: yeni bir mesaj, aynı anahtardaki bekleyenleri düşürürqueuequeue, restart
keyrestart için anahtarmsg.originatorbir 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.

AyarAnlamıVarsayılanDeğerler
msBir patlamayı bitiren sessizlik süresi500 ms0 ila 24 sa
edgetrailing: sessizlik süresinden sonraki son mesaj; leading: ilk mesaj hementrailingtrailing, leading
keyHer anahtar kendi başına debounce edilirmsg.originatorbir yol

Deduplicate

Her süre ve anahtar için bir mesaj, kaç tane gelirse gelsin.

AyarAnlamıVarsayılanDeğerler
strategyfirst, last ya da all (her { payload, metadata } kaydını payload’unda listeleyen tek bir mesaj)firstfirst, last, all
window_ms (Period)Bir anahtarın ilk mesajıyla başlar60 s1 s ila 24 sa
keyDeğer başına bir paketmsg.originatorbir yol
timemessage (okumanın kendi zamanı, ts_path ya da kayıt zamanından) veya arrivalmessagemessage, arrival
ts_pathOkuma zamanının bulunduğu yer (time = message)kayıt zamanıbir yol
max_pendingall için anahtar başına tutulan mesaj sayısı1001 ila 1.000
msg_typeall sonucunun mesaj tipiilk mesajın tipien 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.

AyarAnlamıVarsayılanDeğerler
nSüre başına mesaj sayısı11 ila 10.000
per_msKayan süre1 s1 ms ila 24 sa
modeSınır aşıldığında: drop, latest (yalnızca en yenisini tut), queuedropdrop, latest, queue
max_queueAnahtar başına bekleyen mesaj sayısı321 ila 1.000
keyHer anahtarın kendi sınırı vardırmsg.originatorbir 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.

AyarAnlamıVarsayılanDeğerler
propertyDeğermsg.payloadbir yol
modechange, deadband (en az value kadar), deadband_pct (son değerin en az value % kadar)change
valueÖlü bant00 veya daha fazla
keyHer anahtarın kendi son değeri vardırmsg.originatorbir yol
firstBir anahtarın ilk değerinin geçmesine izin veronon, 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.

AyarAnlamıVarsayılanDeğerler
firstHemen gönderilir: mesajın kendisi, hiçbir şey ya da msg.payload için bir değerthe message
thenBekleme sonrası gönderilir: hiçbir şey, mesaj ya da bir değernothing
msWait1 s0 ila 7 gün
extendBekleme sırasında gelen yeni bir mesaj beklemeyi baştan başlatıroffon, off
keyHer anahtarın kendi beklemesi vardırmsg.originatorbir 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.

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.

AyarAnlamıVarsayılanDeğerler
targetLink in adızorunlu
timeout_msYanıt için bekleme30 s1 ms ila 1 sa
returnsHedefin adlandırılmış dönüşleri; her biri bir çıkış oluryok

Çı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.