وابستگی به وضعیت سایر ابزارها (Cross-Device Dependency)
بسیاری از قابلیتهای یک ابزار، بهجای اینکه فقط بر اساس دادههای داخلی خودش تصمیم بگیرند، به وضعیت یا مقدار یک Operation از ابزار دیگری در همان پروژه نیاز دارند.
این یک قابلیت عمومی است و مخصوص هیچ حوزه خاصی (مثلاً فقط دما، فقط نور، فقط تشخیص حرکت) نیست. هر Operation از هر ابزاری میتواند به هر Operation از هر ابزار دیگری وابسته شود؛ طراحی این وابستگی کاملاً به خلاقیت شما بهعنوان تولیدکننده بستگی دارد.
سوال کشف قابلیت
پیش از پیادهسازی، این سوال را از خودتان بپرسید:
آیا قابلیتی از این ابزار، به داده یا وضعیت یک Operation از ابزار دیگری در پروژه نیاز دارد؟
اگر پاسخ مثبت است، صفحه تنظیمات اختصاصی (Dedicated Setting HTML) شما باید به نصاب اجازه دهد این وابستگی را با الگوی زیر انتخاب کند:
اتاق (Room) → ابزار (Device) → Operation
برای پیادهسازی این انتخابگر میتوانید از Api های زیر استفاده کنید که پیشتر معرفی شدهاند:
مثالهای کاربردی (صرفاً برای الهامگیری، نه یک قاعده اجباری)
- یک رله برد میخواهد بر اساس مقدار یک سنسور دمای مجزا، تصمیم بگیرد که یک پمپ را روشن یا خاموش کند.
- یک تاچاسکرین میخواهد مقدار چند سنسور دیگر پروژه (دما، رطوبت، نور) را روی صفحه خودش نمایش دهد.
- یک کنترلر پرده میخواهد بر اساس وضعیت یک سنسور نور، تصمیم بگیرد پرده را ببندد یا باز کند.
مقدار انتخابشده (شناسه اتاق/ابزار/Operation) باید مطابق قواعد صفحه ذخیرهسازی تنظیمات در تنظیمات ابزار ذخیره شود تا فریمور شما بداند باید به کدام Operation از کدام ابزار گوش دهد.
دو مکانیزم مکمل برای دریافت مقدار: Snapshot در برابر Live
پس از آنکه وابستگی پیکربندی شد، فریمور برای دریافت مقدار Operation دیگر، به دو مکانیزم مکمل نیاز دارد — نه جایگزین یکدیگر: