قبلاز شروع استفاده از Automation API، باید خودکارسازیهایتان را طراحی کنید.
پارامترهای زیر را برای هر خودکارسازی تعیین کنید:
- شرایطی که تحت آن خودکارسازی باید به کاربر پیشنهاد شود. برای مثال، اگر کاربر بهتازگی سه چراغ جدید به خانهاش اضافه کرده باشد، ممکن است به خودکارسازی خاصی که برای کنترل چراغها طراحی شده است علاقهمند باشد.
- کدام نوع دستگاهها برای خودکارسازی لازم است. برای مثال، اگر کاربر
بهتازگی سه چراغ جدید به خانهاش اضافه کرده باشد، ممکن است به
خودکارسازی خاصی که برای کنترل چراغها طراحی شده است علاقهمند باشد. نمونههایی از انواع دستگاههای روشنایی
شامل
OnOffLightDevice،ColorTemperatureLightDevice،DimmableLightDevice، یاExtendedColorLightDeviceاست. - کدام فرمانها و مشخصههای ویژگی برای خودکارسازی لازم است، و آیا توسط Automation API در Android پشتیبانی میشوند یا نه.
- ویژگیهایی که باید خودکارسازی را بهعنوان آغازگر فعال کنند. آغازگرها در مؤلفههای خودکارسازی در Android توضیح داده شدهاند.
- شرایط اضافی که تعیین میکند آیا خودکارسازی واقعاً باید اجرا شود یا نه، و کدام کنشها باید انجام شود.
- جریان اجرا برای خودکارسازی. آیا باید بهصورت متوالی اجرا شود یا موازی؟ آیا به چندین مسیر منطقی نیاز دارید؟
هنگام طراحی، ممکن است مفید باشد که جریان خودکارسازی را گره به گره با منطق موردنیاز در هر مرحله نمودار کنید.
وقتی خودکارسازی را طراحی کردید، از DSL خودکارسازی برای ساختن آن استفاده کنید. خودکارسازیای که میسازید درواقع یک «الگو» است — هر ساختار و دستگاهی که در آن وجود دارد جایبان است و وقتی هر کاربر خودکارسازی را برای استفاده خودش «میپذیرد»، با ساختار و دستگاههای خاص او پر میشود.
در زیر انواع مختلف خودکارسازیهایی که برنامه میتواند بااستفاده از Home API ایجاد کند آورده شده است. برای گزیدههای کد مربوط به این نمونهها، به صفحه ساختن خودکارسازی مراجعه کنید.
خودکارسازی ساده
فرض کنید میخواهید برنامهای بنویسید که خودکارسازیای ایجاد کند که کرکرهها را ساعت ۸:۰۰ صبح بالا ببرد. برای انجام این کار، برنامه به فهرستی از کرکرهها
(دستگاههایی با نوع دستگاه WindowCoveringDevice) موجود در ساختار
که از خودکارسازیها پشتیبانی میکنند نیاز دارد، که میتواند توسط Discovery API ارائه شود.
برای خودکارسازیهایی که باید در زمان خاصی اجرا شوند، باید مطمئن شوید که کاربر نشانی خیابان را برای ساختار انتخابیاش اختصاص داده باشد (درطول ایجاد ساختار یا در Google Home app (GHA))، درغیراینصورت، خودکارسازی منطقه زمانی محل اجرا را نمیداند. Discovery API میتواند به شما کمک کند تعیین کنید آیا نشانی به ساختار اختصاص داده شده است یا نه.
بنابراین جریان اجرا چیزی شبیه به این خواهد بود:
- بااستفاده از Discovery API، فهرست دستگاههای
WindowCoveringDeviceرا جمعآوری کنید. - اگر نشانی خیابان وارد نشده است، به کاربر اطلاع دهید که باید نشانی خیابان را ارائه دهد (برای مثال، در GHA)، و اجرا را متوقف کنید.
- درغیراینصورت، خودکارسازی را تعریف کنید:
- خودکارسازی را ساعت ۸:۰۰ صبح شروع کن.
- برای هریک از کرکرهها، فرمان
upOrOpenمشخصهWindowCoveringرا فراخوانی کنید.
خودکارسازی پیچیده
برنامهای را تصور کنید که خودکارسازیای میسازد که وقتی حرکتی تشخیص داده میشود، چراغها را بهصورت چشمکزن روشن میکند.
یکی از اولین وظایف در پیادهسازی این برنامه، یافتن چراغهای موجود در خانه کاربر بااستفاده از Discovery API است. با این اطلاعات، برنامهتان اکنون میتواند چراغهای دردسترس را نمایش دهد و شاید به کاربر اجازه دهد چراغهایی را که میخواهد چشمک بزنند انتخاب کند.
جریان اجرا:
- بااستفاده از Discovery API، فهرست دستگاههای روشنایی موجود در ساختار را جمعآوری کنید. این دستگاهها شامل هر دستگاهی با نوع دستگاه
OnOffLightDevice،ColorTemperatureLightDevice،DimmableLightDevice، یاExtendedColorLightDeviceمیشود. - روشی برای انتخاب چراغهایی که چشمک میزنند ارائه دهید، شاید ازطریق پانل «تنظیمات» سفارشی.
- خودکارسازی را تعریف کنید:
- با پایش
AreaPresenceState، هرگاه شخصی محل را ترک کرد یا به آن وارد شد، خودکارسازی را شروع کن. - اگر
presenceStateنشان میدهد که سازه اشغال شده است، چراغهای انتخابشده را چشمکزن کن.
- با پایش
خودکارسازی عمومی
برای نمونهای از خودکارسازی پیچیدهتر، موردی را درنظر بگیرید که کاربر را در ایجاد خودکارسازی نامحدود براساس هرکدام یا همه دستگاههایی که در خانهاش دارد راهنمایی میکند.
خودکارسازی ممکن است ابتدا از کاربر بخواهد ساختاری را انتخاب کند.
سپس خودکارسازی میتواند همه اتاقهای موجود در ساختار را در نمای طرح کلی گسترشپذیر نمایش دهد، که با گسترش دادن اتاق، دستگاههای موجود در آن نشان داده میشود. با گسترش بیشتر دستگاه، آغازگرها و فرمانهای پشتیبانیشده توسط آن دستگاه فهرست میشود.
کاربر میتواند دستگاهها، آغازگرها، و فرمانهایی را که میخواهد استفاده کند انتخاب کند و خودکارسازی کاربر را در فرایند ایجاد خودکارسازی راهنمایی میکند.
وقتی همه انتخابها و تصمیمهای کاربر نهایی شد، خودکارسازی خودکارسازی را تولید میکند و آن را در ساختار انتخابی کاربر ذخیره میکند.
در سطح بالا، چنین خودکارسازیای باید چندین مجموعه داده درباره خانه کاربر را بااستفاده از Structure API for Android، Device API for Android، و Discovery API جمعآوری کند.
| میانای برنامهسازی کاربردی | اطلاعات |
|---|---|
| Structure API |
|
| Device API |
|
| Discovery API |
|