Skip to main content
Datastream مرز مشترک بین سخت‌افزار و محصول شماست. سنسور، کلید، خروجی، وضعیت و فرمان همگی از همین مسیر عبور می‌کنند. اگر این قرارداد شفاف باشد، همان داده را می‌توان در firmware گزارش کرد، در automation شرط گذاشت، در dashboard نمایش داد و با FlovaQL پرس‌وجو کرد.

کلید و عنوان

key نام فنی است و باید با حروف انگلیسی شروع شود و فقط حروف، عدد و underscore داشته باشد. این کلید را بعداً بی‌دلیل عوض نکنید؛ queryها و automationها به آن وابسته‌اند. name یا عنوان نمایشی می‌تواند توضیحی و فارسی باشد.

نوع و حالت دسترسی

فلووا در firmware رسمی سه نوع پایهٔ boolean، double و string دارد. در Device Type، حالت دسترسی را نیز تعیین می‌کنید: رفتار کانال می‌تواند telemetry، state، command یا event باشد. از telemetry برای اندازه‌گیری‌های پیوسته، از state برای وضعیت قابل‌مشاهده، از command برای درخواست عمل و از event برای رخدادهای لحظه‌ای استفاده کنید.

write و report

در SDK، write(value) یک تغییر درخواستی است و از handler مربوط به سخت‌افزار عبور می‌کند. report(value) می‌گوید دستگاه چنین مقداری را مشاهده کرده است و handler فرمان را اجرا نمی‌کند. این تفاوت برای جلوگیری از حلقهٔ ناخواسته مهم است: سنسور باید report کند، اما رله باید فرمان را از مسیر write بگیرد.
مقدار ردشده نباید به‌عنوان وضعیت موفق ذخیره یا منتشر شود. برای رفتار قطع شبکه نیز policy مناسب انتخاب کنید؛ مثلاً KeepLatest برای actuatorهایی که آخرین فرمان معتبر را بعد از reconnect می‌خواهند.

نکتهٔ طراحی

هر چیزی را datastream نکنید. یک مقدار فقط وقتی باید کانال مستقل داشته باشد که قرار است در محصول دیده شود، به فرمان تبدیل شود، در automation استفاده شود یا تاریخچهٔ آن اهمیت داشته باشد. کانال‌های داخلی و موقت را در برنامهٔ خودتان نگه دارید.