۱. مقدمه
آنچه یاد خواهید گرفت
- نحوه برنامهریزی و نوشتن یک اتوماسیون اسکریپتشده
- چگونه یک اتوماسیون اسکریپتشده را آزمایش کنیم.
آنچه نیاز دارید
- یک گوشی اندروید یا iOS که اپلیکیشن گوگل هوم روی آن نصب باشد.
- یک چراغ هوشمند یا دستگاه دیگری که برای کار با گوگل هوم تأیید شده باشد و بتوان آن را روشن یا خاموش کرد.
۲. دستگاه خود را تنظیم کنید
اگر دستگاه شما از قبل تنظیم نشده است، آن را در خانه خود تنظیم کنید.
تأیید کنید که دستگاه در برنامه Google Home ظاهر میشود و میتوانید آن را با استفاده از برنامه Home روشن و خاموش کنید.
۳. اتوماسیون اسکریپتشدهی خود را برنامهریزی کنید
ما با فکر کردن به اینکه میخواهیم اتوماسیون اسکریپتشده ما چه کاری انجام دهد، شروع میکنیم. این شامل ملاحظاتی مانند موارد زیر است:
- کدام دستگاهها را میخواهید خودکار کنید.
- چه آغازگر (یا رویدادی) باید اجرای اتوماسیون اسکریپتشده را آغاز کند؟
- چه شرایط اضافی، در صورت وجود، کنترل میکنند که آیا اتوماسیون اسکریپتشده پس از راهاندازی اجرا میشود یا خیر.
- چه اقداماتی قرار است انجام شود.
برای هدف این آزمایشگاه کد، برنامه ما این است که اتوماسیون اسکریپتشده دو کار را انجام دهد:
- چراغ (یا دستگاه هوشمند دیگر) خود را در یک زمان مشخص روشن کنید.
- دستگاه خود را در یک زمان مشخص خاموش کنید.
حالا که دقیقاً میدانیم اتوماسیون اسکریپتشدهمان چه کاری میخواهد انجام دهد، ویرایشگر اسکریپت را باز میکنیم و اتوماسیون اسکریپتشده را مینویسیم.
۴. اتوماسیون اسکریپتشده را بنویسید
اتوماسیونهای اسکریپتی به صورت اعلانی و با استفاده از زبان سریالسازی داده YAML نوشته میشوند.
یک اتوماسیون اسکریپتی از دو بخش اصلی تشکیل شده است:
- فراداده - نام اتوماسیون اسکریپتشده و توضیحی از کاری که انجام میدهد.
- قوانین اتوماسیون - منطق شروع و رفتار اتوماسیون را تعریف میکند.
فراداده
متادیتای اتوماسیون ما به کاربر میگوید که اتوماسیون چه نام دارد و چه کاری انجام میدهد. متادیتا در بلوک metadata مشخص شده است که به شکل زیر است:
metadata:
name: Scheduled light
description: Turn the light on and off at specific times
قوانین اتوماسیون
یک قانون اتوماسیون جایی است که کار واقعی در آن انجام میشود. این قانون از سه بخش تشکیل شده است: شروعکنندهها ، شرطها و اقدامات که به ترتیب ارزیابی میشوند:
۱ پیش غذا | ۲ شرط | ۳ اقدام |
شروعکنندهها (Starters) همان چیزی هستند که اتوماسیون را آغاز میکنند. حداقل یک شروعکننده باید | این موارد اختیاری هستند و شامل یک یا چند قید اضافی میشوند که پس از فعال شدن یک شروعکننده ارزیابی میشوند. اگر شرایط به هنگام گنجاندن چندین محدودیت، آنها را با کلمات کلیدی یک شرط با اعلان تغییر وضعیت یکسان نیست:
| اقدامات، عملیاتی هستند که زمانی انجام میشوند که شرایط شروعکننده و هرگونه محدودیتی برآورده شده باشند. |
بلوک 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
به موارد زیر توجه کنید:
- دو قانون
automationsوجود دارد. اولی چراغ را روشن میکند و دومی چراغ را خاموش میکند. - هر قانون یک اقدام واحد دارد.
-
on: trueیعنی چراغ را روشن کن . به طور مشابه،on: falseیعنی چراغ را خاموش کن . - هر قانون یک شروعکنندهی
time.scheduleدارد که به اتوماسیون میگوید چه زمانی اتوماسیون را آغاز کند. - در این اتوماسیون هیچ شرطی وجود ندارد.
۵. اتوماسیون کامل اسکریپتشده
با کنار هم قرار دادن همه این قطعات، اتوماسیون اسکریپتشده کامل به این شکل خواهد بود:
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
- اتوماسیون (بالا) را کپی کنید.
- برای وب به صفحه اصلی گوگل بروید.
- برگه اتوماسیون را که با نمادی با سه ستاره نشان داده شده است، انتخاب کنید:

- روی + افزودن جدید کلیک کنید.
- در ویرایشگر اسکریپت، الگوی اتوماسیون را حذف کنید.
- اتوماسیون خود را جایگذاری کنید.
- به جای
Desk light - Officeنام و محل دستگاه خود را قرار دهید. - روی اعتبارسنجی کلیک کنید. ویرایشگر اسکریپت بخشهایی از اتوماسیون اسکریپتشده شما را که حاوی خطا هستند، زیرخطدار میکند. هرگونه خطایی که پیش میآید را برطرف کنید و اعتبارسنجی و رفع آن را تا زمانی که دیگر خطایی وجود نداشته باشد، ادامه دهید. به عنوان مثال، ممکن است نام دستگاه شما متفاوت باشد. در این صورت، میتوانید از ویژگی تکمیل خودکار برای انتخاب یک نام دستگاه معتبر استفاده کنید.
- روی ذخیره کلیک کنید.
- مطمئن شوید که کلید فعالسازی ، زیر متن اسکریپت شما، در موقعیت روشن قرار دارد:

۶. اتوماسیون را آزمایش کنید
- مطمئن شوید که دستگاه شما به برق وصل شده و در برنامه Google Home قابل مشاهده است.
- اگر دستگاه در حال حاضر روشن است، آن را خاموش کنید.
- در صفحه اتوماسیون در گوگل هوم نسخه وب ، روی دکمه «اجرا» در کنار اتوماسیون خود کلیک کنید.

- دستگاه باید روشن شود.
حالا، بیایید اتوماسیون را آزمایش کنیم.
- دستگاه را خاموش کنید.
- اتوماسیون را ویرایش کنید و زمان «روشن بودن دستگاه» در خط ۷ را به زمانی در پنج دقیقه آینده تغییر دهید.
- زمان «خاموش بودن دستگاه» در خط ۱۴ را به زمانی کمی بعد از «زمان روشن بودن» تغییر دهید.
- روی تأیید کلیک کنید. هر خطایی که ممکن است رخ دهد را برطرف کنید.
- روی ذخیره کلیک کنید.
- مطمئن شوید که کلید فعالسازی (Activate ) در وضعیت روشن (on) قرار دارد.
- صبر کنید تا دو زمان استارت بگذرد. دستگاه باید در زمان هایی که مشخص کرده اید روشن و سپس خاموش شود.
۷. تبریک میگویم!
شما با موفقیت یک اتوماسیون اسکریپتشده ایجاد کردید - عالی!
در این آزمایشگاه کد یاد گرفتید که چگونه:
- چگونه یک اتوماسیون طراحی و بنویسیم؟
- چگونه یک اتوماسیون را آزمایش کنیم.
مراحل بعدی
در این آزمایشگاه کد، ما یک اتوماسیون بسیار ساده ایجاد کردیم. اتوماسیونها میتوانند کارهای بسیار بیشتری از زمانبندی روشن و خاموش کردن یک کلید برق انجام دهند. اکنون که اصول اولیه ایجاد یک اتوماسیون را درک کردهاید، میتوانید انواع مختلف شروعکنندهها، شرطها و اقداماتی را که در اکوسیستم گوگل هوم موجود است، بررسی کنید.
تمرینهای زیر را امتحان کنید:
- شروعکنندههای
time.scheduleبیشتری به اتوماسیون اضافه کنید. - اتوماسیون را طوری تغییر دهید که دستگاه دیگری را طبق همان برنامه روشن و خاموش کند.
- بدون حذف شروعکنندههای
time.schedule، اتوماسیون را طوری تغییر دهید که دستگاهها فقط زمانی روشن شوند که دستگاه دیگری روشن باشد. به اسکریپتهای نمونهای که ازconditionاستفاده میکنند، مراجعه کنید. - اتوماسیون را طوری تغییر دهید که فقط وقتی کسی در خانه است، دستگاهها روشن شوند.
مطالعه بیشتر
برای کسب اطلاعات بیشتر در مورد اتوماسیونهای گوگل هوم، مستندات مرجع اتوماسیون را بررسی کنید: