Lewati ke konten utama

Node switch

Node switch dirancang untuk merouting pesan berdasarkan konten, struktur, atau kondisi lainnya. Ini adalah alat yang kuat untuk membuat logika kondisional dalam alur.


Pengaturan untuk node switch

IMG2

1. Nama

Sebuah kolom untuk menentukan nama node.
Nama ditampilkan di ruang kerja dan membantu untuk dengan mudah mengidentifikasi node.
Jika dibiarkan kosong, node akan disebut inject.

Contoh:

  • Nama node: cek status

2. Properti

Menentukan properti mana dari objek pesan msg yang akan digunakan untuk memeriksa kondisi.

Contoh:

  • msg.payload
  • msg.topic
  • msg.device.temperature

Properti lingkungan (flow, global) juga didukung.


3. Periksa

  • Periksa hingga kecocokan pertama (Default):
    Pesan hanya dikirim ke output pertama yang memenuhi kondisi.
  • Periksa semua kecocokan:
    Pesan dapat dikirim ke beberapa output jika memenuhi beberapa kondisi.

3. Aturan

Mendefinisikan logika routing. Setiap kondisi terikat pada salah satu output node. Pesan akan dikirim ke output yang sesuai pertama.

Tipe kondisi yang tersedia:

  • ==: Memeriksa kesetaraan nilai.
  • !=: Memeriksa ketidaksamaan.
  • <: Memeriksa apakah nilai kurang.
  • <=: Memeriksa apakah nilai kurang dari atau sama dengan.
  • >: Memeriksa apakah nilai lebih besar.
  • >=: Memeriksa apakah nilai lebih besar dari atau sama dengan.
  • has key: Memeriksa apakah objek mengandung kunci yang ditentukan.
  • between: Memeriksa apakah nilai berada dalam rentang yang ditentukan (inklusif).
  • contains: Memeriksa apakah string atau array mengandung nilai yang ditentukan.
  • matches regex: Memeriksa apakah string cocok dengan ekspresi reguler.
  • equals true: Memeriksa apakah nilai sama dengan true.
  • equals false: Memeriksa apakah nilai sama dengan false.
  • equals null: Memeriksa apakah nilai sama dengan null.
  • not equals null: Memeriksa apakah nilai tidak sama dengan null.
  • is of type: Memeriksa apakah nilai cocok dengan tipe yang ditentukan (misalnya, string, number, boolean).
  • empty: Memeriksa apakah string, array, atau objek kosong.
  • not empty: Memeriksa apakah string, array, atau objek tidak kosong.
  • else: Menjalankan jika tidak ada kondisi lain yang terpenuhi.

Contoh:

  • msg.payload lebih besar dari 50

Input

Node menerima objek msg.
Properti spesifik mana yang akan diperiksa ditentukan dalam kolom Properti.


Output

Node mengirim pesan msg ke output yang sesuai dengan kondisi yang ditentukan.
Jika pesan tidak memenuhi kondisi apapun, pesan tersebut tidak dikirim ke output.


Contoh Penggunaan

Contoh 1: Memfilter data suhu

Tugas:
Mengategorikan data ke dalam tiga kategori: suhu rendah, normal, dan tinggi.

Alur:

[inject] ---> [function] ---> [switch] ---> [debug (suhu rendah)]
| [debug (suhu normal)]
| [debug (suhu tinggi)]

Pengaturan untuk node switch:

  • Properti: msg.payload
  • Kondisi:
    1. is less than 10 → Output 1
    2. is between 10 and 30 → Output 2
    3. is greater than 30 → Output 3

Hasil:
Suhu akan dirouting berdasarkan nilainya.