לפני שמתחילים להשתמש ב-Automation API, כדאי לתכנן את האוטומציות.
קובעים את הפרמטרים הבאים לכל אוטומציה:
- הנסיבות שבהן כדאי להציע למשתמש את האוטומציה. לדוגמה, אם המשתמש הוסיף לאחרונה שלושה גופי תאורה חדשים לבית, יכול להיות שהוא יתעניין באוטומציה מסוימת שמותאמת לשליטה בגופי תאורה.
- אילו סוגי מכשירים נדרשים לאוטומציה. לדוגמה, אם משתמש הוסיף לאחרונה שלושה גופי תאורה חדשים לבית שלו, יכול להיות שהוא יתעניין באוטומציה מסוימת שמותאמת לשליטה בתאורה. דוגמאות לסוגי מכשירים קלים כוללות
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceאוExtendedColorLightDevice. - אילו מאפייני תכונות ופקודות נדרשים לאוטומציה, והאם הם נתמכים על ידי Automation API ב-Android.
- המאפיינים שצריכים להפעיל את האוטומציה כסימנים לתחילת פעולה. הסברים על Starter מופיעים במאמר רכיבי אוטומציה ב-Android.
- תנאים נוספים שקובעים אם האוטומציה תפעל בפועל, ואילו פעולות יבוצעו.
- תהליך ההרצה של האוטומציה. האם הפעולות צריכות להתבצע ברצף או במקביל? האם נדרשים לך כמה נתיבי לוגיקה?
בשלב התכנון, כדאי ליצור תרשים של תהליך האוטומציה, צומת אחר צומת, עם הלוגיקה שנדרשת בכל שלב.
אחרי שתכננתם אוטומציה, אתם יכולים להשתמש ב-Automation DSL כדי לבנות אותה. האוטומציה שאתם יוצרים היא בעצם 'תבנית' – כל המבנים והמכשירים שבה הם placeholders, והם מתמלאים במבנה ובמכשירים הספציפיים של כל משתמש כשהוא 'מאמץ' את האוטומציה לשימוש שלו.
אלה סוגים שונים של אוטומציות שאפליקציה יכולה ליצור באמצעות ממשקי ה-API של Home. במאמר יצירת אוטומציה מופיעים קטעי קוד שקשורים לדוגמאות האלה.
אוטומציה פשוטה
נניח שאתם צריכים לכתוב אפליקציה שיוצרת אוטומציה להרמת התריסים בשעה 8:00 בבוקר. כדי לעשות את זה, האפליקציה צריכה רשימה של התריסים (מכשירים עם סוג המכשיר WindowCoveringDevice) שנמצאים במבנה ותומכים באוטומציות. אפשר לקבל את הרשימה הזו באמצעות Discovery API.
אם רוצים להפעיל אוטומציות בשעה מסוימת, צריך לוודא שהמשתמש הקצה הקצה כתובת רחוב למבנה שבחר ב-Google Home app (GHA). אחרת, האוטומציה לא תדע באיזה אזור זמן היא תפעל. ה-API של Discovery יכול לעזור לכם לקבוע אם כתובת הוקצתה למבנה.
לכן, רצף הפעולות ייראה בערך כך:
- באמצעות Discovery API, אוספים את רשימת המכשירים
WindowCoveringDevice. - אם הרחוב ומספר הבית לא מופיעים, מודיעים למשתמש שהוא צריך לספק את הרחוב ומספר הבית, ומפסיקים את ההרצה.
- אחרת, מגדירים את האוטומציה:
- התחלת האוטומציה בשעה 8:00 בבוקר.
- לכל אחד מהתריסים, קוראים לפקודה
upOrOpenשל מאפייןWindowCovering.
אוטומציה מורכבת
תארו לעצמכם אפליקציה שיוצרת אוטומציה שמפעילה אורות מהבהבים כשמזוהה תנועה.
אחת המשימות הראשונות בהטמעת האפליקציה הזו היא לגלות אילו נורות זמינות בבית של המשתמש באמצעות Discovery API. בעזרת המידע הזה, האפליקציה יכולה להציג את האורות הזמינים ולאפשר למשתמש לבחור אילו אורות יפעלו.
תהליך ההרצה:
- באמצעות Discovery API, אוספים את רשימת המכשירים הקלים שקיימים במבנה, כלומר כל המכשירים עם סוג המכשיר
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceאוExtendedColorLightDevice. - צריך לספק דרך לבחירת האורות שימצמצו, למשל באמצעות חלונית הגדרות בהתאמה אישית.
- מגדירים את האוטומציה:
- האוטומציה תופעל בכל פעם שמישהו ייצא מהמתחם או יגיע אליו, באמצעות מעקב אחרי
AreaPresenceState. - אם
presenceStateמציין שהמבנה מאוכלס, מהבהבים את האורות שנבחרו.
- האוטומציה תופעל בכל פעם שמישהו ייצא מהמתחם או יגיע אליו, באמצעות מעקב אחרי
אוטומציה כללית
לדוגמה, אפשר ליצור אוטומציה מורכבת יותר שתעזור למשתמש ליצור אוטומציה פתוחה, שמבוססת על חלק מהמכשירים בבית או על כולם.
יכול להיות שהאוטומציה תבקש מהמשתמש לבחור מבנה.
לאחר מכן, האוטומציה יכולה להציג את כל החדרים במבנה בתצוגת מתאר שניתן להרחבה, שבה הרחבת חדר מציגה את המכשירים שבו. כשמרחיבים את רשימת המכשירים, מוצגים הפקודות וההתחלות שנתמכות על ידי המכשיר.
המשתמש יכול לבחור את המכשירים, הסימנים לתחילת הפעולה והפקודות שבהם הוא רוצה להשתמש, והאוטומציה תנחה אותו בהרכבת האוטומציה.
אחרי שכל הבחירות וההחלטות של המשתמש יהיו סופיות, האוטומציה תיצור את האוטומציה ותשמור אותה במבנה שבחר המשתמש.
באופן כללי, כדי להגדיר אוטומציה כזו צריך לאסוף כמה מערכי נתונים על הבית של המשתמש באמצעות Structure API for Android, Device API for Android ו-Discovery API.
| API | מידע |
|---|---|
| Structure API |
|
| Device API |
|
| Discovery API |
|