API اتوماسیون در اندروید نمای کلی

اتوماسیون‌ها راهی برای خودکارسازی وظایف و تنظیمات دستگاه در خانه هستند. اتوماسیون‌ها در اکوسیستم گوگل هوم به عنوان روتین‌ها در Google Home app (GHA) و از طریق automation script editor در Google Home for web در دسترس بوده‌اند.

اکنون، اتوماسیون‌ها در اکوسیستم گوگل هوم از طریق رابط‌های برنامه‌نویسی کاربردی هوم برای اندروید در دسترس هستند. آن‌ها از همان مفاهیم اساسی مورد استفاده در GHA Routines و script editor استفاده می‌کنند، اما با ویژگی‌ها و قابلیت‌های پیشرفته‌ای که فقط از طریق رابط‌های برنامه‌نویسی کاربردی هوم امکان‌پذیر است، از جمله:

  • دسترسی به تمام ویژگی‌های استاندارد Matter و smart home برای یک دستگاه، همانطور که در APIهای Home ارائه شده است.
  • پشتیبانی از جریان‌های اجرای متوالی، موازی و انتخابی.

اتوماسیون‌ها با استفاده از Automation DSL نوشته می‌شوند، زبانی مختص دامنه که برای ساخت اتوماسیون در کاتلین طراحی شده است.

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

سفر توسعه‌دهنده

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

  1. توسعه‌دهنده، اتوماسیون خود را برنامه‌ریزی می‌کند و آن را با استفاده از Automation DSL تعریف می‌کند.
  2. توسعه‌دهنده، تعریف اتوماسیون را در یک برنامه اندروید کاتلین جاسازی می‌کند.
  3. این برنامه بر اساس اطلاعات مربوط به دستگاه‌های کاربر، از جمله ویژگی‌ها، صفات، دستورات و رویدادها که با استفاده از Discovery API یا Device API جمع‌آوری شده‌اند، اتوماسیون‌ها را به کاربر ارائه می‌دهد.
    1. با استفاده از رابط برنامه‌نویسی کاربردی دیسکاوری (Discovery API)، این برنامه می‌تواند یک اتوماسیون پیش‌نویس سفارشی‌شده با انواع دستگاه‌ها و ویژگی‌های موجود در ساختار کاربر، با یا بدون ورودی کاربر، تولید کند.
    2. رابط برنامه‌نویسی دستگاه (Device API) می‌تواند بیشتر اطلاعات مشابه رابط برنامه‌نویسی کشف (Discovery API) را ارائه دهد، اما برای موارد استفاده خودکار بهینه نشده است. برای جزئیات بیشتر به مقایسه رابط برنامه‌نویسی دستگاه (Device API) و رابط برنامه‌نویسی کشف (Discovery API) مراجعه کنید.
  4. این برنامه، اتوماسیون واقعی را که با ساختار انتخاب شده مرتبط است، ایجاد می‌کند.
  5. اتوماسیون اکنون در ساختار کاربر موجود است و می‌تواند با استفاده از متدهای Structure API اجرا یا حذف شود.

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

در ابتدایی‌ترین سناریو، ممکن است به کاربران خود یک اتوماسیون از پیش تعریف‌شده که یک کار نسبتاً اساسی را انجام می‌دهد، پیشنهاد دهید. یا می‌توانید اسکلتی از یک اتوماسیون را ارائه دهید که کاربر آن را برای رفع نیازهای خود سفارشی‌سازی کند. یا می‌توانید یک ویرایشگر اتوماسیون با پایان باز بنویسید که به کاربر اجازه می‌دهد اتوماسیون‌های پیچیده را با استفاده از تمام بلوک‌های سازنده موجود در API اتوماسیون بسازد.

محدودیت‌های منابع

محدودیت‌های زیر برای اتوماسیون‌ها در APIهای Home اعمال می‌شود:

جدول: محدودیت‌های منابع API اتوماسیون
متریک حد
حداکثر تعداد اتوماسیون در هر سازه ۶۴
حداکثر تعداد گره‌ها در هر اتوماسیون ۱۲۸
حداکثر تعداد گره‌های بیان در هر اتوماسیون ۶۴
حداکثر تعداد نمونه‌های اتوماسیون در هر ساختار ۱۰۲۴ عدد
حداکثر تعداد نمونه‌های اتوماسیون به ازای هر توسعه‌دهنده در هر ساختار ۶۴
حداکثر تعداد اجراها در هر سازه در روز ۱۰۲۴ عدد
حداکثر تعداد اجراها به ازای هر توسعه‌دهنده به ازای هر ساختار در روز ۱۲۸