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

Eylem blokları

HTTP request, HTTP response, MQTT out, Webhook, Olay yayımla, Değişken ata, Zamanlayıcı, akış değiştirme, Akışı çalıştır, Link out, günlük ve Debug referansı.

Eylem blokları bir şey yapar: başka bir sistemi çağırmak, bir mesaj yayımlamak, bir değişken saklamak, bir zamanlayıcı başlatmak, mesajı başka bir akışa devretmek ya da bir günlük satırı yazmak. Cihaz, alarm ve bildirim eylemleri kendi sayfalarında yer alır: IoT veri blokları ve Alarm, komut ve bildirim blokları.

Giden blokların ortak davranışı

HTTP request, MQTT out ve Webhook şu kuralları paylaşır:

KonuDavranış
RiskExternal: içeren bir dağıtım onay ister
Yeniden denemeYalnızca geçici hatalar yeniden denenir; varsayılan 3 deneme (retry_* ayarları), en fazla 5, 1 s’den başlayarak üstel geri çekilme ile
IdempotencyBir mesajın her denemesi aynı anahtarı taşır (X-Idempotency-Key veya MQTT 5 kullanıcı özelliği idempotency-key), bir çökmeden veya yeniden oynatmadan sonra da, böylece alıcı yinelenenleri ayıklayabilir
TeslimatEn az bir kez
Devre kesiciÇağrıları sürekli başarısız olan bir blok, bir süre çağrılarını duraklatır (circuit_open)
Geç mesajlarlate: skip (varsayılan; mesaj durur ve Too old olarak sayılır) ya da send (kesintiden sonra birikmiş veriyi de alması gereken bir veri akışı)
TestlerBir test çalıştırması hiçbir şey göndermez, gönderecek olduğunu bildirir
SıraHTTP request ve MQTT out çağrıları, onları yapan çalıştırmadan ayrı çalışır: cihazın bir sonraki mesajı yanıtı beklemez ve çağrıdan sonraki mesajların sırası garanti edilmez
AdreslerÖzel ve iç adresler reddedilir (ssrf_blocked)

HTTP request

Bir HTTP uç noktasını çağırır ve yanıtı mesaja koyar. Şema, ana makine, kimlik doğrulama ve TLS yalnızca endpoint bağlantısından gelir, asla mesajdan gelmez. Bkz. Bağlantılar ve sırlar.

AyarAnlamıVarsayılanDeğerler
endpointHTTP uç nokta bağlantısıgerekli
hostUç noktanın izin verdiği başka bir ana makineboşbir şablon; uç noktanın izinli ana makineleriyle eşleşmelidir
methodHTTP yöntemiGETGET, POST, PUT, PATCH, DELETE, HEAD
pathUç noktanın temel yoluna eklenirboşbir şablon, 1.024 karakter
querySorgu parametreleriyoken fazla 16 satır
headersEk üstbilgileryoken fazla 16 satır; Host, Authorization, Cookie, Proxy-*, Content-Length, X-Idempotency-Key ve hop-by-hop üstbilgileri reddedilir
bodyNe gönderilirpayloadpayload, template, none (GET, HEAD, DELETE için gizli)
templateGövde şablonuboşen fazla 4.096 karakter
template_format{{ }} değerlerinin nasıl yazılacağıtexttext, json (her değer bir JSON değeri olarak; gövde JSON olmalıdır)
timeout_msDeneme başına süre10,0001.000 ila 30.000
parseYanıtın nasıl okunacağıautoauto, json, text
max_bytesEn büyük yanıt64 KiB1 ila 256 KiB
response_headersmsg.metadata.headers içinde tutulan yanıt üstbilgileriallall, list, none (en fazla 32 üstbilgi, 8 KiB)
max_parallelBu blok için uçuştaki çağrılar0 (sınır yok)0 ila 64
inlineÇağrıyı çalıştırma içinde tutar, böylece cihazın bir sonraki mesajı yanıtı bekler (dağıtım uyarır)offon, off
retry_*Denemeler ve geri çekilme3, 1 s’den
lateYukarıya bakınskipskip, send

Çıkışlar:

  • out: durum 400’ün altında. msg.payload gövdedir, msg.statusCode, msg.contentType, msg.metadata.headers. Yönlendirmeler izlenmez.
  • error: http_status (400 ve üzeri, gövde msg.payload içinde), timeout, connect, tls, ssrf_blocked, too_large, invalid_json, invalid_value, oauth_failed, function_error, circuit_open, limit. msg.error.attempts kaç deneme yapıldığını gösterir.

Yeniden denenenler: zaman aşımları, bağlantı hataları ve HTTP 408, 425, 429 (Retry-After dikkate alınarak), 500, 502, 503, 504.

Değerlerden oluşturulan bir JSON gövdesi için template_format: json kullanın ve yer tutucuları tırnaksız bırakın: {"name": {{ msg.payload.name }}, "n": {{ msg.payload.n }}}.

HTTP response

Eşzamanlı bir Webhook tetikleyicisinin çağıranına yanıt verir (reply: response). Bir çalıştırmanın ilk yanıtı geçerli olur.

AyarAnlamıVarsayılanDeğerler
statusHTTP durumu (msg.statusCode bunu geçersiz kılar)200100 ila 599
headersYanıt üstbilgileriyokcontent-type, cache-control, location (3xx), x-* (x-forwarded-* hariç)
bodyNe gönderilirpayloadpayload, template, none
templateGövde şablonuboşen fazla 4.096 karakter
max_bytesEn büyük gövde256 KiBen fazla 256 KiB

Hatalar: no_reply_pending, reply_sent, limit. Yanıt yoksa çağıran 204 alır; kancanın zaman aşımından sonra 504.

MQTT out

Yükü kendi brokerınızdaki bir konuya yayımlar, sonra mesajı iletir. Metin metin olarak, diğer her şey JSON olarak gönderilir.

AyarAnlamıVarsayılanDeğerler
brokerMQTT broker bağlantısıgerekli
topicKonu{{ msg.topic }}bir şablon, 256 karakter; baştaki ~/ brokerın konu önekidir
qosTeslimat garantisi00, 1, 2
retainBrokerdan mesajı saklamasını istemekoffon, off
timeout_msOnay için süre10,0001.000 ila 30.000
max_parallelUçuştaki yayımlar0 (sınır yok)0 ila 64
retry_*, lateYukarıdaki gibi

Hatalar: bad_topic (boş, + veya #, ya da öneksiz ~/), timeout, connect, auth, ssrf_blocked, node_not_ready, not_configured, circuit_open, limit. Yalnızca zaman aşımları ve bağlantı hataları yeniden denenir.

Webhook

Mesajı kuruluşunuzun webhook uç noktalarından birine gönderir: imzalı, yeniden denenen ve uç noktanın teslimatlarında listelenen. Bu, garantili teslimat yoludur.

AyarAnlamıVarsayılanDeğerler
endpointUç noktagerekliAutomation message olayına abone olan etkin uç noktalar
topictopic olarak gönderilir{{ msg.topic }}bir şablon, 256 karakter
bodyKonunun yanında ne gönderilirpayloadpayload, payload and metadata
metadata_keysGönderilen üst veri anahtarlarıyoken fazla 20
lateYukarıya bakınskipskip, send

Alıcı automation.message olayını, topic, payload, originator, flowId, flowVersion, nodeId, actor ve listelenen üst verilerle alır. out, kuyruğa alındığında msg.metadata.webhook.deliveryId taşır. Hatalar: endpoint_not_found, endpoint_inactive, enqueue_failed, not_configured, node_not_ready, circuit_open, limit (webhook’lar planınızda yok). Bkz. Webhooks.

Olay yayımla

Herhangi bir akışta, kaynağı flow olan Event tetikleyicisinin dinlediği bir olay gönderir.

AyarAnlamıVarsayılanDeğerler
kindOlayın adıgerekliönce küçük harfli bir harf, sonra küçük harfler, rakamlar, _ ve .; en fazla 32 karakter
dataTaşıdığı verimsg.payloadherhangi bir değer türü; nesne olmayan değer { "value": … } içine sarılır

Dinleyiciler msg.payload olarak veriyi, msg.topic olarak flow/<kind> alır. Hatalar: rate_limited, invalid_value (hatalı kind veya “emit: depth”: zincirin beşinci adımı). Dağıtım, görülebilen bir döngüyü reddeder (flow_cycle). Geç bir mesaj hiçbir olay yaymaz.

Değişken ata

Bir akış ya da genel değişkende bir değer saklar.

AyarAnlamıDeğerler
pathDeğişkenflow.<name> veya global.<name>, daha derin anahtarlara izin verilir; kalıcı depo için flow.persist:<name>
valueSaklanacak değerherhangi bir değer türü; hiçbir şey (null) onu kaldırır

Hatalar: invalid_value, limit (depo dolu; eski değer kalır). Sınırlar: akış başına 1 MiB, genel değişkenler için 4 MiB. Testte, testin kendi kopyası yazılır.

Zamanlayıcı

Adlandırılmış bir zamanlayıcıyı başlatır, yeniden başlatır ya da iptal eder. Süresi dolduğunda, bu adla her Named timer tetikleyicisi çalışır.

AyarAnlamıVarsayılanDeğerler
nameTüm akışlarca paylaşılan zamanlayıcıgerekli
opBaşlat (yeniden) ya da iptal etstartstart, cancel
msSüre (msg.ms bunu geçersiz kılar)1 dk0 ila 7 gün

Çalışan bir zamanlayıcıyı başlatmak onu sıfırdan yeniden başlatır: bekçi (watchdog) deseni. queue_full hatası “too many timers”: kuruluş 60 sn ve altında 64 zamanlayıcı ya da daha uzunlardan 10.000 zamanlayıcı tutar. Geç bir mesaj hiçbir zamanlayıcıyı başlatmaz ya da iptal etmez.

Bir akışı etkinleştir veya devre dışı bırak

Akış listesindeki anahtar gibi, başka bir akışı açar ya da kapatır.

AyarAnlamıVarsayılanDeğerler
flowAkışgereklikuruluşun dağıtılmış bir akışı, bu akış değil
stateEtkinleştir veya devre dışı bırakenableenable, disable

out, msg.metadata.flow_enable { flow, enabled, changed } taşır. Hatalar: not_configured, self_reference, not_found, not_approved, conflict, invalid, limit (dakikada 6’dan fazla anahtar). Bu bloğu içeren bir akışın dağıtımı yazılı onay gerektirir.

Akışı çalıştır

Mesajı başka bir akışın Flow input girişine devreder ve bu dalı sonlandırır.

AyarAnlamıDeğerler
flowÇalıştırılacak akışaynı ana makinedeki başka bir akış; asla kök akış değil

out çıkışı yoktur; geri bir şey dönmez. Hatalar: not_configured, invalid_value (eksik, devre dışı veya durdurulmuş), forbidden (kök), loop (beşinci atlama). Başka akışlarca çalıştırılan bir akış, bu bloklar kaldırılana kadar silinemez. Mesaj cihazını korur, bu yüzden hedef akışta Save telemetry çalışır.

Mesajı ada göre Link in bloklarına iletir ya da bir Link call‘a yanıt döndürür.

AyarAnlamıVarsayılanDeğerler
modelink (Link in bloklarına) ya da return (çağırana yanıt)linklink, return
targetsLink in adları (link modu)boşen fazla 16
nameDönüşün adı (return modu)outçağıranın tanımladığı bir dönüş

out çıkışı yoktur. Eksik bir hedef, hata değil, hata ayıklama panelinde bir uyarıdır. Dağıtım bilinmeyen adları ve bekleyen blok içermeyen döngüleri reddeder (cycle_sync).

Sistem günlüğü

Akışın günlüğüne bir satır yazar (Activity > Events > Log, 24 saat tutulur).

AyarAnlamıVarsayılanDeğerler
textSatır, {{ }} yer tutucularıyla{{ msg.payload }}en fazla 512 karakter
levelÖncelikinfoinfo, notice, warn, err

Debug

Ulaşan mesajları düzenleyicinin Activity > Debug sekmesinde gösterir. out çıkışı yoktur.

AyarAnlamıVarsayılanDeğerler
propertyNeyin gösterileceğimsg.payloadmsg (tüm mesaj) ya da bir yol
activeMesajları hiç göstermeonon, off

Debug kayıtları 24 saat tutulur ve hata ayıklama yetkisi olan kişilere görünür. Bloktaki düğme, kaydetmeden onu açıp kapatır.

Harici bir zaman serisi veritabanına yaz

Bir blok, bir veritabanı sunucu bağlantısı üzerinden, kendinize ait harici bir zaman serisi veritabanı sunucusuna mesaj başına bir nokta yazar. Ayarlar: sunucu, bucket ya da veritabanı, measurement, en fazla 16 tag, 1 ila 32 field (tür ile: auto, float, int, string, bool), zaman (varsayılan: ilk denemenin zamanı, her yeniden denemede aynı), timeout_ms (1.000 ila 30.000), yeniden denemeler ve late. out, yazılan measurement, field ve tag ile msg.metadata taşır. Genel bir entegrasyon için, kendi API’nize HTTP request bloğu çoğu zaman daha basittir.