مدل داده در اندروید

رابط‌های برنامه‌نویسی کاربردی (API) خانه برای اندروید، تمام دستگاه‌های موجود در اکوسیستم گوگل هوم را در یک مدل داده یکپارچه ارائه می‌دهند. این مدل داده، انواع دستگاه‌ها (از گوگل نست یا تولیدکنندگان شخص ثالث) را صرف نظر از فناوری خانه هوشمند زیربنایی (مانند Matter یا Cloud-to-cloud ) پوشش می‌دهد و یک سطح API مشترک برای ایجاد تجربیات کاربری هم برای توسعه‌دهندگان smart home و هم برای توسعه‌دهندگان برنامه‌های تلفن همراه فراهم می‌کند.

انواع دستگاه

انواع دستگاه‌های ارائه شده در رابط‌های برنامه‌نویسی کاربردی خانگی (Home APIs)، ترکیبی از مدل‌های داده Matter و Cloud-to-cloud هستند. برخی مستقیماً از Matter مشتق شده‌اند، برخی بسطی از انواع دستگاه‌های Matter هستند و برخی دیگر از Cloud-to-cloud مشتق شده‌اند.

انواع دستگاه‌ها شامل ویژگی‌هایی هستند که برای کنترل و مدیریت دستگاه‌ها استفاده می‌شوند. مانند انواع دستگاه‌ها، ویژگی‌ها از خوشه‌های Matter و ویژگی‌های Cloud-to-cloud مشتق شده‌اند و در قالبی مشترک ارائه می‌شوند که مشابه خوشه‌های Matter است. در APIهای Home، ویژگی‌های مشتق‌شده از Matter ، ویژگی نامیده می‌شوند، نه خوشه .

به همین ترتیب، انواع و ویژگی‌های دستگاه‌ها در APIهای Home به گونه‌ای در نظر گرفته شده‌اند که اولویت با Matter باشد. نوع یا ویژگی دستگاه Matter بر آنالوگ Cloud-to-cloud اولویت دارد.

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

صفات

نسخه‌های کاتلین از traitها برای استفاده در APIهای Home تولید می‌شوند و شامل ویژگی‌های اضافی مختص به APIهای Home هستند (که در Matter یا Cloud-to-cloud یافت نمی‌شوند). به عنوان مثال، هر trait دارای متدهایی برای بررسی این است که آیا یک trait از یک ویژگی یا دستور خاص پشتیبانی می‌کند یا خیر. این امر هنگام تعیین اینکه آیا خواندن وضعیت یا اقدامات خاص می‌تواند روی دستگاه کاربر انجام شود یا خیر، مفید است، زیرا انتظار نمی‌رود همه دستگاه‌های یک نوع دستگاه، ویژگی‌های یکسانی داشته باشند.

هر ویژگی در فضای نام مخصوص به خود قرار دارد و برای استفاده باید به صورت جداگانه وارد شود.

برای مثال، برای استفاده از ویژگی Matter On/Off و نوع دستگاه On/Off Plug-in Unit، بسته‌های زیر را به برنامه خود وارد کنید:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

برای نوع دستگاه گاراژ (از خانه هوشمند گوگل)، ترکیبی از ویژگی‌های Matter و Google را وارد کنید:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

Android Studio قابلیت تکمیل خودکار دارد و اغلب هنگام اضافه کردن خطوط import به فایل‌های منبع در پروژه، نام کامل بسته‌ها را برای شما مدیریت می‌کند. با این حال، نام بسته‌ها در همه انواع و ویژگی‌های دستگاه‌ها یکسان نیست. برای تأیید نام صحیح بسته برای هر DeviceType یا Trait به مرجع مراجعه کنید.

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

ترکیب نوع دستگاه

رابط‌های برنامه‌نویسی کاربردی خانگی (Home APIs) از اکثر خوشه‌های برنامه‌های کاربردی Matter به عنوان ویژگی‌هایی (traits) در مدل داده پشتیبانی می‌کنند. ویژگی‌هایی که با کنترل دستگاه یا وضعیت‌ها مطابقت ندارند و هیچ کاربردی برای کاربران نهایی ارائه نمی‌دهند، مانند اتصال (Binding) و گروه‌ها (Groups)، از طریق رابط‌های برنامه‌نویسی کاربردی خانگی (Home APIs) در معرض نمایش قرار نمی‌گیرند.

ویژگی‌های مشتق‌شده از ویژگی‌های خانه هوشمند Cloud-to-cloud معمولاً نام یکسانی بین APIهای Cloud-to-cloud و Home دارند، مانند مثال OpenClose. برخی دیگر به عنوان افزونه‌هایی از ویژگی‌های Matter نمایش داده می‌شوند که با استفاده از افزونه‌های خاص سازنده Matter ایجاد شده‌اند. این ویژگی‌ها شکاف بین یک ویژگی smart home را پر می‌کنند که در آن عملکرد بین Matter SDK و اکوسیستم Google Home تقسیم می‌شود. یک مثال خاص از این، انواع دستگاه‌های Google* هستند که از Cloud-to-cloud می‌آیند اما هنوز معادل Matter ندارند.

انواع دستگاه‌ها از ویژگی‌های یک یا هر دو منبع، Matter یا Cloud-to-cloud تشکیل شده‌اند.

برای مثال، نوع دستگاه فن از هر دو تشکیل شده و دارای سه ویژگی است:

  • ویژگی Identify Matter تمام عملکردهای Matter Identify را ارائه می‌دهد.
  • ویژگی FanControl Matter تمام قابلیت‌های ویژگی Matter FanControl را ارائه می‌دهد.
  • قابلیت ExtendedFanControl Google تمام قابلیت‌های قابلیت FanSpeed ​​گوگل smart home را که قابلیت FanControl Matter آن را پوشش نمی‌دهد، ارائه می‌دهد.

این نوع ترکیب ویژگی‌ها، یک مدل انعطاف‌پذیر برای عملکرد کامل انواع دستگاه‌ها فراهم می‌کند و مدل‌های داده smart home زیربنایی را خلاصه می‌کند.