انتقل إلى المحتوى الرئيسي

Node switch

عقدة switch مصممة لتوجيه الرسائل بناءً على محتواها أو هيكلها أو شروط أخرى. إنها أداة قوية لإنشاء منطق شرطي في التدفقات.


إعدادات عقدة switch

IMG2

1. الاسم

حقل لتحديد اسم العقدة.
يتم عرض الاسم في مساحة العمل ويساعد في التعرف بسهولة على العقدة.
إذا ترك فارغًا، ستسمى العقدة inject.

مثال:

  • اسم العقدة: check status

2. الخاصية

تحدد أي خاصية من كائن الرسالة msg سيتم استخدامها للتحقق من الشروط.

مثال:

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

يتم دعم الخصائص البيئية (flow, global) أيضًا.


3. التحقق

  • التحقق حتى المطابقة الأولى (افتراضي):
    يتم إرسال الرسالة فقط إلى المخرج الأول الذي يفي بالشرط.
  • التحقق من جميع المطابقات:
    يمكن إرسال الرسالة إلى مخرجات متعددة إذا كانت تلبي عدة شروط.

3. القواعد

تعريف منطق التوجيه. كل شرط مرتبط بأحد مخرجات العقدة. سيتم إرسال الرسالة إلى أول مخرج مناسب.

أنواع الشروط المتاحة:

  • ==: يتحقق من تساوي القيمة.
  • !=: يتحقق من عدم التساوي.
  • <: يتحقق مما إذا كانت القيمة أقل.
  • <=: يتحقق مما إذا كانت القيمة أقل من أو تساوي.
  • >: يتحقق مما إذا كانت القيمة أكبر.
  • >=: يتحقق مما إذا كانت القيمة أكبر من أو تساوي.
  • has key: يتحقق مما إذا كان الكائن يحتوي على المفتاح المحدد.
  • between: يتحقق مما إذا كانت القيمة ضمن النطاق المحدد (شامل).
  • contains: يتحقق مما إذا كانت السلسلة أو المصفوفة تحتوي على القيمة المحددة.
  • matches regex: يتحقق مما إذا كانت السلسلة تتطابق مع التعبير العادي.
  • equals true: يتحقق مما إذا كانت القيمة تساوي true.
  • equals false: يتحقق مما إذا كانت القيمة تساوي false.
  • equals null: يتحقق مما إذا كانت القيمة تساوي null.
  • not equals null: يتحقق مما إذا كانت القيمة لا تساوي null.
  • is of type: يتحقق مما إذا كانت القيمة تتطابق مع النوع المحدد (مثل string, number, boolean).
  • empty: يتحقق مما إذا كانت السلسلة أو المصفوفة أو الكائن فارغًا.
  • not empty: يتحقق مما إذا كانت السلسلة أو المصفوفة أو الكائن غير فارغ.
  • else: يتم التنفيذ إذا لم يتم استيفاء أي من الشروط الأخرى.

مثال:

  • msg.payload أكبر من 50

الإدخال

تقبل العقدة كائن msg.
يتم تحديد الخصائص المحددة التي سيتم التحقق منها في حقل الخاصية.


الإخراج

ترسل العقدة رسالة msg إلى المخرج الذي يتوافق مع الشرط المحدد.
إذا لم تلبِ الرسالة أي شرط، فلن يتم إرسالها إلى المخرجات.


أمثلة الاستخدام

المثال 1: تصفية بيانات درجة الحرارة

المهمة:
تصنيف البيانات إلى ثلاث فئات: درجة حرارة منخفضة، طبيعية، وعالية.

التدفق:

[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]

إعدادات عقدة switch:

  • الخاصية: msg.payload
  • الشروط:
    1. is less than 10 → المخرج 1
    2. is between 10 and 30 → المخرج 2
    3. is greater than 30 → المخرج 3

النتيجة:
سيتم توجيه درجات الحرارة بناءً على قيمتها.