> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flova.ir/llms.txt
> Use this file to discover all available pages before exploring further.

# مدل ذهنی فلووا

> رابطهٔ Device Type، datastream، firmware، دستگاه و dashboard.

قبل از ساختن اولین دستگاه، پنج واژهٔ فلووا را از هم جدا کنید. بیشتر خطاهای
شروع کار از جایی می‌آیند که این مفاهیم به جای هم استفاده می‌شوند.

## Device Type

Device Type نقشهٔ یک خانواده از دستگاه‌هاست. در آن تعیین می‌کنید دستگاه چه
کانال‌هایی دارد، هر کانال چه نوع مقداری می‌گیرد، خواندنی یا نوشتنی است و در
صورت نیاز به کدام ورودی یا خروجی سخت‌افزاری وصل می‌شود. Device Type خودش منطق
اجرا نمی‌کند و به یک دستگاه فیزیکی خاص تعلق ندارد.

## Datastream

Datastream یک نام و قرارداد برای یک مقدار است. `temperature` می‌تواند یک عدد
خواندنی باشد، `relay` یک وضعیت بولی خواندنی و نوشتنی، و `cook_mode` یک رشته یا
فرمان نرم‌افزاری. همین نام در Console، firmware، automation، dashboard و
query استفاده می‌شود. نام‌های فنی را کوتاه، انگلیسی و ثابت نگه دارید؛ عنوان
نمایشی می‌تواند فارسی باشد.

## Firmware و دستگاه

Firmware برنامه‌ای است که روی برد اجرا می‌شود. دستگاه، یک نمونهٔ واقعی از یک
Device Type با هویت و وضعیت خودش است. یک binary عمومی می‌تواند روی چند دستگاه
فلش شود، چون هویت و secret دستگاه هنگام provisioning ساخته یا تحویل داده
می‌شود و داخل کد قرار نمی‌گیرد.

## Automation

Automation می‌گوید چه رخدادی باعث اجرای چه تصمیمی شود. مثلاً «وقتی
`temperature` بیشتر از ۳۰ شد، `relay` را روشن کن». Console نمودار را ویرایش
می‌کند و Engine آن را اعتبارسنجی و اجرا می‌کند. Firmware فقط نتیجهٔ معتبر را
مثل هر فرمان دیگری دریافت می‌کند.

## Dashboard

Dashboard سطحی است که کاربر نهایی با آن داده را می‌بیند و فرمان می‌دهد. یک
dashboard می‌تواند gauge، switch، chart، متن، اعلان و action داشته باشد. ظاهر
و layout در Studio ساخته می‌شود، اما داده از Device Type و دستگاه انتخاب‌شده
می‌آید. بنابراین بهتر است dashboard را بر اساس قرارداد داده بسازید، نه با
مقادیر ثابت مخصوص یک دستگاه.

```text theme={"system"}
Device Type
    ├── datastream definitions
    ├── hardware mappings
    └── automation
          ↓
       Device + Firmware
          ↓ telemetry / state / commands
       Dashboard + FlovaQL + mobile app
```

وقتی این مسیر را در ذهن داشته باشید، انتخاب بین universal firmware و custom
firmware هم ساده می‌شود: universal مالک بخش بیشتری از مسیر است، custom مالکیت
برنامهٔ موجود شما را حفظ می‌کند.
