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

درباره این codelab
schedule۳۴ دقیقه
subjectآخرین به‌روزرسانی: ۴ مهر ۱۴۰۲
account_circleنویسنده: Jonathan Donald and Andres Gomez
  • نحوه طراحی و نوشتن یک قالب اتوماسیون
  • چگونه یک الگوی اتوماسیون را با استفاده از Google Home Developer Console آزمایش کنیم.
  • تلفن Android یا iOS دارای برنامه Google Home.
  • یا یک چراغ هوشمند که در خانه شما نصب شده است، یا یک دستگاه شبیه سازی شده در Google Home Playground .

شما باید با نحوه نوشتن اتوماسیون Google Home آشنا باشید. اگر تا به حال یک اتوماسیون ننوشته اید، قبل از ادامه با این یکی، لابراتوار ایجاد یک کد اتوماسیون اسکریپت شده را انجام دهید.

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

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

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

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

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

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

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

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

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

اتوماسیون ها با استفاده از زبان سریال سازی داده های 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. به Google Home Developer Console بروید.
  2. با همان حسابی وارد شوید که دستگاه شما با آن در برنامه Google Home راه اندازی شده است.
  3. یک پروژه موجود ایجاد یا انتخاب کنید.
  4. در زیر Automations ، روی Develop کلیک کنید.
  5. روی ایجاد یک الگو کلیک کنید.
  6. الگوی اتوماسیون "نور برنامه ریزی شده" را کپی کنید.
  7. الگوی اتوماسیون "نور برنامه ریزی شده" را در ویرایشگر الگو جایگذاری کنید.
  8. روی اعتبار سنجی کلیک کنید. هر گونه خطایی را که ممکن است پیش بیاید برطرف کنید و اعتبارسنجی و رفع آن را تا زمانی که هیچ خطایی مطرح نشود ادامه دهید.
  9. برای ذخیره الگو روی Save کلیک کنید.

5. الگو را تست کنید

اکنون می توانید قالب را در کنسول تست کنید.

  1. مطمئن شوید که نور شما به برق وصل است و در برنامه Google Home قابل مشاهده است.
  2. اگر چراغ روشن است، آن را خاموش کنید.
  3. به Google Home Developer Console بروید.
  4. پروژه ای را که در آن قالب خود را ایجاد کرده اید باز کنید.
  5. Automations را انتخاب کنید، سپس تب Test را انتخاب کنید.
  6. روی Open در کنار الگوی اتوماسیون "نور برنامه ریزی شده" کلیک کنید.
  7. ساختاری را که می خواهید الگو را در آن آزمایش کنید انتخاب کنید، سپس روی Next کلیک کنید.
  8. در ویرایشگر InputValue ، نام نور خود را مشخص کنید. به عنوان مثال، اگر چراغ شما "Desk light - Office" نام دارد، می توانید Desk light - Office از منوی کشویی که با کلیک بر روی سمت راست lights ظاهر می شود، انتخاب کنید. یا می توانید نام دستگاه را تایپ کنید.
  9. همچنین در ویرایشگر InputValue ، time_on time را تا زمانی مثلاً پنج دقیقه در آینده مشخص کنید، و time_off time را به زمانی کمی بعد از 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. صبر کنید تا دو زمان شروع به پایان برسد. چراغ باید روشن شود و در زمان های مشخص شده خاموش شود.

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

6. تبریک می گویم!

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

در این کد لبه یاد گرفتید که چگونه:

  • نحوه طراحی و نوشتن یک قالب اتوماسیون
  • چگونه آن را در Google Home Developer Console تست کنیم.

مراحل بعدی

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

در ادامه مطلب

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