یک الگوی اتوماسیون ایجاد کنید

۱. مقدمه

آنچه یاد خواهید گرفت

  • نحوه طراحی و نوشتن یک الگوی اتوماسیون.
  • نحوه آزمایش یک الگوی اتوماسیون با استفاده از کنسول توسعه‌دهندگان گوگل هوم

آنچه نیاز دارید

  • یک گوشی اندروید یا iOS که اپلیکیشن گوگل هوم روی آن نصب باشد.
  • یا یک چراغ هوشمند که به خانه شما متصل می‌شود، یا یک دستگاه شبیه‌سازی شده در زمین بازی گوگل هوم .

پیش‌نیازها

شما باید با نحوه نوشتن اتوماسیون گوگل هوم آشنا باشید. اگر تا به حال اتوماسیون ننوشته‌اید، قبل از شروع این کار، انجام آزمایشگاه کدنویسی «ایجاد یک اتوماسیون اسکریپت‌شده» را در نظر بگیرید.

۲. الگوها و نمونه‌های اتوماسیون

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

با استفاده از ویرایشگر اسکریپت اتوماسیون گوگل هوم برای وب، کاربران نهایی می‌توانند یک الگوی اتوماسیون را دریافت کرده و یک نمونه شخصی‌سازی‌شده ایجاد کنند که روی دستگاه‌های خاص در خانه آنها عمل کند. پس از ذخیره، نمونه در بخش روال‌های خانگی در برنامه گوگل هوم (GHA) ظاهر می‌شود.

۳. الگوی اتوماسیون خود را برنامه‌ریزی کنید

هنگام ایجاد یک اتوماسیون، فرد با فکر کردن به مشکلی که سعی در حل آن دارد و اینکه اتوماسیون برای حل مشکل چه کاری انجام خواهد داد، شروع می‌کند. این شامل ملاحظاتی مانند موارد زیر است:

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

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

  1. چراغ را در یک زمان مشخص روشن کنید.
  2. همان چراغ را در یک زمان مشخص خاموش کنید.

با در نظر گرفتن این موضوع، شما آماده‌اید تا ویرایشگر قالب را باز کنید و اتوماسیون را بنویسید.

۴. الگوی اتوماسیون را بنویسید

اتوماسیون‌ها به صورت اعلانی و با استفاده از زبان سریال‌سازی داده YAML نوشته می‌شوند.

یک الگوی اتوماسیون دارای سه بخش اصلی است:

  1. فراداده - نام اتوماسیون، توضیحی در مورد کاری که انجام می‌دهد، و در صورت تمایل، برخی از برچسب‌هایی که برای طبقه‌بندی اتوماسیون استفاده می‌شوند. کلمات کلیدی عبارتند از:
    • روشنایی و پریزها
    • آب و هوا و انرژی
    • امنیت و آگاهی
    • سرگرمی
    • لوازم خانگی و موارد دیگر
  2. ورودی - تعریف می‌کند که اتوماسیون قرار است چه نوع دستگاه(هایی) را کنترل کند. موتور اتوماسیون از این اطلاعات برای دانستن اینکه چه نوع اقداماتی برای دستگاه‌های مورد نظر معتبر است، استفاده می‌کند.
  3. قوانین اتوماسیون - منطق شروع و رفتار اتوماسیون را تعریف می‌کند.

این الگوی اتوماسیونی است که با آن کار خواهید کرد:

metadata:
  name:
    en: Scheduled light
  description:
    en: Turn the light on and off at specific times
  tags:
    - LIGHTING AND PLUGS
input:
  the_light:
    metadata:
      name:
        en: The light
      description:
        en: The light to be controlled
    selector:
      type: device
      multiSelect: true
      supportedTypes:
        - LIGHT
  time_on:
    metadata:
      name:
        en: Time to turn on the light.
      description:
        en: The time of day to turn on the selected light.
    selector:
      type: time
      default: sunset+30min
  time_off:
    metadata:
      name:
        en: Time to turn off the light.
      description:
        en: The time of day to turn off the selected light.
    selector:
      type: time
      default: 10:00 pm
automations:
  - name: Turn on the light
    starters:
      - type: time.schedule
        at: $time_on
    actions:
      - type: device.command.OnOff
        devices: $the_light
        on: true
  - name: Turn off the light
    starters:
      - type: time.schedule
        at: $time_off
    actions:
      - type: device.command.OnOff
        devices: $the_light
        on: false

الگو را بخوانید و به نکات زیر توجه کنید:

  • بخش metadata شامل نام و توضیحات این اتوماسیون است.
  • بخش input متغیری به نام the_light تعریف می‌کند که دستگاهی از نوع LIGHT را مشخص می‌کند. این بدان معناست که این الگو فقط برای چراغ‌ها قابل استفاده است، نه برای انواع دیگر دستگاه‌ها. به عبارت دیگر، وقتی از کاربری که اتوماسیون شما را در خانه‌اش راه‌اندازی می‌کند، خواسته می‌شود دستگاهی را برای $the_light انتخاب کند، انتخاب دستگاه او به دستگاه‌هایی از نوع مشخص شده توسط شما محدود می‌شود.
  • همچنین در بخش input دو متغیر به نام‌های time_on و time_off تعریف شده‌اند. این متغیرها به کاربر اجازه می‌دهند زمان شروع اتوماسیون را مشخص کند. time_on نشان دهنده زمانی است که چراغ روشن می‌شود و time_off نشان دهنده زمانی است که چراغ خاموش می‌شود. اگر کاربر مقدار time_on یا time_off را تنظیم نکند، از مقادیر پیش‌فرض استفاده می‌شود.
  • بخش automations در اتوماسیون ما شامل دو قانون اتوماسیون است. هر قانون یک شروع‌کننده time.schedule دارد که به اتوماسیون می‌گوید چه زمانی آن اتوماسیون را آغاز کند.

ویرایشگر قالب

ویرایشگر قالب اتوماسیون ابزاری است که برای نوشتن قالب‌های اتوماسیون از آن استفاده می‌کنید.

  1. به کنسول توسعه‌دهندگان گوگل هوم بروید.
  2. با همان حسابی که دستگاهتان در برنامه Google Home با آن تنظیم شده است، وارد سیستم شوید.
  3. یک پروژه موجود را ایجاد یا انتخاب کنید.
  4. در بخش اتوماسیون‌ها ، روی توسعه کلیک کنید.
  5. روی ایجاد الگو کلیک کنید.
  6. الگوی اتوماسیون «چراغ زمان‌بندی‌شده» را کپی کنید.
  7. الگوی اتوماسیون «چراغ زمان‌بندی‌شده» را در ویرایشگر الگو جای‌گذاری کنید.
  8. روی اعتبارسنجی کلیک کنید. هرگونه خطایی که ممکن است پیش بیاید را برطرف کنید و تا زمانی که هیچ خطایی رخ ندهد، اعتبارسنجی و رفع آن را ادامه دهید.
  9. برای ذخیره الگو، روی ذخیره کلیک کنید.

۵. الگو را آزمایش کنید

حالا می‌توانید قالب را در کنسول آزمایش کنید.

  1. مطمئن شوید که چراغ شما به برق وصل است و در برنامه Google Home قابل مشاهده است.
  2. اگر چراغ روشن است، آن را خاموش کنید.
  3. به کنسول توسعه‌دهندگان گوگل هوم بروید.
  4. پروژه‌ای را که قالب خود را در آن ایجاد کرده‌اید، باز کنید.
  5. اتوماسیون‌ها را انتخاب کنید، سپس برگه تست را انتخاب کنید.
  6. روی «باز کردن» در کنار الگوی اتوماسیون «چراغ زمان‌بندی‌شده» کلیک کنید.
  7. ساختاری را که می‌خواهید الگو را در آن آزمایش کنید، انتخاب کنید، سپس روی «بعدی» کلیک کنید.
  8. در ویرایشگر InputValue ، نام چراغ خود را مشخص کنید. برای مثال، اگر چراغ شما "چراغ رومیزی - دفتر" نام دارد، می‌توانید از منوی کشویی که هنگام کلیک در سمت راست lights ظاهر می‌شود، Desk light - Office را انتخاب کنید. یا می‌توانید نام دستگاه را تایپ کنید.
  9. همچنین در ویرایشگر InputValue ، زمان time_on را به زمانی مثلاً پنج دقیقه آینده تغییر دهید و زمان time_off را به زمانی کمی پس از time_on تغییر دهید.
  10. وقتی کارتان تمام شد، ویرایشگر InputValue باید چیزی شبیه به این باشد:
    inputValue:
     #add value
     the_light: Desk light - Office
     #add value
     time_off: 11:45 am
     #add value
     time_on: 11:40 am
    
  11. روی فعال کردن آزمون کلیک کنید.
  12. صبر کنید تا دو زمان استارت بگذرد. ​​چراغ باید روشن شود و سپس در زمان های مشخص شده خاموش شود.

وقتی که قالب خود را با موفقیت آزمایش کردید، می‌دانید که اتوماسیون شما از نظر عملکردی سالم است.

۶. تبریک می‌گویم!

شما با موفقیت یک الگوی اتوماسیون ایجاد کردید. عالی!

در این آزمایشگاه کد یاد گرفتید که چگونه:

  • نحوه طراحی و نوشتن یک الگوی اتوماسیون.
  • نحوه آزمایش آن در کنسول توسعه‌دهندگان گوگل هوم.

مراحل بعدی

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

مطالعه بیشتر

برای کسب اطلاعات بیشتر در مورد اتوماسیون‌های گوگل هوم، مستندات مرجع اتوماسیون را بررسی کنید: