ایجاد هشدار زمانی که دستگاه آفلاین است
این راهنما به شما نشان میدهد چگونه با استفاده از Rule Engine (موتور قوانین) یک هشدار ایجاد کنید زمانی که دستگاه برای مدت زمان مشخصی آفلاین است.
سناریو استفاده
فرض کنید سناریو زیر را دارید:
- دستگاهی به ThingsConnect متصل است و این دستگاه دارای یک حسگر دما است که دادههای تلِمتری را جمعآوری و ارسال میکند.
- ممکن است حسگر دما به دلیل نقصهای مختلف ارسال دادههای تلِمتری را متوقف کند.
در این حالت، باید Rule Engine در ThingsConnect را پیکربندی کنید تا:
- یک هشدار ایجاد کنید اگر دستگاه برای مدت مشخصی غیرفعال بماند. این مدت زمان را میتوان به یکی از دو روش زیر تعریف کرد:
- روش اول: با تغییر پارامتر تنظیمات جهانی برای مدت زمان عدم فعالیت. این پارامتر در فایل ThingsConnect.yml با نام state.defaultInactivityTimeoutInSec تعریف شده است و بهطور پیشفرض روی 10 ثانیه تنظیم شده است.
- روش دوم: با بازنویسی این پارامتر برای یک دستگاه خاص از طریق تنظیم ویژگی سروری "inactivityTimeout" (مقدار بر حسب میلیثانیه تنظیم میشود). این روش در بخشهای بعدی توضیح داده خواهد شد.
- هشدار را پاک کنید اگر دستگاه دوباره فعال شد.
پسزمینه
خدمات وضعیت دستگاه در ThingsConnect مسئولیت نظارت بر وضعیت اتصال دستگاه و تولید رویدادهای مربوط به اتصال دستگاه که به Rule Engine ارسال میشوند را بر عهده دارد.
ThingsConnect از چهار نوع رویداد پشتیبانی میکند:
نوع رویداد |
توضیحات |
---|---|
اتصال (Connect) |
زمانی فعال میشود که دستگاه به ThingsConnect متصل شود. |
قطع اتصال (Disconnect) |
زمانی فعال میشود که دستگاه از ThingsConnect قطع شود. |
فعالیت (Activity) |
زمانی فعال میشود که دستگاه دادههای تلِمتری ارسال کند، یک بهروزرسانی ویژگی انجام دهد یا فرمان RPC را ارسال کند. |
عدم فعالیت (Inactivity) |
زمانی فعال میشود که دستگاه برای مدت زمان مشخصی غیرفعال باشد. |
این راهنما به طور دقیق رویداد عدم فعالیت (Inactivity) دستگاه را توضیح میدهد و به شما نشان میدهد که چگونه:
- هشدارهای عدم فعالیت را با استفاده از Rule Engine (موتور قوانین) ایجاد کنید.
- یک پارامتر برای مدت زمان عدم فعالیت تنظیم کنید.
اضافه کردن دستگاه
- یک موجودیت دستگاه در ThingsConnect اضافه کنید.
- نام دستگاه را به عنوان Temperature device (دستگاه دما) و نوع دستگاه را Temperature sensor (حسگر دما) وارد کنید.
پیکربندی دستگاه
- به مسیر زیر بروید:
Devices -> Temperature device -> Attributes -> Server attributes
سپس روی دکمه Add کلیک کنید. - ویژگی inactivityTimeout را تنظیم کنید، برای مثال، مقداری برابر با 60000 میلیثانیه (60 ثانیه) وارد کنید.
پیکربندی زنجیره قوانین (Rule Chain)
اسکرینشات زیر زنجیره قوانین اولیه (Root Rule Chain) را نشان میدهد. لطفاً توجه کنید که گرههای غیرمرتبط از زنجیره قوانین اصلی حذف شدهاند.
زنجیره قوانین پیشفرض با افزودن دو گره (node) اقدام زیر تغییر کرده است:
- گره ایجاد هشدار (Create alarm node): این گره به گره Message Type Switch با نوع رابطه Inactivity Event (رویداد عدم فعالیت) متصل شده است.
- گره پاک کردن هشدار (Clear alarm node): این گره به گره Message Type Switch با نوع رابطه Activity Event (رویداد فعالیت) متصل شده است.
تصویر زیر نشان میدهد که چگونه زنجیره قوانین نهایی باید به نظر برسد.
- دانلود و وارد کردن زنجیره قوانین، فایل JSON پیوست شده برای زنجیره قوانین بالا را دانلود کرده و آن را وارد کنید.
- فراموش نکنید که زنجیره قوانین جدید را به عنوان root (ریشه) تنظیم کنید.
همچنین، میتوانید زنجیره قوانین جدید را از ابتدا ایجاد کنید. بخش زیر به شما نشان میدهد که چگونه آن را ایجاد کنید.
ایجاد یک زنجیره قوانین جدید (آموزش رویداد عدم فعالیت)
- به بخش Rule Chains بروید و روی Add new Rule Chain کلیک کنید.
- در قسمت Name نام زنجیره قوانین را Tutorial of Inactivity Event وارد کنید، سپس روی دکمه ADD کلیک کنید.
- زنجیره قوانین جدید ایجاد شد. فراموش نکنید که آن را به عنوان root (ریشه) علامتگذاری کنید.
اضافه کردن گرههای مورد نیاز
در این آموزش، شما باید ۵ گره (node) ایجاد کنید که در بخشهای بعدی به تفصیل توضیح داده خواهند شد.
گره Message Type Switch
Message Type Switch node را اضافه کنید و آن را به Input node متصل کنید.
این گره پیامهای ورودی را بر اساس نوع پیام مسیریابی میکند، که شامل موارد زیر است:
- POST_TELEMETRY_REQUEST
- POST_ATTRIBUTES_REQUEST
- ACTIVITY_EVENT
- INACTIVITY_EVENT
در قسمت Name نام گره را Message Type Switch وارد کنید، سپس روی دکمه ADD کلیک کنید.
گره Save Timeseries
Save Timeseries node را اضافه کنید و آن را به Message Type Switch node با نوع رابطه Post telemetry متصل کنید.
این گره دادههای TimeSeries را از payload پیام ورودی در پایگاه داده ذخیره کرده و آنها را به دستگاهی که توسط Message Originator شناسایی شده است، لینک میکند.
در قسمت Name نام گره را Save Time Series وارد کنید.
گره Save Server Attributes
Save Attributes node را اضافه کنید و آن را به Message Type Switch node با نوع رابطه Post attributes متصل کنید.
این گره ویژگیها (attributes) را از payload پیام ورودی در پایگاه داده ذخیره کرده و آنها را به موجودیتی (Entity) که توسط Message Originator شناسایی شده است، لینک میکند.
در قسمت Name نام گره را Save Server Attributes وارد کنید.
گره Create Inactivity Alarm
Create alarm node را اضافه کنید و آن را به Message Type Switch node با نوع رابطه Inactivity Event متصل کنید.
این گره تلاش میکند تا آخرین هشدار (Alarm) را با نوع هشدار پیکربندی شده برای Message Originator بارگذاری کند. اگر هشدار غیرپاکشده (Uncleared Alarm) وجود داشته باشد، آن هشدار بهروزرسانی میشود؛ در غیر این صورت، یک هشدار جدید ایجاد میشود.
- در قسمت Name نام گره را Create Inactivity Alarm و نوع هشدار را Inactivity TimeOut وارد کنید.
گره Clear Inactivity Alarm
Clear alarm node را اضافه کنید و آن را به Message Type Switch node با نوع رابطه Activity Event متصل کنید.
این گره آخرین هشدار (Alarm) را با نوع هشدار پیکربندی شده برای Message Originator بارگذاری میکند و اگر وجود داشته باشد، هشدار را پاک میکند.
- در قسمت Name نام گره را Clear Inactivity Alarm و نوع هشدار را Inactivity TimeOut وارد کنید.
این زنجیره قوانین اکنون آماده است و شما باید آن را ذخیره کنید.
چگونه زنجیره قوانین را تأیید کرده و دادههای تلِمتری را ارسال کنیم
- از رابطهای برنامهنویسی کاربردی (APIs) REST و APIهای بارگذاری دادههای دستگاه برای ارسال دادههای تلمتری دستگاه استفاده کنید.لطفاً توجه داشته باشید که باید توکن دسترسی دستگاه، مانند دستگاه دما، را از خود دستگاه کپی کنید. در اسکرینشات زیر، این موضوع نمایش داده شده است.
سعی کنید دما را برابر با ۲۰ ارسال کنید. زنگ خطر باید یک دقیقه پس از ارسال دادههای تلمتری ایجاد شود:
curl -v -X POST -d '{"temperature":20}' http://localhost:8080/api/v1/$ACCESS_TOKEN/telemetry --header "Content-Type:application/json"
***you need to replace $ACCESS_TOKEN with the actual device token**
همچنین میتوانید:
- داشبورد را با افزودن ویجت زنگ خطر برای نمایش زنگها پیکربندی کنید.
- منطق اضافی برای پردازش زنگ خطر تعریف کنید، به عنوان مثال، ارسال ایمیل.
لطفاً به دو لینک اول در بخش "همچنین ببینید" مراجعه کنید تا نحوه انجام این کار را مشاهده کنید.
همچنین ببینید:
- ایجاد و پاکسازی زنگها: راهنمای پیکربندی داشبورد - برای یادگیری نحوه افزودن ویجت زنگ به داشبورد.
- راهنمای ارسال ایمیل.
- راهنمای وضعیت اتصال دستگاه.
گامهای بعدی:
- راهنمای شروع کار - این راهنماها نمای کلی سریعی از ویژگیهای اصلی ThingsConnect ارائه میدهند و برای تکمیل آنها به ۱۵-۳۰ دقیقه زمان نیاز است.
- اتصال دستگاه خود - یاد بگیرید چگونه دستگاهها را بر اساس فناوری یا راهحل اتصال خود متصل کنید.
- تصویربرداری دادهها - این راهنماها شامل دستورالعملهایی برای پیکربندی داشبوردهای پیچیده ThingsConnect هستند.
- تحلیل دادههای IoT - یاد بگیرید چگونه از موتور قاعده برای انجام وظایف تحلیلی پایه استفاده کنید.
- نمونههای سختافزاری - یاد بگیرید چگونه پلتفرمهای سختافزاری مختلف را به ThingsConnect متصل کنید.
- ویژگیهای پیشرفته - با ویژگیهای پیشرفته ThingsConnect آشنا شوید.
- مشارکت و توسعه - با مشارکت و توسعه در ThingsConnect آشنا شوید.