«میاناهای برنامهسازی کاربردی خانه» برای Android همه دستگاههای موجود در بومسازگان Google Home را در مدل داده یکپارچه ارائه میدهد. این مدل داده همه انواع دستگاهها (از Google Nest یا سازندگان طرف سوم) را صرفنظر از فناوری خانه هوشمند زیربنایی (مثل Matter یا Cloud-to-cloud) پوشش میدهد و سطح API مشترکی برای ساختن تجربههای کاربر برای توسعهدهندگان smart home و برنامه تلفن همراه ارائه میدهد.
انواع دستگاه
انواع دستگاههای ارائهشده در «میاناهای برنامهسازی کاربردی خانه» یکپارچهسازی مدلهای داده Matter و Cloud-to-cloud است. برخی مستقیماً از Matter مشتق شدهاند، برخی توسعه انواع دستگاه Matter هستند، و برخی از Cloud-to-cloud مشتق شدهاند.
انواع دستگاهها شامل ویژگیهایی است که برای کنترل و مدیریت دستگاهها استفاده میشود. مانند انواع دستگاه، ویژگیها از Matter خوشه و Cloud-to-cloud ویژگی استخراج میشوند و در قالبی مشترک که شبیه به قالب Matter خوشه است ارائه میشوند. در Home APIs، Matter-ویژگیهای مشتقشده ویژگی نامیده میشوند، نه خوشه.
بههمین دلیل، انواع دستگاه و ویژگیها در «میاناهای برنامه کاربردی خانه» بهصورت Matter-اول درنظر گرفته شدهاند. نوع دستگاه یا ویژگی Matter بر معادل Cloud-to-cloud اولویت دارد.
برای مشاهده فهرست انواع دستگاه و ویژگیهای آنها، به انواع دستگاه پشتیبانیشده در Android مراجعه کنید.
ویژگیها
نسخههای Kotlin از ویژگیها برای استفاده در Home APIs تولید میشود و حاوی ویژگیهای اضافی خاص Home APIs است (در Matter یا Cloud-to-cloud یافت نمیشود). برای مثال، هر ویژگی روشهایی برای بررسی اینکه آیا ویژگی از یک فرمان یا صفت خاص پشتیبانی میکند یا نه دارد. این ویژگی هنگام تعیین اینکه آیا خواندن وضعیت یا اقدامات خاصی میتواند در دستگاه کاربر انجام شود مفید است، زیرا انتظار نمیرود همه دستگاههای یک نوع دستگاه دارای همه ویژگیهای یکسان باشند.
هر مشخصه در فضای نام خودش قرار دارد و باید بهصورت جداگانه برای استفاده وارد شود.
برای مثال، برای استفاده از Matter ویژگی «روشن/خاموش» و نوع دستگاه «واحد افزایشی روشن/خاموش» ، بستههای زیر را به برنامهتان وارد کنید:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
برای دستگاه گاراژ نوع (از خانه هوشمند 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، به مرجع مراجعه کنید.
اکثر مشخصهها برای استفاده با «خودکارسازیها» پشتیبانی میشوند و برخیاز مشخصهها فقط برای «خودکارسازیها» دردسترس هستند. برای جزئیات بیشتر، پشتیبانی از ویژگی «میانای برنامهسازی کاربردی خودکارسازی» در Android را ببینید.
ترکیب نوع دستگاه
«میاناهای برنامهسازی کاربردی Home» از اکثر خوشههای برنامه Matter
بهعنوان مشخصه در مدل داده پشتیبانی میکنند. خوشههای پیکربندی سطح پایین که
کارایی مستقیم برای کاربران نهایی ارائه نمیدهند، مثل Binding، ازطریق
«میاناهای برنامهسازی کاربردی خانه» نمایان نمیشوند.
ویژگیهای مشتقشده از ویژگیهای خانه هوشمند Cloud-to-cloud معمولاً
نام یکسانی بین Cloud-to-cloud و «میاناهای برنامهسازی کاربردی خانه» دارند، مانند
مثال OpenClose. سایر موارد بهعنوان افزونههای ویژگیهای
Matter نشان داده میشوند که بااستفاده از افزونههای
ویژه سازنده Matter ایجاد شدهاند. این مشخصهها شکاف بین مشخصه
smart home را پر میکند، جایی که عملکرد بین
Matter «کیت توسعه نرمافزار» و بومسازگان Google Home تقسیم شده است. نمونهای خاص از این مورد، انواع دستگاه Google* است که از Cloud-to-cloud میآیند اما هنوز معادل Matter ندارند.
انواع دستگاه از ویژگیهای یک یا هر دو منبع، Matter یا Cloud-to-cloud، تشکیل شده است.
برای مثال، نوع دستگاه «پنکه» از هر دو تشکیل شده است و سه ویژگی دارد:
- ویژگی
IdentifyMatter همه عملکردهای MatterIdentifyرا ارائه میدهد. - ویژگی
FanControlMatter همه عملکردهای ویژگی MatterFanControlرا ارائه میدهد - ویژگی
ExtendedFanControlGoogle همه عملکردهای ویژگی Google smart homeFanSpeedرا که ویژگیFanControlMatter پوشش نمیدهد ارائه میدهد
این نوع ترکیب مشخصه مدل انعطافپذیری برای عملکرد کامل نوع دستگاه ارائه میدهد و مدلهای داده smart home زیربنایی را انتزاع میکند.
گروههای دستگاه
گروه دستگاه نشاندهنده مجموعه دستگاههای تعریفشده توسط کاربر در یک ساختار واحد است. گروههای دستگاه با نهاد DeviceGroup نشان داده میشوند که با HomeDevice تفاوت دارد.
برای اطلاعات بیشتر درباره «گروههای دستگاه»، Structure APIs (میاناهای برنامهسازی کاربردی ساختار) را ببینید.