کتابخانه ویجت
معرفی
همه داشبوردهای اینترنت اشیا با استفاده از ویجت های ThingsBoard تعریف شده در کتابخانه ویجت ساخته می شوند. هر ویجت قابلیت های کاربر نهایی مانند بصری سازی داده ها، کنترل دستگاه از راه دور، مدیریت آلارم و نمایش محتوای HTML سفارشی ثابت را ارائه میدهد.
انواع ویجت
با توجه به ویژگی های ارائه شده، هر تعریف ویجت نشان دهنده نوع خاصی از ویجت است. پنج نوع ویجت وجود دارد:
- آخرین مقادیر (Latest value)
- سری زمانی(Timeseries)
- RPC (ویجت کنترل)
- ویجت آلارم
- ویجت استاتیک
هر نوع ویجت دارای پیکربندی منبع داده خاص خود و ویجت API مربوطه است. هر ویجت برای تجسم داده ها به منابع داده نیاز دارد. انواع منبع داده موجود به نوع ویجت هر ویجت بستگی دارد:
- دستگاه هدف – این نوع منبع داده در RPC استفاده می شود. اساسا، شما باید دستگاه مورد نظر را برای ویجت RPC مشخص کنید.
- منبع آلارم – این نوع منبع داده در ابزارک های آلارم استفاده می شود. این منبع داده به موجودیت منبع نیاز دارد تا آلارم های مرتبط و فیلدهای آلارم مربوطه را نمایش دهد.
- Entity – این نوع منبع داده در هر دو ویجت سری زمانی و آخرین مقادیر استفاده می شود. اساساً باید موجودیت هدف و کلید سری زمانی یا نام ویژگی را مشخص کنید.
- تعداد موجودیت ها – این نوع منبع داده در ویجت های آخرین مقادیر استفاده می شود. اساساً باید موجودیت هدف را مشخص کنید.
- تابع – این نوع منبع داده در هر دو ویجت سری زمانی و آخرین مقادیر برای اشکال زدایی استفاده می شود. اساسا، شما می توانید یک تابع جاوا اسکریپت را مشخص کنید که داده ها را از یک دستگاه شبیه سازی می کند تا بصری سازی را تنظیم کند.
آخرین مقادیر
نوع ویجت آخرین مقادیر، آخرین مقادیر یک ویژگی موجودیت خاص یا نقطه داده سری زمانی را نمایش می دهد (به عنوان مثال، هر ابزارک Gauge یا Entities Table ویجت). این نوع ویجت ها از مقادیر ویژگی(های) موجودیت یا سری های زمانی به عنوان منبع داده استفاده می کنند. گیج دیجیتال به عنوان مثال مقدار دمای فعلی را نشان می دهد.
سری های زمانی
نوع ویجت سری زمانی مقادیر تاریخی را برای دوره زمانی انتخاب شده یا آخرین مقادیر را در پنجره زمانی خاص نمایش می دهد (به عنوان مثال، “نمودار خطی Timeseries” یا “Timeseries Bar Chart”). این نوع ویجت فقط از مقادیر سری زمانی موجودیت به عنوان منبع داده استفاده میکند. برای تعیین بازه زمانی مقادیر نمایش داده شده، از تنظیمات پنجره زمانی استفاده می شود. پنجره زمانی را می توان در صفحه داشبورد یا در جزئیات ویجت مشخص کرد. این می تواند Real time باشد – بازه زمانی مشخص به صورت پویا تغییر کند، یا بازه زمانی تاریخی – ثابت باشد. همه این تنظیمات بخشی از پیکربندی ویجت سری زمانی هستند. در مثال، نمودار خطی Timeseries مقدار سرعت دستگاه را در زمان واقعی نمایش می دهد.
RPC (ویجت کنترل)
ویجت کنترل اجازه می دهد تا دستورات RPC را به دستگاه ها ارسال کند، به پاسخ های دریافتی از دستگاه رسیدگی و بصری می کند (به عنوان مثال، “Raspberry Pi GPIO Control”). ویجت های RPC با تعیین دستگاه هدف به عنوان نقطه پایانی هدف برای دستورات RPC پیکربندی می شوند. در مثال، ویجت “Basic GPIO Control” دستورات سوئیچ GPIO را ارسال می کند و وضعیت فعلی سوئیچ GPIO را تشخیص می دهد.
ویجت هشدار(آلارم)
نوع ابزارک هشدار آلارم های مربوط به موجودیت مشخص شده را در پنجره زمانی خاص نمایش می دهد (به عنوان مثال، “جدول آلارم ها”). ویجت هشدار با تعیین یک موجودیت به عنوان منبع هشدار و فیلدهای آلارم مربوطه پیکربندی می شود. به عنوان ویجت های سری زمانی، ویجت های هشدار دارای پیکربندی پنجره زمانی برای تعیین بازه زمانی آلارم های نمایش داده شده هستند.
علاوه بر این، پیکربندی شامل پارامترهای “وضعیت زنگ هشدار”، “شدت هشدارها” و “نوع زنگ هشدار” است. پارامتر “Alarm status” وضعیت آلارم های در حال واکشی را مشخص می کند. “شدت هشدارها” فرکانس واکشی آلارم ها را در چند ثانیه کنترل می کند. “نوع زنگ هشدار” به شناسایی علت اصلی زنگ هشدار کمک می کند. به عنوان مثال، “Temperature” و “Low Humidity” دو آلارم متفاوت هستند. در مثال، ویجت “Alarms table” آخرین زنگ هشدار دستگاه را در زمان واقعی نمایش می دهد.
استاتیک
نوع ویجت ایستا محتوای HTML قابل تنظیم ثابت را نمایش می دهد (به عنوان مثال، “کارت HTML”). ویجت های استاتیک از هیچ منبع داده ای استفاده نمی کنند و معمولاً با مشخص کردن محتوای HTML ایستا و سبک های CSS اختیاری پیکربندی می شوند. نمونه ای از ویجت Static “کارت HTML” است که محتوای HTML مشخص شده را نمایش می دهد
نمونه ای از تابع سبک CSS برای تنظیم سبک کارت HTML
.card { font-weight: bold; font-size: 32px; color: #999; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
نمونه ای از کد HTML برای تعیین محتوای کارت
<h1>Static widget title</h1> <div class='card'>Your text here</div>
کتابخانه ویجت ها (باندل ها)
ویجت ها بر اساس اهدافشان در باندل های ویجت دسته بندی می شوند. باندلهای ویجت در سطح سیستم و سطح تننت وجود دارد. نصب اولیه ThingsBoard با یک مجموعه اولیه از باندلهای ویجت در سطح سیستم همراه است. باندل های سطح سیستم را میتوان توسط یک مدیر سیستم مدیریت کرد و برای هر تننت ای در سیستم در دسترس است. باندلهای سطح تننت توسط مدیر تننت قابل مدیریت است و فقط برای این تننت و مشتریانش قابل استفاده است. شما همیشه می توانید با دنبال کردن این راهنما ویجت های خود را پیاده سازی و اضافه کنید.
ویجت های هشدار
باندل ویجتهای آلارم برای بصری سازی آلارمها برای موجودیتهای خاص، هم در حالت بلادرنگ و هم در حالت هیستوری مفید است.
گیج های آنالوگ
باندل گیج های آنالوگ برای بصری سازی دما، رطوبت، سرعت و سایر مقادیر صحیح یا شناور مفید است.
کارت ها
باندل کارت برای بصری سازی دادهها یا ویژگیهای سری زمانی در ویجتهای جدول یا کارت مفید است.
نمودار
باندل نمودارها برای بصری سازی داده های هیستوری یا بلادرنگ با یک پنجره زمانی مفید است.
ویجت های کنترل
باندل ویجت های کنترلی برای بصری سازی وضعیت فعلی و ارسال دستورات RPC به دستگاه های هدف مفید است.
ویجت های تاریخ(DATE)
باندل ویجتهای تاریخ برای تغییر محدوده داده برای سایر ویجتها در داشبورد مفید است.
گیج های دیجیتال
باندل نرم افزاری گیج دیجیتال برای بصری سازی دما، رطوبت، سرعت و سایر مقادیر صحیح یا شناور مفید است.
ویجتهای مدیریت موجودیت
ویجتهای مدیریت موجودیت، الگوهایی از ویجتهای پیچیده هستند که امکان فهرستبندی و ایجاد/بهروزرسانی/حذف دستگاهها و داراییها را فراهم میکنند.
ویجت های گیت وی
باندل ابزارک Gateway برای مدیریت برنامه های افزودنی مفید است.
ویجت های GPIO
باندل ویجت GPIO برای بصری سازی و کنترل وضعیت GPIO برای دستگاه های هدف مفید است.
ویجت های ورودی
باندل ابزارک های ورودی برای اصلاح ویژگی های یک موجودیت مفید است.
ویجت های نقشه ها
باندل ابزارک نقشه برای بصری سازی موقعیت جغرافیایی دستگاه ها و ردیابی مسیرهای دستگاه در هر دو حالت زمان واقعی و تاریخ مفید است.
ویجت های ناوبری
باندل ابزارک ناوبری برای تعریف داشبورد خانگی کاربر مفید است.
ویجت های زمان بندی
باندل های ابزارکهای زمانبندی برای زمانبندی انواع مختلف رویدادها با پیکربندی زمانبندی انعطافپذیر مفید است.
فقط در PE و PaaS موجود است.