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

Tetikleyici blokları

Bir akışı başlatan her bloğun referansı – Flow input, Device message, Inject, Schedule, Named timer, Webhook, Event, Catch, Status, Complete ve Link in.

Bir tetikleyici bir çalışmayı başlatır: girdisi yoktur ve olayı gerçekleştiğinde bir mesaj gönderir. Bir akışta birden fazla tetikleyici olabilir. Bu sayfa, blokların tanımladığı şekliyle her tetikleyiciyi çıktıları ve ayarlarıyla birlikte listeler. Düzenleyicinin Help sekmesi, seçili blok için aynı referansı gösterir.

Mesajlar en az bir kez teslim edilir: bir çökmeden sonra bir mesaj yeniden teslim edilebilir; bu durumda msg.metadata.redelivered = true olarak işaretlenir ve aynı mesaj kimlikleri taşır, böylece dışarı çağrı yapan bloklar aynı idempotency anahtarlarını gönderir. Zamana dayalı ve webhook tetikleyicilerinin skip_redelivered ayarı vardır (varsayılan olarak kapalı): açıkken, yeniden teslim edilen bir mesaj akışı yeniden başlatmaz.

Akış girişi

Başka bir akışın Run flow ile devrettiği mesajların girişi ve bir kök akışta, kökün kapsamındaki cihaz mesajlarının girişidir. Her akışın tam olarak biri vardır; silinemez.

Çıktıout: mesaj devredildiği haliyle, aynı çalışmada. Bir IoT kökünde her cihaz mesajı; telemetri her kayıt için bir mesaj olarak.
AyarlarYok. Akışın kendisi adrestir.
NotlarAkışın mesaj alabilmesi için açık ve çalışır durumda olması gerekir. Kök akış hiçbir zaman başka bir akış tarafından çalıştırılmaz. Veri yalnızca mesaj üzerinden gelir; alanları Run flow öncesinde ayarlayın.

Cihaz mesajı (IoT ana bilgisayarı)

Cihazların mesajlarıyla başlar. Cihaz mesajları (telemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response) yalnızca bir kök akışa gider; Flow input bağlı olan bir kökte, Flow input onların girişidir. alarm ve attributes_updated mesajları, kök olsun olmasın, adıyla bunları belirten every akışa, yani bir Device message tetikleyicisi olan her akışa gider. Hiçbir tür işaretlenmemiş bir tetikleyici yalnızca cihaz mesajı türlerini dinler: bunları dinlemek için alarm veya attributes_updated türünü adıyla işaretleyin.

AyarAnlamıVarsayılanDeğerler
typesAkışı başlatan mesaj türlerievery typetelemetry, attributes, connect, disconnect, activity, inactivity, rpc_request, rpc_response, attributes_updated, alarm
profilesYalnızca bu profillerdeki cihazlarevery profilecihaz profilleriniz
skip_redeliveredYeniden teslim edilen bir mesaj onu başlatmazoffon, off

Çıktılar: out (telemetri her kayıt için bir mesaj, msg.metadata.recordTs ile), error (bad_payload: hiç kayıt vermeyen telemetri; msg.error.drops her değerin neden atlandığını belirtir).

Salt okunur metadata: msgType, deviceId, profileId, deviceName, profileName, transport (mqtt veya http), ts (alım zamanı), recordTs, topic (yalnızca özel konu verisi), gatewayDeviceId ve diğerleri. Metadata hiçbir zaman saklanmaz.

Inject

Bir akışı elle başlatır (blok üzerindeki düğme), akış başladıktan kısa süre sonra bir kez veya tekrarlı olarak.

AyarAnlamıVarsayılanDeğerler
payloadmsg.payload içine ne gideceğişu anki zaman (epoch saniyesi)bir sayı, metin, evet/hayır, JSON, şu anki zaman, hiçbir şey, bir ortam değişkeni veya bir ifade
topicmsg.topicboşen fazla 256 karakter
repeat_msBu süre her seferinde yeniden tetiklenir; 0 = tekrar yok0en fazla 7 gün; bulutta en az 60 s (planınızın asgari süresi)
once_after_msAkış başladıktan bu süre sonra bir kez tetiklenirboş0 ila 24 sa
originatorMesajın kimden geldiğikuruluşkuruluş veya bu akış (kendi şeridi)
msg_typeMesaj türüinjectana bilgisayarın mesaj türlerinden biri
metadataEk msg.metadata girdileriyoken fazla 16 satır
timesBu kadar tekrardan sonra dur0 (son yok)bir tekrar gerektirir
catch_upBir kesintiden sonraonceonce (kaçırılan en son tetikleme için tek çalışma), skip

Çıktı: out. Yük, her tetiklendiğinde yeniden hesaplanır.

Zamanlama

Bir akışı duvar saatine göre başlatır.

AyarAnlamıVarsayılanDeğerler
modeZamanın nasıl verildiğidailydaily, cron, sun
timeGünün saati (daily)08:00HH:MM, 24 saat
weekdaysTetiklendiği günler (daily)hiçbiri işaretli değilse = her günPzt ila Paz
cronCron ifadesi0 8 * * 1-55 alan: dakika, saat, ayın günü, ay, haftanın günü
sunGün doğumu veya batımısetrise, set
offset_minGüneş olayından sonra (+) veya önce (−) dakika0−720 ila 720
lat, lonGüneş saatleri için konumboş−90 ila 90, −180 ila 180; mode sun için required
tzSaat dilimikuruluşun varsayılan dilimiEurope/Istanbul gibi bir IANA adı
originatorMesajın kimden geldiğikuruluşkuruluş veya bu akış
msg_typeMesaj türüscheduleana bilgisayarın türlerinden biri
payloadStandart yükün yerine geçer{ event: "due", mode, at, time }herhangi bir değer veya ifade
catch_upBir kesintiden sonraonceonce, skip

Çıktı out: msg.payload { "event": "due", "mode": "daily", "at": …, "time": … }, msg.topic schedule/<mode>.

  • Cron alanları sayıları, *, aralıkları (1-5), listeleri (1,15) ve adımları (*/10) kabul eder; haftanın günü 0 ve 7 Pazar’dır; MON gibi adlar anlaşılmaz. Ayın günü ve haftanın günü ikisi de kısıtlandığında, ikisinden biri yeterlidir.
  • Yaz saati uygulamasındaki bir değişiklikle atlanan bir zaman tetiklenmez. Gün doğumu veya batımı olmayan bir gün (kutup bölgeleri) atlanır.
  • Bloğun ayarlarındaki Show the next runs, kendi dilimindeki bir sonraki tetikleme zamanlarını listeler.
  • Zamanlamanın mesajının bir cihazı yoktur: cihaz mesajı gerektiren bloklar (Save telemetry, Raise alarm, Send command) bunu not_a_device ile reddeder.

Adlandırılmış zamanlayıcı

Adlandırılmış bir zamanlayıcı dolduğunda bir akışı başlatır. Timer eylem bloğu, kuruluştaki herhangi bir akıştan onu başlatır, yeniden başlatır veya iptal eder.

AyarAnlamıDeğerler
nameDinlenecek zamanlayıcırequired

Çıktı out: msg.payload { "event": "fired", "name", "ms", "time" }, msg.topic timer/<name>, msg.text “Timer name ran out”. Zamanlayıcılar akışlardaki düzenlemelerden sonra da varlığını sürdürür ve platform tarafından tutulur. Yaşam süresinden uzun bir kesinti sırasında vadesi gelen bir zamanlayıcı, yeniden oynatabileceğiniz başarısız bir mesaja dönüşür.

Webhook

Bloğun adresine bir HTTP POST akışı başlatır. Adres, akış dağıtılıp açıldıktan sonra düzenleyicinin Webhooks penceresinde gösterilir.

AyarAnlamıVarsayılanDeğerler
authÇağıranların kendini nasıl kanıtladığıtokentoken (Authorization: Bearer <secret>), hmac (X-Automation-Signature: timestamp.rawBody üzerinde hex HMAC-SHA256 ve 300 s içinde X-Automation-Timestamp), session (kuruluşunuzda oturum açmış bir üye)
permissionYalnızca oturum: çağıranın da sahip olması gereken bir yetkiboşbir yetki kimliği
originatorMesajın kimin hakkında olduğukuruluşkuruluş veya kuruluşunuzdan bir varlık
max_bodyEn büyük gövde16 KiBen fazla 256 KiB
parseGövdenin nasıl okunduğujsonjson, text
replyÇağıranın yanıtı ne zaman alacağıacceptedaccepted (hemen bir kimlikle 202), response (bir HTTP response bloğu yanıtlar)
timeout_msEşzamanlı bir çağıranın ne kadar bekleyeceği10,0001.000 ila 10.000

Çıktı out: msg.payload gövdedir; msg.metadata.http method, query ve content-type, user-agent ve x-request-id başlıklarını içerir (asla authorization veya çerezler değil). Bir oturum kancası için msg.metadata.user.id çağırandır.

Yanıtlar: 202 kabul edildi, 401 yanlış token, imza veya oturum, 403 reddedilen oturum, 404 bilinmeyen kanca, 413 gövde çok büyük, 429 hız sınırı veya kota, 503 meşgul. Eşzamanlı bir kanca, akış yanıt göndermezse 204, yakalanmamış hatada 500, süre sonunda 504 yanıtlar. Gizli anahtarlar ve döndürme için Connections and secrets sayfasına bakın.

Olay

Kaynağa ve türe göre seçilen bir olayda başlar; örneğin başka bir akışın Emit event ile gönderdiği olay gibi.

AyarAnlamıVarsayılanDeğerler
sourceOlay kaynağıanybir kaynak, ör. flow; * = herhangi
kindOlay türüanytam değer, * veya * ile biten bir önek (tank.*)
filterDoğru olması gereken bir ifadeyokmsg üzerinde, en fazla 512 karakter

Çıktı out: msg.payload olayın verisidir, msg.topic <source>/<kind>. Filtre derlenmezse invalid_value hatası. flow ve platform kaynakları dışında bir tür veya önek belirtmelisiniz.

Catch

Kendi error çıktısı bağlı olmayan aynı akıştaki blokların hatalarını alır.

AyarAnlamıVarsayılan
scopeHataları yakalanan bloklarakıştaki her blok
uncaught_onlyYalnızca başka hiçbir Catch’in almadığı hatalaroff

Çıktı out: hatalı mesajın bir kopyası, msg.error { message, code, source: { id, type, flow, name } } ile.

Durum

Aynı akıştaki bir blok, altındaki durum satırını her değiştirdiğinde başlar.

AyarAnlamıVarsayılan
scopeİzlenen bloklarakıştaki her blok

Çıktı out: msg.payload durum metni, msg.status { fill, shape, text, ts, source }. Her bloğu izleyip kendi durumunu ayarlayan bir bloğa (Debug gibi) bağlamayın: sonsuza dek kendini yeniden başlatır.

Complete

Aynı akıştaki seçili bloklar bir mesajı hatasız bitirdiğinde başlar.

AyarAnlamıDeğerler
nodesİzlenen bloklaren fazla 64; hiçbiri = hiç tetiklenmez

Çıktı out: bitmiş mesajın bir kopyası, msg.complete { id, type, name } ile.

Link out ve Link call blokların gönderdiği, bu veya aynı ana bilgisayardaki başka bir akıştan adlandırılmış bir giriş.

AyarAnlamıDeğerler
nameLink blokların kullandığı ad1 ila 32 karakter: harfler, rakamlar, _, ., -; benzersiz

Çıktı out: gelen her mesaj, değiştirilmeden ve aynı çalışmada.

Yorum

Comment bloğu tuvaldeki bir nottur (en fazla 2.048 karakter). Akış çalıştığında hiçbir şey yapmaz.

Link call için Routing and timing blocks, Link out, Emit event, Timer ve Run flow için Action blocks sayfalarına bakın.