Home API برای iOS همه دستگاههای موجود در بومسازگان Google Home را در یک مدل داده یکپارچه ارائه میدهد. این مدل داده همه انواع دستگاهها (از Google Nest یا سازندگان طرف سوم) را، صرفنظر از فناوری خانه هوشمند زیربنایی (مانند Matter یا Cloud-to-cloud)، پوشش میدهد و یک سطح API مشترک برای ساختن تجربههای کاربری برای توسعهدهندگان smart home و برنامه تلفن همراه ارائه میدهد.
انواع دستگاه
انواع دستگاههای ارائهشده در Home API یکپارچهسازی مدلهای داده Matter و Cloud-to-cloud هستند. برخی مستقیماً از Matter مشتق شدهاند، برخی افزونهای از انواع دستگاههای Matter هستند، و برخی از Cloud-to-cloud مشتق شدهاند.
انواع دستگاهها حاوی ویژگیهایی هستند که برای کنترل و مدیریت دستگاهها استفاده میشوند. مانند انواع دستگاه، ویژگیها از خوشههای Matter و ویژگیهای Cloud-to-cloud مشتق شدهاند و در قالب مشترکی ارائه میشوند که مشابه قالب خوشههای Matter است. در Home APIs، ویژگیهای مشتقشده از Matter ویژگی نامیده میشوند، نه خوشه.
به همین دلیل، انواع و ویژگیهای دستگاه در Home API بهگونهای طراحی شدهاند که Matter-محور باشند. نوع دستگاه یا ویژگی Matter بر آنالوگ Cloud-to-cloud اولویت دارد.
برای مشاهده فهرست انواع دستگاه و ویژگیهای آنها، انواع دستگاههای پشتیبانیشده در iOS را ببینید.
ویژگیها
نسخههای Swift ویژگیها برای استفاده در Home API تولید میشوند و حاوی ویژگیهای اضافی مختص Home API هستند (در Matter یا Cloud-to-cloud یافت نمیشوند). برای مثال، هر ویژگی روشهایی برای بررسی اینکه آیا ویژگی از یک مشخصه یا فرمان خاص پشتیبانی میکند یا نه دارد. این امر هنگام تعیین اینکه آیا خواندن وضعیت یا کنشهای خاصی میتواند در دستگاه کاربر انجام شود یا نه مفید است، زیرا انتظار نمیرود همه دستگاهها در یک نوع دستگاه ویژگیهای کاملاً یکسانی داشته باشند.
برای وارد کردن ویژگیها و انواع دستگاه، واحد GoogleHomeTypes را به برنامهتان وارد کنید:
import GoogleHomeTypes
همچنین میتوانید از typealias برای نامهای ویژگی و نوع دستگاه استفاده کنید تا کد را کوتاه کنید
و از تکرار فضای نام جلوگیری کنید:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
اکثر مشخصهها برای استفاده با «خودکارسازیها» پشتیبانی میشوند و برخیاز مشخصهها فقط برای «خودکارسازیها» دردسترس هستند. برای جزئیات بیشتر، پشتیبانی از ویژگی Automation API در Android را ببینید.
ترکیب نوع دستگاه
Home API از اکثر خوشههای برنامه Matter
بهعنوان ویژگی در مدل داده پشتیبانی میکند. خوشههای پیکربندی سطح پایین که ابزار سودمند مستقیم برای کاربران نهایی ارائه نمیدهند، مثل Binding، مستقیماً ازطریق Home API نمایش داده نمیشوند. برای کسب اطلاعات بیشتر درباره «گروههای دستگاه»، به Structure API مراجعه کنید.
ویژگیهای مشتقشده از ویژگیهای خانه هوشمند Cloud-to-cloud معمولاً
نام یکسانی بین Cloud-to-cloud و Home API دارند، مانند
مثال OpenCloseTrait. سایر دستگاهها بهعنوان افزونههای ویژگیهای Matter نشان داده میشوند که بااستفاده از افزونههای مختص سازنده Matter ایجاد شدهاند. این ویژگیها شکاف موجود برای ویژگی
smart home را که در آن عملکرد بین
Matter SDK و بومسازگان Google Home تقسیم شده است پر میکنند. نمونه خاصی از این مورد، انواع دستگاه Google* است که از Cloud-to-cloud میآید اما هنوز آنالوگهای Matter ندارد.
انواع دستگاه از ویژگیهای یک یا هر دو منبع تشکیل شدهاند، Matter یا Cloud-to-cloud.
برای مثال،
FanDeviceType
از هر دو تشکیل شده است و سه ویژگی دارد:
- مشخصه
IdentifyTraitMatter همه عملکردهای MatterIdentifyTraitرا ارائه میدهد. - مشخصه
FanControlTraitMatter همه عملکردهای MatterFanControlTraitرا ارائه میدهد. - ویژگی
ExtendedFanControlTraitGoogle همه عملکردهای smart homeFanSpeedTraitGoogle را که تحت پوشش ویژگیFanControlTraitMatter نیست ارائه میدهد.
این نوع ترکیب ویژگی، مدلی انعطافپذیر برای عملکرد کامل نوع دستگاه ارائه میدهد و مدلهای داده smart home زیربنایی را انتزاعی میکند.
گروههای دستگاه
گروه دستگاه نشاندهنده مجموعهای از دستگاهها است که کاربر در یک ساختار واحد تعریف کرده است. عضویت گروه در سرویسهای Google حفظ میشود و برای دیگر اعضای ساختار و دیگر برنامههایی که به ساختار دسترسی دارند قابلمشاهده است.
گروههای دستگاه با موجودیت
DeviceGroup
نمایش داده میشوند که با
HomeDevice
متفاوت است. هر
HomeDevice گروههایی را که ازطریق
GroupMembershipTrait به آنها تعلق دارد فهرست میکند،
بنابراین برنامهتان میتواند عضویتهای گروه را بررسی کند و مستقیماً روی دستگاههای عضو گروه تکرار کند. علاوهبراین، DeviceGroup با پروتکل HasParts مطابقت دارد تا انواع دستگاههای پشتیبانیشده توسط دستگاههای عضو خود را هنگام هدف قرار دادن گروه بهعنوان یک کل، نمایش دهد.
برای اطلاعات بیشتر درباره گروههای دستگاه، به میاناهای برنامهسازی کاربردی ساختار و کنترل گروه دستگاه مراجعه کنید.