Ana içeriğe geç

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

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ı: 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ğerin true ile eşit olup olmadığını kontrol eder.
  • equals false: Değerin false ile eşit olup olmadığını kontrol eder.
  • equals null: Değerin null ile eşit olup olmadığını kontrol eder.
  • not equals null: Değerin null 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:
    1. 10'dan az → Çıkış 1
    2. 10 ile 30 arasında → Çıkış 2
    3. 30'dan büyük → Çıkış 3

Sonuç:
Sıcaklıklar, değerlerine göre yönlendirilecektir.