کار با جزئیات هشدار

مورد استفاده

این آموزش بر اساس آموزش ایجاد و پاک‌سازی هشدارها و مورد استفاده آن است. ما از زنجیره‌های قانونی موجود در آموزش مذکور استفاده خواهیم کرد و عملکرد جزئیات هشدار را در گره‌های ایجاد و پاک‌سازی هشدار پیکربندی خواهیم کرد. فرض کنید دستگاه شما از سنسور DHT22 برای جمع‌آوری و ارسال خوانش‌های دما به ThingsConnect استفاده می‌کند. سنسور DHT22 برای خوانش دما در محدوده -40 تا 80 درجه سانتی‌گراد مناسب است. ما می‌خواهیم هشدارهایی را در صورتی که دما از محدوده مناسب خارج شود، تولید کنیم.

در این آموزش، ما ThingsConnect Rule Engine را به گونه‌ای پیکربندی خواهیم کرد که:

  • تعداد به‌روزرسانی‌های دمای بحرانی برای هر دستگاه را شمارش کرده و این اطلاعات را در جزئیات هشدار ذخیره کند.
  • آخرین مقدار دمای بحرانی را در جزئیات هشدار ذخیره کند.

پیش‌نیازها

ما فرض می‌کنیم که راهنماهای زیر را تکمیل کرده‌اید و مقالات فهرست‌شده در زیر را بررسی کرده‌اید:

  • راهنمای شروع به کار.
  • مرور کلی موتور قوانین.
  • راهنمای ایجاد و پاک‌سازی هشدارها.

جریان پیام

در این بخش، هدف هر گره در این آموزش توضیح داده می‌شود:

  • گره A: گره ایجاد هشدار.
    • هشدار را ایجاد یا به‌روزرسانی می‌کند اگر دمای منتشر شده در محدوده زمان مورد انتظار نباشد (گره فیلتر اسکریپت مقدار True را برمی‌گرداند).
  • گره B: گره پاک‌سازی هشدار.
    • هشدار را در صورتی که وجود داشته باشد، پاک می‌کند اگر دمای منتشر شده در محدوده زمان مورد انتظار باشد (گره اسکریپت مقدار False را برمی‌گرداند).
  • گره C: گره زنجیره قوانین.
    • پیام ورودی را به زنجیره قوانین مشخص‌شده "ایجاد و پاک‌سازی هشدارها" با جزئیات ارسال می‌کند.

پیکربندی زنجیره‌های قوانین

در این آموزش، ما تنها زنجیره قوانین ایجاد و پاک‌سازی هشدارها را تغییر داده‌ایم، به عبارت دیگر، عملکرد جزئیات هشدار را در گره‌هایی که در بخش "جریان پیام" توصیف شد، پیکربندی کرده‌ایم. همچنین، این زنجیره قوانین را به "ایجاد و پاک‌سازی هشدارها با جزئیات" تغییر نام دادیم.

تصاویر زیر نحوه نمایش زنجیره‌های قوانین فوق را نشان می‌دهند:

  • ایجاد و پاک‌سازی هشدارها با جزئیات:
image
  • زنجیره قوانین ریشه:
image

برای زنجیره قوانین "ایجاد و پاک‌سازی هشدارها با جزئیات"، فایل JSON پیوست شده را دانلود کنید. گره C را همان‌طور که در تصویر بالا نشان داده شده است، در زنجیره قوانین ریشه ایجاد کنید تا داده‌های سنجش را به زنجیره قوانین وارد شده ارسال کند.

بخش‌های زیر نحوه تغییر این زنجیره قوانین، به‌ویژه گره‌های قوانین A و B را نشان می‌دهند.

تغییر "ایجاد و پاک‌سازی هشدارها با جزئیات":

تغییر گره‌های مورد نیاز

در این زنجیره قوانین، شما ۲ گره را تغییر خواهید داد که در بخش‌های زیر توضیح داده خواهند شد:

گره A: ایجاد هشدار

اگر دمای منتشر شده در محدوده زمان مورد انتظار نباشد (گره اسکریپت مقدار True را برمی‌گرداند)، ما می‌خواهیم یک هشدار ایجاد کنیم. همچنین می‌خواهیم دمای جاری را به فیلد "جزئیات هشدار" اضافه کنیم. علاوه بر این، اگر هشدار قبلاً وجود دارد، می‌خواهیم فیلد "تعداد" را در "جزئیات هشدار" افزایش دهیم، در غیر این صورت، تعداد را به 1 تنظیم کنیم.
برای انجام این کار، تابع جزئیات را بازنویسی خواهیم کرد:

تابع جزئیات:

				
					var details = {};
details.temperature = msg.temperature;

if (metadata.prevAlarmDetails) {
    var prevDetails = JSON.parse(metadata.prevAlarmDetails);
    details.count = prevDetails.count + 1;
} else {
    details.count = 1;
}

return details;
				
			

تابع جزئیات شیء مورد نیاز "جزئیات" را با پارامترهای اولیه ایجاد می‌کند. سپس، در دستور if، بررسی می‌شود که آیا این هشدار جدید است یا هشدار قبلاً وجود دارد. اگر وجود داشته باشد، فیلد "تعداد" قبلی را گرفته و آن را افزایش می‌دهیم.

image

اگر هشدار جدیدی در گره ایجاد هشدار ایجاد شده باشد، از طریق رابطه "ایجاد شده" به سایر گره‌ها منتقل می‌شود، در صورتی که این رابطه وجود داشته باشد. اگر هشدار به‌روزرسانی شده باشد، از طریق رابطه "به‌روزرسانی شده" به سایر گره‌ها منتقل می‌شود، در صورتی که این رابطه وجود داشته باشد.

گره B: پاک‌سازی هشدار

اگر دمای منتشر شده در محدوده زمان مورد انتظار باشد (گره اسکریپت مقدار False را برمی‌گرداند)، ما قصد داریم هشدار موجود را پاک کنیم. همچنین، در هنگام پاک‌سازی، آخرین دما را به جزئیات هشدار موجود اضافه خواهیم کرد.

برای این منظور، تابع جزئیات را بازنویسی خواهیم کرد:

				
					var details = {};
if (metadata.prevAlarmDetails) {
    details = JSON.parse(metadata.prevAlarmDetails);
}
details.clearedTemperature = msg.temperature;

return details;
				
			
image

اگر گره "پاک‌سازی هشدار" نتواند هشدار موجود را پیدا کند، هیچ تغییری صورت نمی‌گیرد و پیام اصلی از طریق رابطه "False" به سایر گره‌ها منتقل می‌شود، در صورتی که این رابطه وجود داشته باشد. اگر هشدار وجود داشته باشد، پاک‌سازی شده و از طریق رابطه "پاک‌شده" به سایر گره‌ها منتقل می‌شود.

پیکربندی زنجیره به پایان رسید و باید آن را ذخیره کنیم.

پیکربندی داشبورد

فایل JSON پیوست شده برای داشبوردی که در این آموزش نشان داده شده است را دانلود کرده و وارد کنید.

  • به مسیر Dashboards -> Add New Dashboard -> Import Dashboard بروید و فایل JSON دانلود شده را در اینجا بارگذاری کنید. همچنین می‌توانید داشبورد جدیدی از ابتدا ایجاد کنید و بخش‌های زیر نحوه انجام این کار را نشان می‌دهند:

ما داشبوردی برای تمامی دستگاه‌های ترموستات ایجاد خواهیم کرد و ویجت هشدار را به آن اضافه خواهیم کرد. داشبورد جدید را ایجاد کنید:

ایجاد داشبورد

ما داشبوردی برای تمام دستگاه‌های ترموستات ایجاد خواهیم کرد و ویجت زنگ هشدار را به آن اضافه خواهیم کرد. داشبورد جدید را ایجاد کنید:

image

روی "ویرایش داشبورد" کلیک کنید و نام مستعاری اضافه کنید که به تمام دستگاه‌های با نوع ترموستات ارجاع داده شود:

image

ویجت زنگ هشدار را به داشبورد اضافه کنید (اضافه کردن ویجت جدید -> بسته ویجت زنگ هشدار -> زنگ‌ها). منبع زنگ هشدار برای نام مستعار پیکربندی‌شده را انتخاب کنید. همچنین، فیلدهای زنگ هشدار اضافی را اضافه کنید:

  • details.temperature
  • details.count
  • details.clearedTemperature

و بر روی دکمه ویرایش در کنار هر فیلد کلیک کنید تا برچسب هر فیلد را تغییر دهید:

  • از: -> به:
    • details.temperature -> دمای رویداد
    • details.count -> تعداد رویدادها
    • details.clearedTemperature -> دمای پاک‌شده

image

ارسال داده‌های سنسور و بررسی

برای ارسال داده‌های سنسور دستگاه، از API Rest (لینک) استفاده خواهیم کرد. برای این کار، باید توکن دسترسی دستگاه را از دستگاه ترموستات خانه کپی کنیم.

image

*شما باید $ACCESS_TOKEN را با توکن واقعی دستگاه جایگزین کنید.

حالا دمای ۹۹ را ارسال کنید. باید زنگ هشدار ایجاد شود:

				
					curl -v -X POST -d '{"temperature":99}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
				
			
image

حالا دمای ۱۸۰ را ارسال کنید. زنگ هشدار باید به‌روزرسانی شود و فیلد تعداد باید افزایش یابد:

				
					curl -v -X POST -d '{"temperature":180}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
				
			
image

حالا دمای ۳۰ را ارسال کنید. زنگ هشدار باید پاک شود و دمای پاک‌شده باید نمایش داده شود:

				
					curl -v -X POST -d '{"temperature":30}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
				
			
image

همچنین، می‌توانید نحوه‌ی تعریف منطق اضافی برای پردازش زنگ هشدار، مانند ارسال ایمیل یا ارسال اعلان به اپلیکیشن تلگرام، را مشاهده کنید.

لطفاً به لینک‌های موجود در بخش "مشاهده همچنین" مراجعه کنید تا نحوه‌ی انجام این کار را ببینید.

مشاهده همچنین

  • راهنمای ارسال ایمیل
  • راهنمای اعلان‌ها و زنگ هشدارها بر روی گوشی هوشمند شما با استفاده از ربات تلگرام

مراحل بعدی:

  • راهنمای شروع سریع: این راهنماها نمای کلی از ویژگی‌های اصلی Thingsconnect ارائه می‌دهند و برای تکمیل آن‌ها ۱۵-۳۰ دقیقه زمان نیاز است.
  • اتصال دستگاه خود: یاد بگیرید چگونه دستگاه‌ها را بر اساس فناوری یا راه‌حل ارتباطی خود متصل کنید.
  • تصویرسازی داده‌ها: این راهنماها شامل دستورالعمل‌هایی برای پیکربندی داشبوردهای پیچیده Thingsconnect هستند.
  • تحلیل داده‌های IoT: یاد بگیرید چگونه از موتور قوانین برای انجام وظایف تحلیل پایه استفاده کنید.
  • نمونه‌های سخت‌افزاری: یاد بگیرید چگونه پلتفرم‌های سخت‌افزاری مختلف را به Thingsconnect متصل کنید.
  • ویژگی‌های پیشرفته: با ویژگی‌های پیشرفته Thingsconnect آشنا شوید.
  • مشارکت و توسعه: با مشارکت و توسعه در Thingsconnect آشنا شوید.

عناوین هر بخش