نمای کلی APIهای Home برای Android

رابط‌های برنامه‌نویسی کاربردی (API) گوگل هوم برای اندروید، یک سطح API یکپارچه ارائه می‌دهند تا توسعه‌دهندگان بتوانند با وضعیت موجودیت‌های موجود در خانه کاربر تعامل داشته باشند. این موجودیت‌ها می‌توانند اطلاعات دستگاه‌ها و غیردستگاه‌های مرتبط با ساختار و اتاق‌های کاربر را توصیف کنند.

APIهای Home موجودیت‌های زیر را تعریف می‌کنند که کاربر می‌تواند با آنها تعامل داشته باشد:

  • سازه‌ها نمایانگر خانه‌ای هستند که شامل اتاق‌ها و دستگاه‌ها می‌شود.
  • اتاق‌ها بخشی از یک سازه هستند و شامل دستگاه‌هایی می‌باشند.
  • دستگاه‌ها صفاتی را پیاده‌سازی می‌کنند که شامل ویژگی‌ها هستند، با انواع مطابقت دارند، رویدادها را منتشر می‌کنند و به دستورات پاسخ می‌دهند.
  • اتوماسیون‌ها بخشی از یک ساختار هستند و از فراداده‌ها و دستگاه‌های خانگی برای خودکارسازی وظایف در خانه استفاده می‌کنند.

شکل ۱ این معماری را نشان می‌دهد:

نموداری که معماری رابط‌های برنامه‌نویسی کاربردی (API) صفحه اصلی را برای یک برنامه اندروید نشان می‌دهد
شکل 1: معماری رابط‌های برنامه‌نویسی کاربردی (API) برای یک برنامه اندروید

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

در Matter ، عملکرد دستگاه توسط خوشه‌هایی گروه‌بندی می‌شود که در APIهای Home به عنوان ویژگی‌های استاندارد Matter نمایش داده می‌شوند. APIهای Home از مجموعه استاندارد خوشه‌های Matter همانطور که در مشخصات فعلی Matter تعریف شده است، پشتیبانی می‌کنند.

در اکوسیستم گوگل هوم، عملکرد دستگاه بر اساس ویژگی‌های خانه هوشمند گروه‌بندی می‌شود که در رابط‌های برنامه‌نویسی کاربردی (API) خانه به عنوان ویژگی‌های خانه هوشمند گوگل نمایش داده می‌شوند. رابط‌های برنامه‌نویسی کاربردی خانه از مجموعه‌ای از ویژگی‌های خانه هوشمند که در برنامه Cloud-to-cloud تعریف شده‌اند، پشتیبانی می‌کنند.

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

اکوسیستم

اکوسیستم گوگل هوم، پایه و اساسی ساده برای ساخت، مدیریت، ایمن‌سازی و ادغام تجربیات خانه هوشمند فراهم می‌کند. شکل 2 نحوه همکاری همه اجزا را نشان می‌دهد.

نموداری که اکوسیستم رابط‌های برنامه‌نویسی کاربردی (API) خانگی را برای یک برنامه اندروید نشان می‌دهد
شکل 2: اکوسیستم رابط‌های برنامه‌نویسی کاربردی خانگی برای یک برنامه اندروید

این اکوسیستم شامل موتور اتوماسیون گوگل است که اتوماسیون‌ها را ذخیره و اجرا می‌کند و راهی برای خودکارسازی وظایف و تنظیمات دستگاه در خانه فراهم می‌کند.

رابط‌های برنامه‌نویسی کاربردی (API) خانه (Home APIs) از OAuth 2.0 برای اعطای دسترسی به دستگاه‌های موجود در ساختار استفاده می‌کنند. OAuth به کاربر اجازه می‌دهد بدون نیاز به افشای اطلاعات ورود به سیستم، به یک برنامه یا سرویس مجوز دهد.

Google Home Developer Console برای مدیریت تمام مراحل یک پروژه APIهای هوم، از تأیید برند گرفته تا توسعه، آزمایش و صدور گواهینامه و در نهایت راه‌اندازی، استفاده می‌شود. این کنسول فرآیند توسعه را ساده می‌کند و در عین حال ابزارهای قدرتمندی را ارائه می‌دهد و از طریق اکوسیستم گوگل هوم توزیع می‌کند.

زبان

رابط‌های برنامه‌نویسی کاربردی (API) اندروید (Android) به زبان کاتلین نوشته شده‌اند و یک رابط کاتلین اصطلاحی ارائه می‌دهند که از Flow برای مدیریت وضعیت و اشتراک استفاده می‌کند. این امر مزایای متعددی نسبت به یک API اشتراکی استاندارد ارائه می‌دهد.

اگر هنوز با مستندات کاتلین در مورد کوروتین‌ها، فلو و جت‌پک کامپوز آشنا نشده‌اید، توصیه می‌کنیم با آنها آشنا شوید:

شناسه‌های موجودیت

هر موجودیت در APIهای Home یک شناسه دارد که معرف شناسه اصلی آن است. این شناسه، یک شناسه منحصر به فرد و پایدار است که در طول عمر موجودیت هرگز تغییر نخواهد کرد. این شناسه می‌تواند برای ذخیره اشیاء یا بررسی برابری استفاده شود، زیرا فراداده‌های یک موجودیت می‌توانند تغییر کنند.

برای آشنایی با موجودیت‌هایی که شناسه دارند، به رابط HasId مراجعه کنید.

نگاشت اصطلاحات

موجودیت‌های موجود در رابط‌های برنامه‌نویسی کاربردی خانگی (Home APIs) به مفاهیم Matter و Cloud-to-cloud به شرح زیر نگاشت می‌شوند:

API های خانگی Matter Cloud-to-cloud
صفت خوشه صفت
ویژگی ویژگی ویژگی، حالت
فرمان فرمان فرمان
رویداد رویداد پاسخ پیگیری، اطلاع رسانی