Her tarif, hangi blokların kullanılacağını, bunların ayarlarını ve nereye bağlanacaklarını belirtir. 1 ila 5 ve 8 ila 9 numaralı tarifler, IoT ana makinesindeki bir kök akışa (kiracı genelindeki kök ya da bir profil kökü) eklenir; belirtildiği gibi, Message type anahtarının telemetry çıkışına, Save telemetry bloğundan önce ya da sonra yerleştirin. Dağıtmadan önce her değişikliği Test ile sınayın. Bkz. The flow editor.
1. Değer yalnızca yeterince değiştiğinde kaydedilsin
Bir seviye sensörü her 10 saniyede bir veri gönderir, ancak 0,5 cm’den küçük bir değişim önemli değildir.
Message type ─telemetry→ Only changes → Save telemetry
- Only changes: özellik
msg.payload.level_cm, moddeadband, değer0.5, first açık. Anahtar: varsayılanı bırakın (cihaz başına bir bellek). level_cmiçermeyen kayıtlar yine de kaydedilmelidir: önce bir Switch ekleyin (özellikmsg.payload.level_cm, kuralnempty), kural çıkışını Only changes üzerinden geçirin ve its otherwise çıkışını doğrudan Save telemetry bloğuna bağlayın.
Bu, saklanan noktaların sayısını azaltır, sayılan mesajların sayısını değil. Mesajları azaltmak için cihazın raporlamasını değiştirin. Bkz. Message quota and usage.
2. Yeniden başlayabilen bir sayaçtan tüketim
Bir su sayacı artan bir volume_m3 değeri gönderir; güç kesintisinden sonra 0’dan yeniden başlar.
Message type ─telemetry→ Delta ─out→ Save telemetry
└other→ Save telemetry
- Delta: girdi
msg.payload.volume_m3, çıktımsg.payload.volume_delta_m3,on_negativezero, seedlatest, yuvarlama 3.
Saatlik ya da günlük tüketim için ham sayacı increase toplamasıyla da grafiğe dökebilirsiniz. Bkz. Derived values.
3. Sessizleşen bir sensör için alarm
Bir cihaz 15 dakika boyunca temperature göndermezse bir uyarı oluşturun; cihaz yeniden veri gönderdiğinde uyarıyı temizleyin.
Message type ─telemetry→ Switch (msg.payload.temperature nempty) → Watchdog ─timeout→ Raise alarm
└ok→ Clear alarm
- Watchdog: ms 15 min, anahtar
msg.originator(varsayılan), repeat kapalı. - Raise alarm: alarm
temperature_silent, severity warning, metinNo temperature for 15 minutes. - Clear alarm: alarm
temperature_silent. - Switch bloğunun çıkışını Save telemetry bloğuna da bağlı tutun ya da watchdog dalını onun yanına bağlayın.
Watchdog, dağıtımdan sonra bir cihazın ilk mesajıyla izlemeye başlar. Tamamen çevrimdışı olan cihazlar için ayrıca bir çevrimdışı alarm kuralı kullanın. Bkz. Offline alarms.
4. Her okumayı sunucunuza iletin
Save telemetry → HTTP request
https://ingest.example.comadresine taşıyıcı (bearer) kimlik doğrulamasıyla bir HTTP endpoint bağlantısı oluşturun. Bkz. Connections and secrets.
HTTP request: yöntem POST, yol/readings, gövdetemplate, template_formatjson, template:{"device": {{ msg.metadata.deviceName }}, "ts": {{ msg.metadata.recordTs }}, "values": {{ msg.payload }}}
geçsend, böylece bir kesintiden sonraki birikmiş veriler de iletilir.
İsteğin error çıkışını bir System log bloğuna bağlayın (metinforward failed: {{ msg.error.code }}).
Save telemetry bloğundan sonra bağlamak yalnızca kaydedilen verileri iletir. Çok sayıda cihaz için, grupları göndermek üzere isteğin önüne bir Batch (count 50) ve bir Join (auto, array) yerleştirin.
5. Saha görünümleri ve grafikler için durum anahtarı
Saha görünümleri odaları bir status anahtarına göre renklendirir. Sıcaklıktan türetilmiş bir tane saklayın:
Message type ─telemetry→ Switch (msg.payload.temperature nempty) → Calculate → Save telemetry
- Calculate: hedef
msg.payload.status, ifademsg.payload.temperature > 8 ? 2 : (msg.payload.temperature > 6 ? 1 : 0).
Saha görünümleri 2’yi kritik, 1’i uyarı olarak okur. Sayısal olduğu için status ayrıca grafiğe dökülür ve toplanır. Bkz. Site views.
6. Bir alarm açıldığında nöbetçi adresine e-posta ve SMS gönderin
IoT ana makinesinde bir akış (kök değil):
Device message (types: alarm) → Switch (msg.metadata.alarm.transition) ─created→ Rate limit → Notify
- Device message: türler
alarm(adıyla işaretleyin), profiller: ilgilendiklerinizi seçin. - Switch: özellik
msg.metadata.alarm.transition, kuraleqcreated. - Rate limit: n 5, per_ms 1 h, mode drop, anahtar
msg.topic(tüm alarmlar için tek sınır). - Notify: alıcılar
addressoncall@example.com,phone+905551112233veroleADMIN(uygulama içi ve push); başlık{{ msg.payload.title }}; metinAlarm on {{ msg.payload.deviceName }}: {{ msg.payload.title }} ({{ msg.payload.severity }}); urgency critical.
Roller üyelere uygulamada, push ile ve sohbet uygulamalarında ulaşır; yalnızca address ve phone satırları e-posta ve SMS alır. Bkz. Alarm, command and notify blocks.
7. Gece modu
Herhangi bir ana makinedeki iki akış, üçüncü bir akışı (“Night actions”) 22:00’de açar ve 06:00’da kapatır.
- Akış A: Schedule (daily,
22:00, every day, tzEurope/Istanbul) → Enable or disable a flow (flow: Night actions, state enable). - Akış B: Schedule (daily,
06:00) → Enable or disable a flow (state disable).
İkisi de dağıtımda yazılı onay ister. Kuruluş başına dakikada en fazla 6 anahtarlama yapılabilir.
8. Bir pompayı iki seviye arasında değiştirin
Doldurma pompasını %30’un altında başlatın ve %80’in üzerinde durdurun. İki seviye arasında hiçbir komut gönderilmez, böylece pompa sürekli açılıp kapanmaz.
Save telemetry → Switch (property msg.payload.level_pct)
─rule 1: lt 30→ Not repeated → Send command pump.set {"on": true}
─rule 2: gt 80→ Not repeated → Send command pump.set {"on": false}
- Switch: özellik
msg.payload.level_pct, kurallarlt30 (Namelow) vegt80 (Namehigh), stop_first açık. Anahtarı olmayan kayıt otherwise çıkışına gider ve yok sayılır. - Her Not repeated: period 10 min; böylece seviye bant dışında kaldıkça komut bir kez gönderilir ve en fazla 10 dakikada bir tekrarlanır.
- Send command: profilin
pump.setkomutu, parametreler{"on": true}ya da{"on": false}.
Akışlardan gelen komutlar cihaz başına dakikada 30 ile sınırlıdır ve geç kalan bir mesaj hiçbir komut göndermez. Manuel ve Otomatik modlu operatör kontrolü için Rules kartı çoğu zaman daha uygun bir araçtır. Bkz. Rules card: actions.
9. İkili bir yükü çözümleyin
Bir cihaz 4 bayt gönderir: işaretli bir sıcaklık × 10 ve işaretsiz bir nem değeri. raw (base64) olarak gelir.
Switch (msg.payload.raw nempty) → Change → Base64 (decode) → Hex (encode) → Bytes (decode) → Save telemetry
- Change:
setmsg.payload, yolmsg.payload.raw. - Bytes alanları:
temperatureoffset 0i16scale 0.1;humidityoffset 2u16.
Bkz. Data transform blocks.
10. Okumaları webhook ile başka bir sistemden alın
Dış bir sistem Hermetry’ye JSON gönderir ve akış bunu iletir.
- Webhook tetikleyicisi: auth
hmac, parsejson, replyaccepted. Adresi ve gizli anahtarı Webhooks iletişim kutusundan kopyalayın. - Ardından
msg.payload.typeüzerinde Switch, yeniden biçimlendirmek için Change ve bir eylem: Notify, Webhook, MQTT out ya da Set variable.
Varsayılan olarak bir webhook mesajı bir cihazla değil kuruluşla ilgilidir, bu yüzden Save telemetry bunu reddeder. Başka bir sistemden cihaz okumaları beslemek için, bunların MQTT üzerinden ya da cihaz HTTP API’si aracılığıyla cihaz olarak gönderilmesini sağlayın. Bkz. Device HTTP API.

