switch
Düğümü
switch
düğümü, mesajların içeriğine, yapısına veya diğer koşullara bağlı olarak yönlendirilmesi için tasarlanmıştır. Bu, akışlarda koşullu mantık oluşturmak için güçlü bir araçtır.
switch
Düğüm 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ı:
check status
2. Özellik
Hangi msg
mesaj nesnesinin özelliğinin koşulları kontrol etmek için kullanılacağını belirtir.
Örnek:
msg.payload
msg.topic
msg.device.temperature
Ayrıca ortam özellikleri (flow
, global
) ve JSONata ifadeleri ( $
ile başlar) de desteklenir.
3. Kontrol
- İlk eşleşmeye kadar kontrol (Varsayılan):
Mesaj, yalnızca koşulu karşılayan ilk çıkışa 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ğlanır. Mesaj, ilk uygun çıkışa gönderilecektir.
Mevcut koşul türleri:
==
: Değerin eşitliğini kontrol eder.!=
: Eşitsizliği kontrol eder.<
: Değerin daha küçük olup olmadığını kontrol eder.<=
: Değerin daha küçük 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 (dahil) olup olmadığını kontrol eder.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
olup olmadığını kontrol eder.equals false
: Değerinfalse
olup olmadığını kontrol eder.equals null
: Değerinnull
olup olmadığını kontrol eder.not equals null
: Değerinnull
olmadığını kontrol eder.is of type
: Değerin belirtilen türe (örneğin,string
,number
,boolean
) uyup uymadığını kontrol eder.empty
: Dizenin, dizinin veya nesnenin boş olup olmadığını kontrol eder.not empty
: Dizenin, dizinin veya nesnenin boş olmadığını kontrol eder.else
: Diğer koşullardan hiçbiri sağlanmadığında çalışır.
Örnek:
msg.payload
50
'den büyük
Giriş Verileri
Düğüm, msg
nesnesini alır.
Hangi özelliklerin kontrol edileceği Özellik alanında belirtilir.
Çıkış Verileri
Düğüm, msg
mesajını belirtilen koşula uyan çıkışa gönderir.
Mesaj, hiçbir koşula uymuyorsa çıkışlara gönderilmez.
Kullanım Örnekleri
Örnek 1: Sıcaklık Verilerinin Filtrelenmesi
Görev:
Verileri üç kategoriye ayırmak: düşük, normal ve yüksek sıcaklık.
Akış:
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
switch
Düğüm Ayarları:
- Özellik:
msg.payload
- Koşullar:
is less than 10
→ Çıkış 1is between 10 and 30
→ Çıkış 2is greater than 30
→ Çıkış 3
Sonuç:
Sıcaklıklar, değerlerine bağlı olarak yönlendirilecektir.