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