Ana içeriğe geç

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ı

IMG2

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ğerin true olup olmadığını kontrol eder.
  • equals false: Değerin false olup olmadığını kontrol eder.
  • equals null: Değerin null olup olmadığını kontrol eder.
  • not equals null: Değerin null 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:
    1. is less than 10 → Çıkış 1
    2. is between 10 and 30 → Çıkış 2
    3. is greater than 30 → Çıkış 3

Sonuç:
Sıcaklıklar, değerlerine bağlı olarak yönlendirilecektir.