APIهای Google Home برای Android یک سطح API یکپارچه ارائه میکنند تا توسعهدهندگان بتوانند با وضعیت موجودات در خانه کاربر تعامل داشته باشند. این نهادها میتوانند دستگاهها و اطلاعات غیردستگاهی مرتبط با ساختار و اتاقهای کاربر را توصیف کنند.
API های Home موجودیت های زیر را تعریف می کنند که کاربر می تواند با آنها تعامل داشته باشد:
- سازه ها خانه ای را نشان می دهند که شامل اتاق ها و وسایل است.
- اتاق ها بخشی از یک سازه هستند و شامل وسایلی هستند.
- دستگاهها ویژگیهای حاوی ویژگیها را پیادهسازی میکنند، با انواع مطابقت دارند، رویدادها را منتشر میکنند و به دستورات پاسخ میدهند.
- اتوماسیون ها بخشی از یک ساختار هستند و از فراداده ها و دستگاه های خانگی برای خودکارسازی وظایف در خانه استفاده می کنند.
شکل 1 این معماری را نشان می دهد:
انواع دستگاه های Home API ممکن است توسط Matter پشتیبانی شوند، یک استاندارد باز برای خانه هوشمند، یا یک دستگاه Cloud-to-cloud در اکوسیستم Google Home باشند. برخی از انواع دستگاه ممکن است عملکرد هر دو را در خود جای دهند. برای اطلاعات بیشتر به انواع دستگاه های پشتیبانی شده مراجعه کنید.
در Matter ، عملکرد دستگاه توسط خوشههایی گروهبندی میشود که در Home API به عنوان ویژگیهای استاندارد Matter نشان داده میشوند. API های Home از مجموعه استاندارد خوشه های Matter همانطور که در مشخصات فعلی Matter تعریف شده است پشتیبانی می کنند.
در اکوسیستم Google Home، عملکرد دستگاه بر اساس ویژگیهای خانه هوشمند گروهبندی میشود که در APIهای Home به عنوان ویژگیهای خانه هوشمند Google نشان داده میشوند. API های Home از مجموعه ویژگی های خانه هوشمند همانطور که در برنامه Cloud-to-cloud تعریف شده است پشتیبانی می کنند.
سایر صفات، مانند خوشههای خاص سازنده و صفات پلتفرم نیز در دسترس هستند. برای کسب اطلاعات بیشتر، مدل داده را ببینید.
زبان
API های Home به زبان Kotlin نوشته شده اند و یک رابط اصطلاحی Kotlin ارائه می کنند که از Flow برای مدیریت وضعیت و اشتراک استفاده می کند. این مزیت های زیادی را نسبت به یک API اشتراک استاندارد ارائه می دهد.
توصیه می کنیم با اسناد Kotlin در مورد کوروتین ها، جریان و نوشتن جت پک آشنا شوید، اگر قبلاً این کار را نکرده اید:
- برنامه های اندروید را با Kotlin توسعه دهید
- کاتلین را برای اندرویدها یاد بگیرید
- برنامه های کاتلین در اندروید . این کدهای خاص ممکن است مفید باشند:
- Kotlin در اندروید و به طور خاص، StateFlow جریان دارد.
- State و Jetpack Compose ، به طور خاص تابع
collectAsStateWithLifecycle()
. این تابع به طور خودکار اشتراک و لغو اشتراک از جریان ها را بر اساس اینکه رابط کاربری که آن حالت را نشان می دهد واقعاً در پیش زمینه است یا خیر، مدیریت می کند. - اگر با Automation API کار می کنید، خواندن درباره سازندگان نوع ایمن Kotlin برای درک نحوه عملکرد DSL Automation مفید است.
شناسه های موجودیت
هر موجودیت در APIهای Home یک شناسه دارد که نشان دهنده شناسه اصلی آن است. این شناسه یک شناسه منحصر به فرد و پایدار است که هرگز در طول عمر موجودیت تغییر نخواهد کرد. این شناسه میتواند برای ذخیره کردن اشیا یا بررسی برابری استفاده شود زیرا ابرداده یک موجودیت میتواند تغییر کند.
به رابط HasId
مراجعه کنید تا بدانید چه نهادهایی دارای شناسه هستند.
نقشه برداری اصطلاحات
موجودیتها در Home APIها به صورت زیر به مفاهیم Matter و Cloud-to-cloud نگاشت میشوند:
API های خانگی | Matter | Cloud-to-cloud |
---|---|---|
صفت | خوشه | صفت |
صفت | صفت | صفت، حالت |
فرمان | فرمان | فرمان |
رویداد | رویداد | پیگیری پاسخ، اطلاع رسانی |