تابع داده مبتنی بر تلهمتری از دو دستگاه
این آموزش نشان میدهد که چگونه میتوان دلتا دما را بر اساس قرائتهای دماسنجهای داخلی و خارجی انبار محاسبه کرد.
کاربرد
فرض کنید یک انبار با دو دماسنج دارید: یکی داخلی و دیگری خارجی. در این آموزش، ما موتور قانون ThingsConnect را پیکربندی میکنیم تا به طور خودکار دلتا دماهای داخل و خارج انبار را بر اساس آخرین قرائتهای حسگرهای دما محاسبه کند. لطفاً توجه داشته باشید که این تنها یک مثال تئوریک ساده برای نمایش قابلیتهای این پلتفرم است. شما میتوانید از این آموزش به عنوان پایهای برای سناریوهای بسیار پیچیدهتر استفاده کنید.
پیشنیازها
فرض بر این است که شما راهنماهای زیر را تکمیل کردهاید و مقالات فهرست شده را مرور کردهاید:
- راهنمای شروع کار.
- مرور کلی موتور قانون.
تعریف مدل
ما یک دارایی ایجاد خواهیم کرد که نام آن "Warehouse A" و نوع آن "انبار" خواهد بود.
ما دو دستگاه ایجاد خواهیم کرد که نامهای "Inside Thermometer" و "Outside Thermometer" خواهند داشت و به ترتیب، نوع آنها "دماسنج داخلی" و "دماسنج خارجی" خواهد بود.
ما همچنین باید رابطهای بین دارایی "Warehouse A" و دستگاه "Inside Thermometer" ایجاد کنیم. این رابطه در زنجیره قوانین برای تغییر مبدأ پیامها از دماسنج به خود انبار استفاده خواهد شد. همچنین باید رابطهای بین دستگاه "Inside Thermometer" و دستگاه "Outside Thermometer" برقرار کنیم تا آخرین دما را از "Outside Thermometer" دریافت کنیم.
توجه: لطفاً صفحه مستندات زیر را مرور کنید تا نحوه ایجاد داراییها و روابط را بیاموزید.
جریان پیام
در این بخش، هدف هر گره در این آموزش توضیح داده میشود. سه زنجیره قوانین در این فرآیند دخیل خواهند بود:
- "شبیهسازهای دماسنج" - زنجیره قانون اختیاری برای شبیهسازی دادهها از دو حسگر دما؛
- "زنجیره قانون اصلی" - زنجیره قانونی که واقعاً تلهمتری دستگاهها را در پایگاه داده ذخیره کرده و پیامها را بر اساس نوع دستگاه فیلتر میکند و سپس آن را به زنجیره "Delta Temperature" هدایت میکند؛
- "Delta Temperature" - زنجیره قانونی که در واقع دلتا دما بین دماسنجهای داخل و خارج انبار را محاسبه میکند.
زنجیره قانون شبیهسازهای دماسنج
- گرههای A و B: گرههای مولد
- دو گره مشابه که به صورت دورهای یک پیام ساده با قرائت دمای تصادفی تولید میکنند.
- گره A: شبیهساز دماسنج داخلی
var msg = {
temperature: (20 + 5 * Math.random()).toFixed(1)
};
return {
msg: msg,
metadata: {
deviceType: "indoor thermometer"
},
msgType: "POST_TELEMETRY_REQUEST"
};
- گره B: شبیهساز دماسنج خارجی
var msg = {
temperature: (18 + 5 * Math.random()).toFixed(1)
};
return {
msg: msg,
metadata: {
deviceType: "outdoor thermometer"
},
msgType: "POST_TELEMETRY_REQUEST"
};
توجه: در حالت واقعی، نوع دستگاه بهطور پیشفرض در متادیتای پیام تنظیم میشود.
- گره C: گره زنجیره قوانین
- تمام پیامها را به زنجیره قانون اصلی پیشفرض ارسال میکند.
زنجیره قانون اصلی
- گره D: گره زنجیره قوانین
- پیامهای ورودی را به زنجیره قانون مشخص شده "Delta Temperature" ارسال میکند.
زنجیره قانون دمای دلتا
- گره E: گره سوئیچ
- پیامهای ورودی را بر اساس deviceType که از متادیتای پیام استخراج شده، هدایت میکند. اگر deviceType پیام ورودی "دماسنج داخلی" باشد، به زنجیره از طریق نوع رابطه "داخلی" سوئیچ میکند. در غیر این صورت، اگر deviceType پیام ورودی "دماسنج خارجی" باشد، به زنجیره از طریق نوع رابطه "خارجی" سوئیچ میکند.
function nextRelation(metadata, msg) {
if (metadata.deviceType === 'indoor thermometer') {
return ['indoor'];
} else if (metadata.deviceType === 'outdoor thermometer')
return ['outdoor'];
}
return nextRelation(metadata, msg);
- گرههای F و G: گرههای تبدیل اسکریپت
- دو گره مشابه که نام کلیدهای پیام در payload را بر اساس نوع رابطه از گره قبلی تغییر میدهند، به این صورت که نام کلید از "temperature" به "indoorTemperature" یا "outdoorTemperature" تغییر میکند.
- همچنین یک پیام خروجی جدید ایجاد میکنند که در آن تلهمتری جدید قرار میگیرد.
- گره F: تغییر به دماهای خارجی
var newMsg = {};
newMsg.outdoorTemperature = msg.temperature;
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
- گره G: تغییر به دماهای داخلی
var newMsg = {};
newMsg.indoorTemperature = msg.temperature;
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
- گره H: تغییر مبدأ
- مبدأ پیام را از "دماسنج داخلی" به دارایی مربوطه "Warehouse A" تغییر میدهد و پیام ارسالشده به عنوان پیامی از دارایی پردازش خواهد شد.
- گره I: گره ذخیره دادههای زمانی
- دادههای TimeSeries از payload پیام ورودی را در پایگاه داده ذخیره میکند.
- گره J: گره ویژگیهای مبدأ
- آخرین مقادیر تلهمتری مبدأ پیام را به متادیتای پیام اضافه میکند.
- گره K: گره تبدیل اسکریپت
- یک پیام خروجی جدید ایجاد میکند که در آن تلهمتری جدید "deltaTemperature" قرار میگیرد. این مقدار بهصورت قدر مطلق تفاوت بین مقادیر تلهمتری متادیتای پیام، یعنی "indoorTemperature" و "outdoorTemperature"، محاسبه میشود.
var newMsg = {};
newMsg.deltaTemperature = parseFloat(Math.abs(metadata.indoorTemperature - metadata.outdoorTemperature).toFixed(2));
return {
msg: newMsg,
metadata: metadata,
msgType: msgType
};
- گره L: گره ذخیره دادههای زمانی
- دادههای TimeSeries از payload پیام ورودی را در پایگاه داده ذخیره میکند.
پیکربندی زنجیرههای قوانین
فایل زنجیره قوانین شبیهسازها را بهعنوان یک زنجیره قوانین جدید با نام "Thermometer Emulators" دانلود و وارد کنید. همچنین، فایل زنجیره قانون اصلی را بهعنوان زنجیره قانون جدید با نام "Root rule chain" و فایل "Delta Temperature" را وارد کنید. لطفاً توجه داشته باشید که برخی از گرهها دارای حالت اشکالزدایی فعال هستند.
اعتبارسنجی جریان
فایل داشبورد را دانلود و بهعنوان داشبورد جدید با نام "Warehouse dashboard" وارد کنید.
مراحل بعدی
- راهنمای شروع سریع - این راهنماها نمای کلی از ویژگیهای اصلی Thingsconnect را ارائه میدهند و طراحی شدهاند تا در 15-30 دقیقه تکمیل شوند.
- اتصال دستگاه خود - نحوه اتصال دستگاهها بر اساس فناوری یا راهحل اتصال خود را بیاموزید.
- تصویربرداری دادهها - این راهنماها شامل دستورالعملهایی برای پیکربندی داشبوردهای پیچیده در Thingsconnect هستند.
- پردازش دادهها و اقدامات - نحوه استفاده از موتور قانون Thingsconnect را یاد بگیرید.
- نمونههای سختافزاری - نحوه اتصال پلتفرمهای سختافزاری مختلف به Thingsconnect را بیاموزید.
- ویژگیهای پیشرفته - با ویژگیهای پیشرفته Thingsconnect آشنا شوید.
- مشارکت و توسعه - با فرآیند مشارکت و توسعه در Thingsconnect آشنا شوید.