APIهای Home همه دستگاههای موجود در اکوسیستم Google Home را در یک مدل داده یکپارچه ارائه میکنند. این مدل داده همه انواع دستگاهها (از Google Nest یا سازندگان شخص ثالث) را بدون توجه به فناوری خانه هوشمند زیربنایی (مانند Matter یا Cloud-to-cloud ) پوشش میدهد و یک سطح API مشترک برای ایجاد تجربیات کاربر برای هر دو smart home ارائه میکند. توسعه دهندگان اپلیکیشن های smart home و موبایلی
انواع دستگاه
انواع دستگاههای ارائهشده در APIهای Home، ادغام مدلهای داده Matter و Cloud-to-cloud هستند. برخی مستقیماً از Matter مشتق شدهاند، برخی دیگر توسعهای از انواع دستگاههای Matter هستند و برخی از Cloud-to-cloud مشتق شدهاند.
انواع دستگاه حاوی ویژگی هایی است که برای کنترل و مدیریت دستگاه ها استفاده می شود. مانند انواع دستگاهها، صفات از خوشههای Matter و ویژگیهای Cloud-to-cloud مشتق شدهاند و در قالبی رایج ارائه میشوند که شبیه به خوشههای Matter است. در APIهای Home، صفات مشتق از Matter ، صفات نامیده می شوند، نه خوشه .
به این ترتیب، نوع دستگاه و ویژگیهای موجود در APIهای Home در نظر گرفته شده است که اولاً Matter باشند. نوع یا ویژگی دستگاه Matter بر آنالوگ Cloud-to-cloud اولویت دارد.
برای لیستی از انواع دستگاه ها و ویژگی های آنها ، انواع دستگاه های پشتیبانی شده را ببینید.
صفات
نسخههای کاتلین صفات برای استفاده در APIهای Home تولید میشوند و دارای ویژگیهای اضافی مخصوص APIهای Home هستند (در Matter یا Cloud-to-cloud یافت نمیشوند). به عنوان مثال، هر صفت دارای روش هایی برای بررسی اینکه آیا یک صفت از یک صفت یا دستور خاص پشتیبانی می کند یا خیر. این برای تعیین اینکه آیا خواندن وضعیت یا اقدامات خاصی را می توان در دستگاه کاربر انجام داد مفید است، زیرا انتظار نمی رود همه دستگاه ها در یک نوع دستگاه همه ویژگی های یکسانی داشته باشند.
هر صفت در فضای نام خود قرار دارد و برای استفاده باید به صورت جداگانه وارد شود.
به عنوان مثال، برای استفاده از ویژگی Matter On/Off و نوع دستگاه Plug-in On/Off، بسته های زیر را در برنامه خود وارد کنید:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
برای نوع دستگاه Garage (از خانه هوشمند Google)، ترکیبی از ویژگیهای 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
به مرجع مراجعه کنید.
ویژگیها همچنین برای استفاده با Automations پشتیبانی میشوند، اما ممکن است محدود باشند، و برخی از ویژگیها فقط برای Automations در دسترس هستند. برای فهرست، به پشتیبانی از ویژگی API Automation مراجعه کنید.
ترکیب نوع دستگاه
API های Home از اکثر خوشه های برنامه Matter 1.3 به عنوان ویژگی در مدل داده پشتیبانی می کنند. ویژگیهایی که با کنترل دستگاه یا وضعیتها مطابقت ندارند و هیچ کاربردی برای کاربران نهایی ارائه نمیدهند، مانند Binding و Groups، از طریق APIهای Home در معرض نمایش قرار نمیگیرند.
ویژگیهای مشتق شده از ویژگیهای خانه هوشمند Cloud-to-cloud معمولاً بین Cloud-to-cloud و Home API یک نام دارند، مانند مثال OpenClose. برخی دیگر به عنوان پسوند صفات Matter نشان داده می شوند که با استفاده از پسوندهای سازنده Matter ایجاد شده اند. این ویژگی ها شکاف را برای ویژگی smart home که در آن عملکرد بین Matter SDK و اکوسیستم Google Home تقسیم می شود، پر می کند. یک مثال خاص از این نوع دستگاههای Google*
هستند که از Cloud-to-cloud میآیند اما هنوز آنالوگ Matter ندارند.
انواع دستگاه از صفات یک یا هر دو منبع، Matter یا Cloud-to-cloud تشکیل شده است.
به عنوان مثال، نوع دستگاه فن از هر دو تشکیل شده است و دارای دو ویژگی FanControl است:
- ویژگی FanControl Matter تمام عملکردهای Matter FanControl را فراهم می کند
- ویژگی ExtendedFanControl Google تمام عملکردهای ویژگی FanSpeed smart home Google را ارائه می دهد که توسط ویژگی FanControl Matter پوشش داده نمی شود.
این نوع ترکیب صفت یک مدل انعطافپذیر برای عملکرد کامل نوع دستگاه ارائه میکند و مدلهای داده smart home زیربنایی را انتزاع میکند.