یک اتوماسیون اسکریپت شده ایجاد کنید

۱. مقدمه

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

  • نحوه برنامه‌ریزی و نوشتن یک اتوماسیون اسکریپت‌شده
  • چگونه یک اتوماسیون اسکریپت‌شده را آزمایش کنیم.

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

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

۲. دستگاه خود را تنظیم کنید

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

تأیید کنید که دستگاه در برنامه Google Home ظاهر می‌شود و می‌توانید آن را با استفاده از برنامه Home روشن و خاموش کنید.

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

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

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

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

  1. چراغ (یا دستگاه هوشمند دیگر) خود را در یک زمان مشخص روشن کنید.
  2. دستگاه خود را در یک زمان مشخص خاموش کنید.

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

۴. اتوماسیون اسکریپت‌شده را بنویسید

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

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

  1. فراداده - نام اتوماسیون اسکریپت‌شده و توضیحی از کاری که انجام می‌دهد.
  2. قوانین اتوماسیون - منطق شروع و رفتار اتوماسیون را تعریف می‌کند.

فراداده

متادیتای اتوماسیون ما به کاربر می‌گوید که اتوماسیون چه نام دارد و چه کاری انجام می‌دهد. متادیتا در بلوک metadata مشخص شده است که به شکل زیر است:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

قوانین اتوماسیون

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

۱ پیش غذا

۲ شرط

۳ اقدام

شروع‌کننده‌ها (Starters) همان چیزی هستند که اتوماسیون را آغاز می‌کنند. حداقل یک شروع‌کننده باید true ارزیابی شود تا شرایط بعدی ارزیابی شوند.

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

هنگام گنجاندن چندین محدودیت، آنها را با کلمات کلیدی and و or از هم جدا کنید تا یک عبارت منطقی واحد تشکیل شود. این عبارت باید به true تبدیل شود تا اقدامات اتوماسیون ادامه یابد.

یک شرط با اعلان تغییر وضعیت یکسان نیست:

  • یک شرط، واقعیتی را نشان می‌دهد که باید در زمان «اجرای» شروع‌کننده درست باشد تا اقدامات اجرا شوند.
  • اعلان تغییر وضعیت، رویدادی مانند روشن شدن دستگاه دیگر است.

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

بلوک automations در اتوماسیون ما شامل دو قانون است:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

به موارد زیر توجه کنید:

  1. دو قانون automations وجود دارد. اولی چراغ را روشن می‌کند و دومی چراغ را خاموش می‌کند.
  2. هر قانون یک اقدام واحد دارد.
  3. on: true یعنی چراغ را روشن کن . به طور مشابه، on: false یعنی چراغ را خاموش کن .
  4. هر قانون یک شروع‌کننده‌ی time.schedule دارد که به اتوماسیون می‌گوید چه زمانی اتوماسیون را آغاز کند.
  5. در این اتوماسیون هیچ شرطی وجود ندارد.

۵. اتوماسیون کامل اسکریپت‌شده

با کنار هم قرار دادن همه این قطعات، اتوماسیون اسکریپت‌شده کامل به این شکل خواهد بود:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. اتوماسیون (بالا) را کپی کنید.
  2. برای وب به صفحه اصلی گوگل بروید.
  3. برگه اتوماسیون را که با نمادی با سه ستاره نشان داده شده است، انتخاب کنید:
    تب اتوماسیون
  4. روی + افزودن جدید کلیک کنید.
  5. در ویرایشگر اسکریپت، الگوی اتوماسیون را حذف کنید.
  6. اتوماسیون خود را جایگذاری کنید.
  7. به جای Desk light - Office نام و محل دستگاه خود را قرار دهید.
  8. روی اعتبارسنجی کلیک کنید. ویرایشگر اسکریپت بخش‌هایی از اتوماسیون اسکریپت‌شده شما را که حاوی خطا هستند، زیرخط‌دار می‌کند. هرگونه خطایی که پیش می‌آید را برطرف کنید و اعتبارسنجی و رفع آن را تا زمانی که دیگر خطایی وجود نداشته باشد، ادامه دهید. به عنوان مثال، ممکن است نام دستگاه شما متفاوت باشد. در این صورت، می‌توانید از ویژگی تکمیل خودکار برای انتخاب یک نام دستگاه معتبر استفاده کنید.
  9. روی ذخیره کلیک کنید.
  10. مطمئن شوید که کلید فعال‌سازی ، زیر متن اسکریپت شما، در موقعیت روشن قرار دارد: ویرایشگر اسکریپت با اتوماسیون اسکریپتی کاملاً معتبر و فعال

۶. اتوماسیون را آزمایش کنید

  1. مطمئن شوید که دستگاه شما به برق وصل شده و در برنامه Google Home قابل مشاهده است.
  2. اگر دستگاه در حال حاضر روشن است، آن را خاموش کنید.
  3. در صفحه اتوماسیون در گوگل هوم نسخه وب ، روی دکمه «اجرا» در کنار اتوماسیون خود کلیک کنید.
    دکمه اجرای اسکریپت
  4. دستگاه باید روشن شود.

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

  1. دستگاه را خاموش کنید.
  2. اتوماسیون را ویرایش کنید و زمان «روشن بودن دستگاه» در خط ۷ را به زمانی در پنج دقیقه آینده تغییر دهید.
  3. زمان «خاموش بودن دستگاه» در خط ۱۴ را به زمانی کمی بعد از «زمان روشن بودن» تغییر دهید.
  4. روی تأیید کلیک کنید. هر خطایی که ممکن است رخ دهد را برطرف کنید.
  5. روی ذخیره کلیک کنید.
  6. مطمئن شوید که کلید فعال‌سازی (Activate ) در وضعیت روشن (on) قرار دارد.
  7. صبر کنید تا دو زمان استارت بگذرد. ​​دستگاه باید در زمان هایی که مشخص کرده اید روشن و سپس خاموش شود.

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

شما با موفقیت یک اتوماسیون اسکریپت‌شده ایجاد کردید - عالی!

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

  • چگونه یک اتوماسیون طراحی و بنویسیم؟
  • چگونه یک اتوماسیون را آزمایش کنیم.

مراحل بعدی

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

تمرین‌های زیر را امتحان کنید:

  • شروع‌کننده‌های time.schedule بیشتری به اتوماسیون اضافه کنید.
  • اتوماسیون را طوری تغییر دهید که دستگاه دیگری را طبق همان برنامه روشن و خاموش کند.
  • بدون حذف شروع‌کننده‌های time.schedule ، اتوماسیون را طوری تغییر دهید که دستگاه‌ها فقط زمانی روشن شوند که دستگاه دیگری روشن باشد. به اسکریپت‌های نمونه‌ای که از condition استفاده می‌کنند، مراجعه کنید.
  • اتوماسیون را طوری تغییر دهید که فقط وقتی کسی در خانه است، دستگاه‌ها روشن شوند.

مطالعه بیشتر

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