Bu bloklar bir cihazın verisi üzerinde IoT ana makinesinde çalışır: okumaları ve öznitelikleri saklar, alarm kurallarını değerlendirir ve mesajlara cihaz bilgilerini ekler. Neredeyse hepsi kaynağı bir cihaz olan bir mesaj gerektirir: bir cihaz mesajı ya da bir kökün Run flow ile aktardığı bir mesaj. Bir zamanlama, inject, olay veya zamanlayıcı ile başlatılan mesajlar bir cihazla değil kuruluşla ilgilidir; bu bloklar bunları not_a_device ile reddeder.
Telemetri kaydet
Mesajın anahtar-değer çiftlerini cihazın telemetrisi olarak saklar. Telemetriyi yalnızca bu blok saklar: bu bloğu içermeyen bir dal hiçbir şey saklamaz. Yalnızca msg.payload saklanır, üst veriler asla.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| anahtarlar | Yalnızca bu anahtarlar | her anahtar | anahtar adları |
| ts | Kaydın saklandığı zaman | kayıt zamanı | kayıt zamanı (msg.metadata.recordTs), alım zamanı (msg.metadata.ts) |
| ts_path | Kayıt zamanıyla: kaydı bu değerden yeniden zamanlar | yok | epoch milisaniyeye giden bir yol (sayı ya da sayısal metin) |
Çıktılar: out (değerler kaydedildikten sonra), error ile msg.error.code:
| Kod | Anlamı |
|---|---|
not_a_device | Kaynak bir cihaz değil |
invalid_value | Yük bir nesne değil |
bad_ts | ts_path üzerindeki zaman epoch milisaniye değil |
too_old | Kuruluşunuzun ham veriyi sakladığı süreden daha eski |
no_values | Yükteki hiçbir şey saklanamaz |
key_limit | Planın anahtar sınırı altında yeni bir anahtar için yer yok |
save_failed | Veritabanı satırı reddetti (msg.error.ts onun zamanıdır) |
- Mesajlar en fazla 500’lük dalgalar halinde yazılır ve cihazın bir sonraki mesajı kayıt onaylanana kadar bekler, böylece bu mesajın ssakladığını okur.
- Aynı zamandaki aynı değerler bir kez saklanır; aynı zamandaki iki farklı mesaj ikisi de tutulur; en son değer yalnızca kesinlikle daha yeni bir zamana taşınır.
- Veritabanına ulaşılamadığında hiçbir şey kaybolmaz: çalıştırma bekler ve yeniden erişilebilir olduğunda tekrar oynatılır.
- Test çalıştırması hiçbir şey saklamaz.
Bkz. Okumalar nasıl saklanır ve Telemetri anahtarları.
Öznitelik kaydet
Mesajın anahtar-değer çiftlerini cihazın istemci öznitelikleri olarak saklar (cihazın kendisi hakkında bildirdikleri, örneğin yazılım sürümü).
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| scope | Hangi öznitelikler | client | client |
| anahtarlar | Yalnızca bu anahtarlar | her anahtar | anahtar adları |
Hatalar: not_a_device, invalid_value, save_failed. Yeniden teslim edilen bir mesaj hiçbir şeyi değiştirmez; daha eski bir mesaj asla daha yeni bir değerin üzerine yazmaz; değişmeyen bir değer yeniden yazılmaz. Bkz. Öznitelikler.
Paylaşılan öznitelik ayarla
Mesajın cihazının paylaşılan özniteliklerini ayarlar. Bağlı bir cihaz değişikliği hemen alır; çevrimdışı bir cihaz bir sonraki bağlantısında alır. Akışlar değişikliği attributes_updated mesajı olarak duyar.
| Ayar | Anlamı | Değerler |
|---|---|---|
| öğeler | Anahtar ve değer çiftleri | zorunlu; en fazla 32. Anahtar: harfler, rakamlar, _, ., -, en fazla 57 karakter. Değer: bir sabit (true, 22.5, {"mode":"eco"}) ya da msg.payload.setpoint gibi bir yol. |
Hatalar: not_a_device, device_not_found, invalid_value, bad_attribute, too_large, managed_by_settings (ayarları Ayarlar sekmesinde yönetilen bir cihazın cfg.* anahtarı), limit (cihaz son bir dakikada akışlardan çok fazla komut ve ayar aldı; varsayılan 30).
- Kontrol seviyesi: dağıtım için Kontrol seviyesi düğümleri içeren akışları dağıt ve akışın adının yazılması gerekir.
_,fw_ya dacurrent_fw_ile başlayan anahtarlar ilesession_limitsvedeletedplatforma aittir ve ayarlanamaz.- Geç gelen bir mesaj hiçbir şeyi değiştirmez. Test çalıştırması neyi ayarlayacağını bildirir.
Alarm kuralları
Cihaz profilinin alarm kurallarını değerlendirir ve cihazın alarmlarını açar, günceller ya da temizler. Kurallar cihaz profilinde düzenlenir; bu blok kuralların akıştaki yerini belirler. Varsayılan kök bunu girişin hemen ardına koyar.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| profile_rules | Profilin kurallarını değerlendir | on | on, off |
| kurallar | Yalnızca bu alarm türleri | her kural | profilin kural türleri |
Çıktılar:
out: mesaj, her zaman, değerlendirmeden sonra (bir sorun kaydedilir ve mesajı asla durdurmaz, bu nedenle sonrasındaki kaydetme blokları yine çalışır).created,updated,cleared:msg.msgTypedeğerialarmolan, alarmımsg.payloadiçinde vemsg.metadata.alarm(transition,isNew,isSeverityUpdated,isCleared,repeats,durationMs,ruleId) içinde taşıyan mesajın bir kopyası.
Telemetri, anahtarlarından birini okuyan kurallara göre değerlendirilir; connect, disconnect, activity ve inactivity çevrimdışı kuralını yönetir. Geç ya da sırası karışık okumalar geriye dönük veri olarak değerlendirilir (geçmiş Backfilled olarak işaretlenir, kimse bilgilendirilmez). Bloğu kaldırırsanız alarm kuralları bu kökün cihazları için durur; geri koyarsanız devam eder. Bkz. Cihaz profillerinde alarm kuralları.
Cihaz ayrıntıları
Mesajın cihazının bilgilerini ve özniteliklerini mesaja ekler.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| alanlar | Cihaz alanları | name, profile | name, label, type, serial, model, fw_version, status, online, last_activity (epoch ms), profile, profile_id, is_gateway, gateway |
| öznitelikler | Öznitelikler: scope, key, mesajdaki ad | yok | en fazla 50; scope client, shared ya da server |
| target | Nesnenin yazıldığı yer | msg.metadata.device | msg.metadata ya da msg.payload altında bir yol |
| with_ts | Öznitelikleri { ts, value } olarak yaz | off | |
| on_missing | Değeri olmayan bir alan ya da öznitelik | error | error, skip, null |
Örnek sonuç: { "name": "Boiler 1", "profile": "Boilers", "online": true, "setpoint": 21 }. gateway, bir ağ geçidinin arkasındaki bir cihaz için { id, name, online } biçimindedir. Ayrıntılar 30 saniye önbelleğe alınır; öznitelikler her seferinde taze okunur. Hatalar: missing (msg.error.keys ile), not_a_device, not_found, invalid_value, read_failed.
Son değerler
Cihazın seçilen anahtarlarının saklanan son değerlerini ekler.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| anahtarlar | Telemetri anahtarları | zorunlu | en fazla 50 |
| target | Nereye | msg.metadata.latest | msg.metadata ya da msg.payload altında |
| with_ts | Değer yerine { ts, value } | off | |
| on_missing | Saklanmış değeri olmayan bir anahtar | error | error, skip, null |
İşlenmekte olan mesajın bir değeri, yalnızca Telemetri kaydet çalıştıktan sonra dahil edilir.
Profil ayrıntıları
Cihazın profilinin bilgilerini ekler.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| alanlar | Profil alanları | name | name, id, transport, inactivity_timeout_s, rpc_timeout_s, downlink_max_bytes, online_rule, expected_interval_s |
| target | Nereye | msg.metadata.profile | msg.metadata ya da msg.payload altında |
| on_missing | Değeri olmayan bir alan | error | error, skip, null |
İlgili veriler
Mesajın cihazına ya da varlığına bağlı varlık ve cihazların verilerini ekler: bir cihazın yerleştirildiği saha, bir varlığın yönettiği cihazlar, üç seviye yukarıdaki bir ata.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| direction | İlişkileri kaynaktan izle ya da ona doğru | from | from, to |
| relation_types | İzlenen ilişki türleri | CONTAINS | ör. CONTAINS, MANAGES, FEEDS, MONITORS ya da kendi türünüz; none = herhangi |
| exclude_types | Asla izlenmeyen türler | yok | |
| depth | Seviyeler | 1 | 1 ile 8 arası |
| last_level_only | Yalnızca son seviyeyi tut | off | |
| entity_kind | Hangi varlıklar | any | any, asset, device |
| profiles, kinds | Yalnızca bu profillerdeki cihazlar, bu türlerdeki varlıklar | any | |
| max | Kaç varlık | 1 | 1 ile 100 arası (1 tek bir nesne, daha fazlası bir liste yazar) |
| data | Ne okunur | attributes | attributes, latest values (devices), fields |
| scope | Cihaz öznitelik kapsamı | server | server, shared, client |
| mapping | Okunan anahtarlar ve mesajdaki adları | zorunlu | en fazla 50 |
| target | Nereye | msg.metadata.related | msg.metadata ya da msg.payload altında |
| with_ts, on_missing | Yukarıdaki gibi | off, error |
Varlık ağacı ve cihaz yerleşimleri CONTAINS ilişkisi sayılır: direction to, CONTAINS, depth 3, last level only; assets bir cihazın üç seviye yukarıdaki sahasını bulur. Sıra sabittir, bu nedenle max 1 her seferinde aynı varlığı seçer. Bkz. Varlık hiyerarşisi.
Okuma kaydet (Genel ana makine)
Anahtar-değer çiftlerini, akışlardan yazmayı kabul eden bir kayıt türünün okuması olarak saklar (örneğin planınıza dahilse varlık sayaçları). Cihaz verisi buraya asla kaydedilmez.
| Ayar | Anlamı | Varsayılan | Değerler |
|---|---|---|---|
| kind | Kayıt türü | zorunlu | akış yazmalarını kabul eden bir tür |
| entity_path | Kaydın kimliğinin yeri | msg.originator.id | bir UUID’ye giden bir yol |
| ts, ts_path | Telemetri kaydet için olduğu gibi | kayıt zamanı | |
| anahtarlar | Yalnızca bu anahtarlar | her anahtar |
Hatalar: invalid_value, invalid_entity, unknown_kind, kind_not_writable, entity_not_writable, bad_ts, save_failed.
Metadatanın bittiği yer
msg.metadata altına yazılan değerler asla saklanmaz; msg.payload altındaki değerler sonraki bir Telemetri kaydet ile saklanır. Saklamak istemiyorsanız zenginleştirmeyi msg.metadata altına koyun.

