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

1. معرفی

چیزی که یاد خواهید گرفت

  • نحوه برنامه ریزی و نوشتن یک اتوماسیون اسکریپت شده
  • نحوه تست اتوماسیون اسکریپت شده

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

  • تلفن Android یا iOS دارای برنامه Google Home.
  • چراغ هوشمند یا دستگاه دیگری که برای کار با Google Home تأیید شده است و می تواند روشن یا خاموش شود.

2. دستگاه خود را راه اندازی کنید

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

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

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

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

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

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

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

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

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

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

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

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

فراداده

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

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

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

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

1 استارتر

2 شرایط

3 اقدامات

استارت ها همان چیزی هستند که اتوماسیون را آغاز می کنند. حداقل یک شروع کننده باید 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. هیچ شرایطی در این اتوماسیون وجود ندارد.

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. به Google Home برای وب بروید.
  3. برگه اتوماسیون ها را انتخاب کنید که با نمادی با سه ستاره نشان داده شده است:
    برگه اتوماسیون ها
  4. روی + افزودن جدید کلیک کنید.
  5. در ویرایشگر اسکریپت، الگوی اتوماسیون را حذف کنید.
  6. اتوماسیون خود را بچسبانید.
  7. Desk light - Office با نام و مکان دستگاه خود جایگزین کنید.
  8. روی اعتبار سنجی کلیک کنید. ویرایشگر اسکریپت قسمت هایی از اتوماسیون اسکریپت شده شما را که حاوی خطا هستند زیر خط می کشد. هر گونه خطای ایجاد شده را برطرف کنید و اعتبارسنجی و رفع آن را ادامه دهید تا زمانی که دیگر خطایی وجود نداشته باشد. به عنوان مثال، نام دستگاه شما ممکن است متفاوت باشد. اگر اینطور است، می‌توانید از ویژگی تکمیل خودکار برای انتخاب نام دستگاه معتبر استفاده کنید.
  9. روی ذخیره کلیک کنید.
  10. مطمئن شوید که سوئیچ Activate در زیر متن اسکریپت شما در موقعیت روشن قرار دارد: ویرایشگر اسکریپت با اتوماسیون اسکریپت کاملاً تأیید شده و فعال شده

6. اتوماسیون را تست کنید

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

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

  1. دستگاه را خاموش کنید.
  2. اتوماسیون را ویرایش کنید و زمان روشن بودن دستگاه را در خط 7 به زمان پنج دقیقه در آینده تغییر دهید.
  3. زمان «خاموش بودن دستگاه» در خط 14 را به زمانی کمی پس از «به‌وقت روشن» تغییر دهید.
  4. روی اعتبار سنجی کلیک کنید. هرگونه خطای احتمالی را برطرف کنید.
  5. روی ذخیره کلیک کنید.
  6. اطمینان حاصل کنید که کلید Activate در موقعیت روشن است.
  7. صبر کنید تا دو زمان شروع به پایان برسد. دستگاه باید در زمان های مشخص شده روشن و سپس خاموش شود.

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

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

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

  • نحوه طراحی و نوشتن یک اتوماسیون
  • نحوه تست اتوماسیون

مراحل بعدی

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

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

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

بیشتر خواندن

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