اسناد سامانه اتصال اشیاء
- سامانه اتصال اشیاء چیست؟
- چگونه دستگاه خود را متصل کنیم؟
- مفاهیم کلیدی
- داشبورد
- موتور قوانین
- شروع به کار
- مرور کلی
- صف
- گرهها
- پردازش داده و اکشنها
- اعتبارسنجی دادههای تلهمتری ورودی
- محاسبه تغییرات تلمتری
- تابع داده مبتنی بر تلهمتری دو دستگاه
- تبدیل تلهمتری ورودی
- تبدیل تلهمتری با استفاده از رکورد قبلی
- ایجاد و پاککردن هشدارها
- کار با جزئیات هشدار
- ارسال ایمیل در صورت هشدار
- ارسال ایمیل به مشتری
- استفاده از ربات تلگرام برای دریافت اعلانها و هشدارها
- ایجاد هشدار برای دستگاه آفلاین
- بررسی رابطه بین واحدها
- ارسال درخواست RPC به دستگاه
- خواندن اطلاعات هواشناسی باREST API
- استفاده از صفها برای همگامسازی
- استفاده از صفها برای بازپردازش پیام
- گره های قوانین سفارشی
- قالبسازی
- تجزیه و تحلیل دادهها
- ویژگیهای دیگر
- رفع مشکلات
- یادداشتهای انتشار
- نقشه راه
گرههای خارجی
گرههای خارجی برای تعامل با سیستمهای خارجی استفاده میشوند.
گره AWS SNS
برای تغییر این متن بر روی دکمه ویرایش کلیک کنید. لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است.

- الگوی ARN موضوع - میتواند بهطور مستقیم نام موضوع برای انتشار پیام تنظیم شود یا الگویی استفاده شود که با استفاده از فراداده پیام به نام واقعی ARN موضوع تبدیل شود.
- AWS Access Key ID و AWS Secret Access Key اعتبارنامههای یک کاربر IAM AWS با دسترسی برنامهنویسی هستند. اطلاعات بیشتر در مورد کلیدهای دسترسی AWS را میتوانید اینجا بیابید.
- منطقه AWS باید با منطقهای که موضوعات SNS در آن ایجاد شدهاند مطابقت داشته باشد. لیست فعلی مناطق AWS را میتوانید اینجا مشاهده کنید.
در مثال زیر، نام موضوع به نوع دستگاه بستگی دارد و یک پیام شامل فیلد deviceType در فراداده وجود دارد:
{
deviceType: controller
}
برای انتشار پیام در موضوع کنترلر، این الگو را در الگوی ARN موضوع تنظیم میکنیم:
arn:aws:sns:us-east-1:123456789012:${deviceType}
در زمان اجرا، الگو به arn:aws:sns:us-east-1:123456789012:controller تبدیل میشود.
محتوای منتشرشده - گره، کل محتوای پیام را به SNS منتشر میکند. در صورت نیاز، میتوان زنجیرهای از گرههای تبدیل را برای ارسال محتوای صحیح به SNS پیکربندی کرد.
پیام خروجی از این گره شامل messageId و requestId در فراداده پیام خواهد بود. محتوای اصلی پیام، نوع و منشاء آن تغییر نخواهد کرد.
گره AWS SQS

گره پیامها را به AWS SQS (خدمات صف ساده آمازون) منتشر میکند.

- Queue Type - نوع صف SQS. میتواند Standard یا FIFO باشد.
- Queue URL Pattern - الگو برای ساخت URL صف. به عنوان مثال ${deviceType}. میتوانید URL صف را بهطور مستقیم برای انتشار پیام تنظیم کنید یا از الگوهایی استفاده کنید که با استفاده از فراداده پیام به URL واقعی صف تبدیل میشود.
- Delay - تأخیر به ثانیهها، که برای تأخیر در ارسال یک پیام خاص استفاده میشود.
- Message attributes - لیست اختیاری از ویژگیهای پیام برای انتشار.
- AWS Access Key ID و AWS Secret Access Key - اینها اعتبارنامههای یک کاربر AWS IAM با دسترسی برنامهنویسی شده هستند. اطلاعات بیشتر در مورد کلیدهای دسترسی AWS را میتوانید اینجا پیدا کنید.
- AWS Region باید با منطقهای که صفهای SQS در آن ایجاد شدهاند مطابقت داشته باشد. لیست فعلی مناطق AWS را میتوانید اینجا مشاهده کنید.
در مثال زیر، URL صف به نوع دستگاه بستگی دارد و پیامی که شامل فیلد deviceType در فراداده است، وجود دارد:
{
deviceType: controller
}
برای انتشار پیام در صف کنترلر، این الگو را در الگوی URL صف تنظیم میکنیم:
https://sqs.us-east-1.amazonaws.com/123456789012/${deviceType}
در زمان اجرا، الگو به https://sqs.us-east-1.amazonaws.com/123456789012/controller تبدیل میشود.
محتوای منتشرشده - گره کل محتوای پیام را به SQS منتشر میکند. در صورت نیاز، میتوانید زنجیره قوانین را به گونهای پیکربندی کنید که از زنجیرهای از گرههای تبدیل برای ارسال محتوای صحیح به SQS استفاده کند.
ویژگیهای منتشرشده - لیست اختیاری از ویژگیها میتواند برای انتشار پیام در SQS اضافه شود. این ویژگیها شامل جفتهای کلید-مقدار هستند. هر دو NAME و VALUE میتوانند مقادیر ثابت یا الگوهایی باشند که با استفاده از فراداده پیام به مقادیر واقعی تبدیل میشوند.
اگر صف FIFO انتخاب شده باشد، شناسه پیام به عنوان شناسه حذف تکراری و مبدأ پیام به عنوان شناسه گروه استفاده خواهد شد.
پیام خروجی از این گره شامل messageId، requestId، messageBodyMd5، messageAttributesMd5 و sequenceNumber در فراداده پیام خواهد بود. محتوای اصلی پیام، نوع و مبدأ آن تغییر نخواهد کرد.
گره کافکا

گره Kafka پیامها را به Kafka brokers ارسال میکند. انتظار دارد پیامها با هر نوع پیامی باشند و رکورد را از طریق Kafka producer به Kafka server ارسال میکند.
پیکربندی:

- الگوی موضوع - میتواند یک رشته ثابت یا الگویی باشد که با استفاده از ویژگیهای فراداده پیام به مقدار واقعی تبدیل میشود، مانند ${deviceType}.
- سرورهای بوتاسترپ - فهرستی از بروکرهای کافکا که با کاما از هم جدا شدهاند.
- تعداد تلاشهای خودکار برای تلاش مجدد - تعداد تلاشهایی که برای ارسال مجدد پیام در صورت بروز مشکل در اتصال انجام میشود.
- اندازه دسته تولید - اندازه دسته بر حسب بایت برای گروهبندی پیامها با بخش مشابه.
- زمان بافر محلی - حداکثر مدت زمان بافر محلی به میلیثانیه.
- حداکثر اندازه بافر کلاینت - حداکثر اندازه بافر بر حسب بایت برای ارسال پیامها.
- تعداد تأییدیهها - تعداد تأییدیههایی که گره برای در نظر گرفتن یک درخواست به عنوان کامل نیاز دارد.
- سریالایزر کلید - به طور پیشفرض org.apache.kafka.common.serialization.StringSerializer.
- سریالایزر مقدار - به طور پیشفرض org.apache.kafka.common.serialization.StringSerializer.
- ویژگیهای دیگر - هر ویژگی اضافی دیگری که ممکن است برای اتصال به بروکر کافکا ارائه شود.
بدنه منتشر شده - گره بار کامل پیام را به موضوع کافکا ارسال میکند. اگر لازم باشد، میتوان زنجیره قوانین را به گونهای پیکربندی کرد که از زنجیرهای از گرههای تبدیل برای ارسال بار مناسب به کافکا استفاده کند.
پیام خروجی از این گره شامل ویژگیهای offset، partition و topic در فراداده پیام خواهد بود. بار پیام اصلی، نوع و مبدأ تغییر نخواهد کرد.
توجه - برای استفاده از Confluent Cloud به عنوان بروکر کافکا، باید ویژگیهای زیر را اضافه کنید:
Value | Key |
|---|---|
https | ssl.endpoint.identification.algorithm |
PLAIN | sasl.mechanism |
org.apache.kafka.common.security.plain.PlainLoginModule required username="CLUSTER_API_KEY" password="CLUSTER_API_SECRET"; | sasl.jaas.config |
SASL_SSL | security.protocol |
- CLUSTER_API_KEY - کلید دسترسی که از تنظیمات کلاستر دریافت کردهاید.
- CLUSTER_API_SECRET - رمز عبور دسترسی که از تنظیمات کلاستر دریافت کردهاید.
گره MQTT

پیام ورودی را به موضوع سرور MQTT پیکربندی شده با سطح کیفیت سرویس (QoS) AT_LEAST_ONCE منتشر کنید.
پیکربندی:

- Topic pattern - میتواند یک رشته ثابت یا الگویی باشد که با استفاده از ویژگیهای متادیتای پیام حل میشود. برای مثال، ${deviceType}.
- Host - میزبان سرور MQTT.
- Port - پورت سرور MQTT.
- Connection timeout - زمان انصراف برای اتصال به سرور MQTT به ثانیه.
- Client ID - شناسه اختیاری کلاینت برای اتصال به سرور MQTT. در صورت عدم مشخص شدن، شناسه کلاینت پیشفرض استفاده خواهد شد.
- Add Service ID as suffix to Client ID - یک فلگ اختیاری. شناسه سرویس به عنوان پسوند به شناسه کلاینت اضافه میشود زمانی که این گزینه فعال باشد. این ویژگی در حالت میکروسرویسها مفید است و به گرههای قوانین روی هر نود اجازه میدهد بدون خطا به سرور متصل شوند.
- Clean session - اتصال ناپایدار به سرور را برقرار میکند در صورت فعال بودن.
- SSL Enable/Disable - فعال/غیرفعال کردن ارتباط امن.
- Credentials - اعتبارنامه اتصال MQTT. میتواند به صورت ناشناس، پایه یا PEM باشد.
مدلهای مختلف اعتبارسنجی برای بروکر MQTT خارجی پشتیبانی میشود:
- Anonymous - بدون نیاز به اعتبارسنجی.
- Basic - جفت نام کاربری و کلمه عبور برای اعتبارسنجی استفاده میشود.
- PEM - گواهینامههای PEM برای اعتبارسنجی استفاده میشود.
اگر نوع اعتبارسنجی PEM انتخاب شود، باید موارد زیر پیکربندی شود:
- فایل گواهی CA
- فایل گواهی
- فایل کلید خصوصی
- کلمه عبور کلید خصوصی
بدنه منتشر شده - گره کل بار پیام را به موضوع MQTT ارسال میکند. در صورت نیاز، زنجیره قوانین میتواند بهگونهای تنظیم شود که از زنجیره گرههای تبدیل برای ارسال بار صحیح به بروکر MQTT استفاده کند.
اگر پیام با موفقیت منتشر شود، پیام اصلی از طریق زنجیره موفقیت به گرههای بعدی منتقل خواهد شد. در غیر این صورت، از زنجیره شکست استفاده میشود.
گره مرکز Azure IoT

پیکربندی:

- Topic - برای کسب اطلاعات بیشتر در مورد موضوعات IoT Hub، به این لینک مراجعه کنید.
- Hostname - نام میزبان Azure IoT Hub.
- Device ID - شناسه دستگاه شما از Azure IoT Hub.
- Credentials - اعتبارنامههای اتصال به Azure IoT Hub. این اعتبارنامهها میتوانند یکی از موارد زیر باشند:
گواهینامههای مختلفی برای احراز هویت در Azure IoT Hub پشتیبانی میشوند:
- امضای دسترسی مشترک (Shared Access Signature - SAS): از کلید SAS برای احراز هویت استفاده میشود.
- PEM: از گواهیهای PEM برای احراز هویت استفاده میشود.
در صورت انتخاب گواهینامه Shared Access Signature، پیکربندی زیر باید ارائه شود:
- کلید SAS: این کلید از دستگاه شما در Azure IoT Hub گرفته میشود.
- فایل گواهی CA: بهصورت پیشفرض از گواهی Baltimore استفاده میشود. اطلاعات بیشتر درباره گواهیها
در صورت انتخاب گواهینامه PEM، پیکربندی زیر باید ارائه شود:
- فایل گواهی CA: بهصورت پیشفرض از گواهی Baltimore استفاده میشود. اطلاعات بیشتر درباره گواهیها
- فایل گواهی
- فایل کلید خصوصی
- رمز عبور کلید خصوصی
بدنه منتشرشده (Published Body) - گره (Node) کل دادههای پیام را به دستگاه Azure IoT Hub ارسال میکند. در صورت نیاز، میتوان زنجیره قوانین (Rule Chain) را پیکربندی کرد تا از مجموعهای از گرههای تبدیل (Transformation Nodes) برای ارسال Payload صحیح به Azure IoT Hub استفاده کند.
در صورت انتشار موفقیتآمیز پیام، پیام اصلی از طریق زنجیره موفقیت (Success Chain) به گرههای بعدی ارسال میشود، در غیر این صورت از زنجیره شکست (Failure Chain) استفاده خواهد شد.
گره RabbitMQ

انتشار Payload پیام ورودی به RabbitMQ.
پیکربندی:

- الگوی نام تبادل (Exchange Name Pattern) – تبادلی که پیام به آن ارسال میشود. میتواند یک رشته ثابت باشد یا الگویی که با استفاده از ویژگیهای Metadata پیام مقداردهی میشود. به عنوان مثال: ${deviceType}
- الگوی کلید مسیریابی (Routing Key Pattern) – کلید مسیریابی. میتواند یک رشته ثابت باشد یا الگویی که با استفاده از ویژگیهای Metadata پیام مقداردهی میشود. به عنوان مثال: ${deviceType}
- ویژگیهای پیام (Message Properties) – هدرهای مسیریابی اختیاری. هدرهای پشتیبانیشده: BASIC، TEXT_PLAIN، MINIMAL_BASIC، MINIMAL_PERSISTENT_BASIC، PERSISTENT_BASIC، PERSISTENT_TEXT_PLAIN
- میزبان (Host) – میزبان پیشفرض برای اتصالها
- پورت (Port) – پورت پیشفرض برای اتصالها
- میزبان مجازی (Virtual Host) – میزبان مجازی مورد استفاده هنگام اتصال به Broker
- نام کاربری (Username) – نام کاربری AMQP برای اتصال به Broker
- رمز عبور (Password) – رمز عبور AMQP برای اتصال به Broker
- بازیابی خودکار (Automatic Recovery) – فعال یا غیرفعالسازی بازیابی خودکار اتصال
- زمان انتظار اتصال (Connection Timeout) – زمان انتظار برای برقراری اتصال TCP بر حسب میلیثانیه؛ مقدار صفر برای بینهایت
- زمان انتظار Handshake – زمان انتظار برای Handshake پروتکل AMQP 0-9-1 بر حسب میلیثانیه
- ویژگیهای کلاینت (Client Properties) – ویژگیهای اضافی که هنگام شروع اتصال به سرور ارسال میشوند
بدنه منتشرشده (Published Body) - گره کل Payload پیام را به RabbitMQ ارسال میکند. در صورت نیاز، میتوان زنجیره قوانین (Rule Chain) را برای استفاده از گرههای تبدیل (Transformation Nodes) جهت ارسال Payload صحیح پیکربندی کرد.
در صورت انتشار موفقیتآمیز پیام، پیام اصلی از طریق زنجیره موفقیت (Success Chain) به گرههای بعدی ارسال میشود، در غیر این صورت از زنجیره شکست (Failure Chain) استفاده خواهد شد.
گره فراخوانی

فراخوانی APIهای REST به سرور REST خارجی
پیکربندی:

الگوی URL نقطه پایانی (Endpoint URL Pattern) – میتواند یک رشته ثابت باشد یا الگویی که با استفاده از ویژگیهای Metadata پیام مقداردهی میشود. به عنوان مثال: ${deviceType}
روش درخواست (Request Method) – GET، POST، PUT، DELETE
هدرها (Headers) – هدرهای درخواست، هدر یا مقدار میتواند یک رشته ثابت باشد یا الگویی که با استفاده از ویژگیهای Metadata پیام مقداردهی میشود.
نقطه پایانی URL (Endpoint URL)
URL میتواند یک رشته ثابت یا یک الگو باشد. فقط Metadata پیام برای حل الگوها استفاده میشود. بنابراین، نام ویژگیهایی که در الگوها استفاده میشوند باید در Message Metadata موجود باشد، در غیر این صورت الگوی خام به URL افزوده خواهد شد.
به عنوان مثال، اگر Payload پیام ویژگی deviceType را با مقدار container شامل شود، این الگو:
http://localhost/api/${deviceType}/update
به این صورت حل خواهد شد:
http://localhost/api/container/update
هدرها (Headers)
مجموعهای از نام/مقدار هدرها میتواند پیکربندی شود. این هدرها به درخواست REST افزوده خواهند شد. الگو باید برای پیکربندی هر دو نام و مقدار هدر استفاده شود. به عنوان مثال ${deviceType}. فقط Metadata پیام برای حل الگوها استفاده میشود. بنابراین، نام ویژگیهایی که در الگو استفاده میشوند باید در Message Metadata موجود باشد، در غیر این صورت الگوی خام به هدر افزوده خواهد شد.
بدن درخواست (Request Body)
گره کل Payload پیام را به نقطه پایانی REST پیکربندیشده ارسال خواهد کرد. در صورت نیاز، میتوان زنجیره قوانین را برای استفاده از گرههای تبدیل جهت ارسال Payload صحیح پیکربندی کرد.
پیام خروجی از این گره شامل وضعیت پاسخ، statusCode، statusReason و response headers در Message Metadata خواهد بود. Payload پیام خروجی همانند بدنه پاسخ خواهد بود. نوع و منبع پیام اصلی تغییر نخواهد کرد.
ارسال یک فایل به عنوان بدن درخواست برای ارسال یک فایل به عنوان بدن درخواست، فیلدی به نام attachments به Message Metadata اضافه کنید که uuid فایل در Database ذخیره شده باشد. در این حالت، هر داده پیام نادیده گرفته خواهد شد و فقط محتوای فایل ارسال خواهد شد. برای تعریف نوع محتوای درخواست، از تنظیم هدر استفاده کنید مانند:
Content-Type: application/json; charset=UTF-8
مثالی از Message Metadata برای ارسال یک فایل:
{
"attachments": "e18b6950-dfca-11eb-affb-8db134b46d68"
}
توجه: این بخشی از ویژگی ذخیرهسازی فایل است که توسط نسخه حرفهای ThingsConnect پشتیبانی میشود.
گره ارسال ایمیل

گره پیام ورودی را با استفاده از سرور ایمیل پیکربندیشده ارسال میکند. این گره فقط با پیامهایی کار میکند که با استفاده از گره To Email Transformation Node ایجاد شدهاند، لطفاً این گره را با گره To Email Node از طریق زنجیره موفقیت (Success Chain) متصل کنید.
پیکربندی:

استفاده از تنظیمات SMTP سیستم (Use system SMTP settings) – اگر فعال شود، سرور ایمیل پیشفرض پیکربندیشده در سطح سیستم استفاده خواهد شد.
پروتکل (Protocol) – پروتکل انتقال سرور ایمیل: SMTP یا SMTPS
میزبان SMTP (SMTP Host) – میزبان سرور ایمیل
پورت SMTP (SMTP Port) – پورت سرور ایمیل
زمانمنتظری (Timeout ms) – زمانمنتظری برای خواندن در میلیثانیه
فعالسازی TLS (Enable TLS) – اگر درست باشد، استفاده از دستور STARTTLS فعال خواهد شد (در صورتی که توسط سرور پشتیبانی شود)
نامکاربری (Username) – نامکاربری برای حساب در میزبان ایمیل، در صورت وجود
رمز عبور (Password) – رمز عبور برای حساب در میزبان ایمیل، در صورت وجود
این گره میتواند با سرور ایمیل پیشفرض پیکربندیشده در سطح سیستم کار کند. لطفاً برای جزئیات بیشتر در مورد چگونگی پیکربندی تنظیمات پیشفرض SMTP سیستم به مستندات مراجعه کنید.
اگر به سرور ایمیل خاصی برای این گره نیاز باشد، گزینه استفاده از تنظیمات SMTP سیستم را غیرفعال کرده و سرور ایمیل را بهصورت دستی پیکربندی کنید.
علاوه بر این، این گره میتواند پیوستهای ایمیل ایجاد کند اگر پیام ورودی شامل فیلد attachments در Message Metadata باشد که به فایلهای ذخیرهشده در Database ارجاع میدهد.
پیوستهای متعدد پشتیبانی میشوند. برای ارسال چندین فایل، از ارجاعات (UUIDها) که با کاما جدا شدهاند استفاده کنید و هیچ فاصلهای بین آنها قرار ندهید. در اینجا مثالی از Message Metadata آورده شده است:
{
"attachments": "e18b6950-dfca-11eb-affb-8db134b46d68,17383b4c-6000-4bb8-be04-b1cb15aa18c5"
}
توجه: این بخشی از ویژگی ذخیرهسازی فایل است که توسط نسخه حرفهای ThingsConnect پشتیبانی میشود.
در صورت ارسال موفقیتآمیز ایمیل، پیام اصلی از طریق زنجیره موفقیت (Success Chain) به گرههای بعدی منتقل خواهد شد، در غیر این صورت از زنجیره شکست (Failure Chain) استفاده میشود.
شما میتوانید مثال واقعی از جایی که این گره استفاده شده است را در آموزش بعدی مشاهده کنید:
- ارسال ایمیل