Node switch
switch
düğümü, mesajları içeriğine, yapısına veya diğer koşullara göre yönlendirmek için tasarlanmıştır. Akışlarda koşullu mantık oluşturmak için güçlü bir araçtır.
switch
düğümü için Ayarlar
1. İsim
Düğümün adını belirtmek için bir alan.
İsim, çalışma alanında görüntülenir ve düğümü kolayca tanımlamaya yardımcı olur.
Boş bırakılırsa, düğüm inject
olarak adlandırılacaktır.
Örnek:
- Düğüm adı:
durumu kontrol et
2. Özellik
Hangi mesaj nesnesi msg
özelliğinin koşulları kontrol etmek için kullanılacağını belirtir.
Örnek:
msg.payload
msg.topic
msg.device.temperature
Ortam özellikleri (flow
, global
) de desteklenmektedir.
3. Kontrol
- İlk eşleşmeye kadar kontrol et (Varsayılan):
Mesaj, koşulu karşılayan ilk çıkışa yalnızca gönderilir. - Tüm eşleşmeleri kontrol et:
Mesaj, birden fazla koşulu karşılıyorsa birden fazla çıkışa gönderilebilir.
3. Kurallar
Yönlendirme mantığını tanımlar. Her koşul, düğümün çıkışlarından birine bağlıdır. Mesaj, uygun olan ilk çıkışa gönderilecektir.
Mevcut koşul türleri:
==
: Değerin eşitliğini kontrol eder.!=
: Eşitsizliği kontrol eder.<
: Değerin daha az olup olmadığını kontrol eder.<=
: Değerin daha az veya eşit olup olmadığ ını kontrol eder.>
: Değerin daha büyük olup olmadığını kontrol eder.>=
: Değerin daha büyük veya eşit olup olmadığını kontrol eder.has key
: Nesnenin belirtilen anahtarı içerip içermediğini kontrol eder.between
: Değerin belirtilen aralıkta olup olmadığını kontrol eder (dahil).contains
: Dize veya dizinin belirtilen değeri içerip içermediğini kontrol eder.matches regex
: Dizenin düzenli ifadeye uyup uymadığını kontrol eder.equals true
: Değerintrue
ile eşit olup olmadığını kontrol eder.equals false
: Değerinfalse
ile eşit olup olmadığını kontrol eder.equals null
: Değerinnull
ile eşit olup olmadığını kontrol eder.not equals null
: Değerinnull
ile eşit olmadığını kontrol eder.is of type
: Değerin belirtilen türle (örneğin,string
,number
,boolean
) eşleşip eşleşmediğini kontrol eder.empty
: Dize, dizi veya nesnenin boş olup olmadığını kontrol eder.not empty
: Dize, dizi veya nesnenin boş olmadığını kontrol eder.else
: Diğer koşullardan hiçbiri karşılanmadığında çalıştırılır.
Örnek:
msg.payload
50
'den büyüktür.
Giriş
Düğüm, msg
nesnesini kabul eder.
Hangi belirli özelliklerin kontrol edileceği Özellik alanında tanımlanır.
Çıkış
Düğüm, msg
mesajını belirtilen koşula karşılık gelen çıkışa gönderir.
Mesaj, hiçbir koşulu karşılamıyorsa çıkışlara gönderilmez.
Kullanım Örnekleri
Örnek 1: Sıcaklık verilerini filtreleme
Görev:
Verileri üç kategoriye ayırın: düşük, normal ve yüksek sıcaklık.
Akış:
[inject] ---> [function] ---> [switch] ---> [debug (düşük sıcaklık)]
| [debug (normal sıcaklık)]
| [debug (yüksek sıcakl ık)]
switch
düğümü için Ayarlar:
- Özellik:
msg.payload
- Koşullar:
10'dan az
→ Çıkış 110 ile 30 arasında
→ Çıkış 230'dan büyük
→ Çıkış 3
Sonuç:
Sıcaklıklar, değerlerine göre yönlendirilecektir.