گرههای تبدیل
گرههای تبدیل برای تغییر فیلدهای پیام ورودی مانند منشأ، نوع پیام، payload و فراداده استفاده میشوند.
تغییر منشأ
Since TB Version 2.0
تمام پیامهای ورودی در ThingsConnect دارای فیلد منشأ هستند که موجودیتی را که پیام را ارسال کرده شناسایی میکند. این موجودیت میتواند دستگاه، دارایی، مشتری، مستأجر و غیره باشد.
این گره در مواردی استفاده میشود که پیام ارسالی باید به عنوان پیام از موجودیت دیگری پردازش شود. به عنوان مثال، اگر دستگاهی تلهمتری ارسال کند و این تلهمتری باید به دارایی یا مشتری سطح بالاتر کپی شود، مدیر باید این گره را قبل از گره ذخیرهسازی زمانبندیها (Save Timeseries Node) اضافه کند.
منشأ میتواند به یکی از موارد زیر تغییر یابد:
- مشتری منشأ
- مستأجر منشأ
- موجودیت مرتبط که با کوئری روابط شناسایی شده است
در پیکربندی «کوئری روابط»، مدیر میتواند جهت و عمق رابطه مورد نیاز را انتخاب کند. همچنین، مجموعهای از فیلترهای رابطه با نوع رابطه و نوعهای موجودیت مورد نیاز میتواند پیکربندی شود.
اگر چندین موجودیت مرتبط پیدا شود، فقط اولین موجودیت به عنوان منشأ جدید استفاده خواهد شد و سایر موجودیتها نادیده گرفته میشوند.
اگر هیچ موجودیت مرتبط، مشتری یا مستأجر یافت نشود، پیام از طریق زنجیره شکست هدایت میشود؛ در غیر این صورت، از زنجیره موفقیت استفاده خواهد شد.
پیام خروجی دارای شناسه منشأ جدید خواهد بود.
گره تبدیل اسکریپت
Since TB Version 2.0
تغییر payload پیام، فراداده، یا نوع پیام با استفاده از تابع جاوااسکریپت پیکربندیشده.
تابع جاوااسکریپت سه پارامتر ورودی را دریافت میکند:
- msg: payload پیام.
- metadata: فراداده پیام.
- msgType: نوع پیام.
اسکریپت باید ساختار زیر را برگرداند:
{
msg: new payload,
metadata: new metadata,
msgType: new msgType
}
تمام فیلدهای موجود در شیء نتیجه اختیاری هستند و در صورت عدم مشخص شدن، از پیام اصلی گرفته میشوند.
پیام خروجی از این گره پیام جدیدی خواهد بود که با استفاده از تابع جاوااسکریپت پیکربندیشده ساخته شده است.
تابع تبدیل جاوااسکریپت را میتوان با استفاده از «آزمون تابع جاوااسکریپت» بررسی کرد.
مثال
گره پیام با payload زیر را دریافت میکند:
{
"temperature": 22.4,
"humidity": 78
}
فراداده اصلی:
{ "sensorType" : "temperature" }
نوع پیام اصلی - POST_TELEMETRY_REQUEST
تغییرات زیر باید انجام شود:
- تغییر نوع پیام به CUSTOM_UPDATE
- افزودن ویژگی اضافی version به payload با مقدار v1.1
- تغییر مقدار ویژگی sensorType در فراداده به roomTemp
تابع تبدیل زیر تمامی تغییرات لازم را انجام خواهد داد:
var newType = "CUSTOM_UPDATE";
msg.version = "v1.1";
metadata.sensorType = "roomTemp"
return {msg: msg, metadata: metadata, msgType: newType};
برای مشاهده نمونههای واقعی از نحوه استفاده از این گره، میتوانید به آموزشهای زیر مراجعه کنید:
- تبدیل تلهمتری ورودی
- پاسخ به تماسهای RPC
ارسال به گره ایمیل
Since TB Version 2.0
پیام را به پیام ایمیل تبدیل میکند و فیلدهای ایمیل را با مقادیر مشتقشده از فراداده پیام پر میکند. نوع پیام خروجی را به SEND_EMAIL تنظیم میکند تا توسط گره ارسال ایمیل پذیرفته شود. تمام فیلدهای ایمیل میتوانند به گونهای پیکربندی شوند که مقادیر را از فراداده دریافت کنند. همچنین ارسال صفحات HTML و تصاویر را پشتیبانی میکند.
برای مثال، اگر پیام ورودی فیلدی به نام deviceName در فراداده داشته باشد و بدنه ایمیل باید شامل مقدار آن باشد.
در این صورت، مقدار deviceName میتواند با استفاده از قالب ${deviceName} ارجاع داده شود، مانند مثال زیر:
Device ${deviceName} has high temperature
اگر میخواهید HTML یا تصویر ارسال کنید، باید نوع فیلد Mail Body را به HTML یا Dynamic انتخاب کنید. به مثالهای ارسال HTML یا تصویر در ایمیل مراجعه کنید.
علاوه بر این، این گره میتواند پیوستهای ایمیل را آماده کند اگر فراداده پیام ورودی شامل فیلد attachments با ارجاع به فایلهای ذخیرهشده در پایگاه داده باشد. توجه: این بخشی از ویژگی ذخیرهسازی فایل است که در نسخه حرفهای ThingsConnect پشتیبانی میشود.
برای مشاهده مثالهای واقعی از نحوه استفاده از این گره، به آموزشهای زیر مراجعه کنید:
- ارسال ایمیل
- ارسال HTML یا تصویر درون ایمیل