۱. مقدمه
آنچه یاد خواهید گرفت
- نحوه طراحی و نوشتن یک الگوی اتوماسیون.
- نحوه آزمایش یک الگوی اتوماسیون با استفاده از کنسول توسعهدهندگان گوگل هوم
آنچه نیاز دارید
- یک گوشی اندروید یا iOS که اپلیکیشن گوگل هوم روی آن نصب باشد.
- یا یک چراغ هوشمند که به خانه شما متصل میشود، یا یک دستگاه شبیهسازی شده در زمین بازی گوگل هوم .
پیشنیازها
شما باید با نحوه نوشتن اتوماسیون گوگل هوم آشنا باشید. اگر تا به حال اتوماسیون ننوشتهاید، قبل از شروع این کار، انجام آزمایشگاه کدنویسی «ایجاد یک اتوماسیون اسکریپتشده» را در نظر بگیرید.
۲. الگوها و نمونههای اتوماسیون
توسعهدهندگان با استفاده از ویرایشگر الگوی اتوماسیون در کنسول توسعهدهندگان گوگل هوم، الگوهای اتوماسیون را ایجاد میکنند. الگوهای اتوماسیون حاوی جوهره منطق اسکریپت هستند و به انواع دستگاهها اشاره میکنند، اما به دستگاههای خاص اشارهای ندارند.
با استفاده از ویرایشگر اسکریپت اتوماسیون گوگل هوم برای وب، کاربران نهایی میتوانند یک الگوی اتوماسیون را دریافت کرده و یک نمونه شخصیسازیشده ایجاد کنند که روی دستگاههای خاص در خانه آنها عمل کند. پس از ذخیره، نمونه در بخش روالهای خانگی در برنامه گوگل هوم (GHA) ظاهر میشود.
۳. الگوی اتوماسیون خود را برنامهریزی کنید
هنگام ایجاد یک اتوماسیون، فرد با فکر کردن به مشکلی که سعی در حل آن دارد و اینکه اتوماسیون برای حل مشکل چه کاری انجام خواهد داد، شروع میکند. این شامل ملاحظاتی مانند موارد زیر است:
- کدام دستگاهها را میخواهید خودکار کنید.
- چه آغازگر (یا رویدادی) باید اجرای اتوماسیون را آغاز کند؟
- چه شرایط اضافی، در صورت وجود، کنترل میکنند که آیا اتوماسیون پس از فعال شدن اجرا میشود یا خیر.
- چه اقداماتی قرار است انجام شود.
برای اهداف این آزمایشگاه کد، اتوماسیون شما دو کار انجام خواهد داد:
- چراغ را در یک زمان مشخص روشن کنید.
- همان چراغ را در یک زمان مشخص خاموش کنید.
با در نظر گرفتن این موضوع، شما آمادهاید تا ویرایشگر قالب را باز کنید و اتوماسیون را بنویسید.
۴. الگوی اتوماسیون را بنویسید
اتوماسیونها به صورت اعلانی و با استفاده از زبان سریالسازی داده YAML نوشته میشوند.
یک الگوی اتوماسیون دارای سه بخش اصلی است:
- فراداده - نام اتوماسیون، توضیحی در مورد کاری که انجام میدهد، و در صورت تمایل، برخی از برچسبهایی که برای طبقهبندی اتوماسیون استفاده میشوند. کلمات کلیدی عبارتند از:
- روشنایی و پریزها
- آب و هوا و انرژی
- امنیت و آگاهی
- سرگرمی
- لوازم خانگی و موارد دیگر
- ورودی - تعریف میکند که اتوماسیون قرار است چه نوع دستگاه(هایی) را کنترل کند. موتور اتوماسیون از این اطلاعات برای دانستن اینکه چه نوع اقداماتی برای دستگاههای مورد نظر معتبر است، استفاده میکند.
- قوانین اتوماسیون - منطق شروع و رفتار اتوماسیون را تعریف میکند.
این الگوی اتوماسیونی است که با آن کار خواهید کرد:
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دارد که به اتوماسیون میگوید چه زمانی آن اتوماسیون را آغاز کند.
ویرایشگر قالب
ویرایشگر قالب اتوماسیون ابزاری است که برای نوشتن قالبهای اتوماسیون از آن استفاده میکنید.
- به کنسول توسعهدهندگان گوگل هوم بروید.
- با همان حسابی که دستگاهتان در برنامه Google Home با آن تنظیم شده است، وارد سیستم شوید.
- یک پروژه موجود را ایجاد یا انتخاب کنید.
- در بخش اتوماسیونها ، روی توسعه کلیک کنید.
- روی ایجاد الگو کلیک کنید.
- الگوی اتوماسیون «چراغ زمانبندیشده» را کپی کنید.
- الگوی اتوماسیون «چراغ زمانبندیشده» را در ویرایشگر الگو جایگذاری کنید.
- روی اعتبارسنجی کلیک کنید. هرگونه خطایی که ممکن است پیش بیاید را برطرف کنید و تا زمانی که هیچ خطایی رخ ندهد، اعتبارسنجی و رفع آن را ادامه دهید.
- برای ذخیره الگو، روی ذخیره کلیک کنید.
۵. الگو را آزمایش کنید
حالا میتوانید قالب را در کنسول آزمایش کنید.
- مطمئن شوید که چراغ شما به برق وصل است و در برنامه Google Home قابل مشاهده است.
- اگر چراغ روشن است، آن را خاموش کنید.
- به کنسول توسعهدهندگان گوگل هوم بروید.
- پروژهای را که قالب خود را در آن ایجاد کردهاید، باز کنید.
- اتوماسیونها را انتخاب کنید، سپس برگه تست را انتخاب کنید.
- روی «باز کردن» در کنار الگوی اتوماسیون «چراغ زمانبندیشده» کلیک کنید.
- ساختاری را که میخواهید الگو را در آن آزمایش کنید، انتخاب کنید، سپس روی «بعدی» کلیک کنید.
- در ویرایشگر InputValue ، نام چراغ خود را مشخص کنید. برای مثال، اگر چراغ شما "چراغ رومیزی - دفتر" نام دارد، میتوانید از منوی کشویی که هنگام کلیک در سمت راست
lightsظاهر میشود،Desk light - Officeرا انتخاب کنید. یا میتوانید نام دستگاه را تایپ کنید. - همچنین در ویرایشگر InputValue ، زمان
time_onرا به زمانی مثلاً پنج دقیقه آینده تغییر دهید و زمانtime_offرا به زمانی کمی پس ازtime_onتغییر دهید. - وقتی کارتان تمام شد، ویرایشگر InputValue باید چیزی شبیه به این باشد:
inputValue: #add value the_light: Desk light - Office #add value time_off: 11:45 am #add value time_on: 11:40 am - روی فعال کردن آزمون کلیک کنید.
- صبر کنید تا دو زمان استارت بگذرد. چراغ باید روشن شود و سپس در زمان های مشخص شده خاموش شود.
وقتی که قالب خود را با موفقیت آزمایش کردید، میدانید که اتوماسیون شما از نظر عملکردی سالم است.
۶. تبریک میگویم!
شما با موفقیت یک الگوی اتوماسیون ایجاد کردید. عالی!
در این آزمایشگاه کد یاد گرفتید که چگونه:
- نحوه طراحی و نوشتن یک الگوی اتوماسیون.
- نحوه آزمایش آن در کنسول توسعهدهندگان گوگل هوم.
مراحل بعدی
در این آزمایشگاه کد، شما یک اتوماسیون بسیار ساده ایجاد کردید. اتوماسیونها میتوانند کارهای بسیار بیشتری از زمانبندی روشن و خاموش کردن یک چراغ انجام دهند. اکنون که اصول اولیه ایجاد و آزمایش یک الگوی اتوماسیون را درک کردهاید، میتوانید با استفاده از شروعکنندهها، شرطها و اقدامات مختلف، الگوهای اتوماسیون را برای انواع دیگر دستگاهها ایجاد کنید.
مطالعه بیشتر
برای کسب اطلاعات بیشتر در مورد اتوماسیونهای گوگل هوم، مستندات مرجع اتوماسیون را بررسی کنید: