יצירת אוטומציה סקריפט

1. מבוא

מה תלמדו

  • איך מתכננים וכותבים אוטומציה מבוססת-סקריפט.
  • איך בודקים אוטומציה מבוססת-סקריפט.

הדרישות

  • טלפון Android או iOS עם אפליקציית Google Home.
  • נורה חכמה או מכשיר אחר שעבר אישור לשימוש עם Google Home ואפשר להדליק או לכבות אותו.

2. הגדרת המכשיר

אם המכשיר עדיין לא מוגדר, צריך להגדיר אותו בבית.

מוודאים שהמכשיר מופיע באפליקציית Google Home, ושאפשר להפעיל ולכבות אותו באמצעות אפליקציית Home.

3. תכנון של פעולות אוטומטיות מבוססות-סקריפט

קודם כול נחשוב מה אנחנו רוצים שהאוטומציה מבוססת הסקריפט תעשה. זה כולל שיקולים כמו:

  • אילו מכשירים רוצים להוסיף לאוטומציה.
  • איזה סימן תחילת פעולה (או אירוע) צריך להפעיל את ההרצה של האוטומציה מבוססת-הסקריפט.
  • אילו תנאים נוספים, אם יש כאלה, קובעים אם האוטומציה מבוססת הסקריפט תפעל אחרי שהיא תופעל.
  • אילו פעולות צריך לבצע.

לצורך ה-codelab הזה, התוכנית שלנו היא שהאוטומציה באמצעות סקריפט תבצע שני דברים:

  1. להדליק את האור (או מכשיר חכם אחר) בשעה ספציפית.
  2. מכבים את המכשיר בשעה מסוימת.

אחרי שהבנו בדיוק מה אנחנו רוצים שהפעולה האוטומטית מבוססת הסקריפט תעשה, נפתח את הכלי לעריכת סקריפטים ונכתוב את הפעולה האוטומטית מבוססת הסקריפט.

4. כתיבת הסקריפט של הפעולה האוטומטית

אוטומציות מבוססות-סקריפט נכתבות באופן הצהרתי באמצעות שפת ה-YAML לסריאליזציה של נתונים.

אוטומציה מבוססת-סקריפט מורכבת משני חלקים עיקריים:

  1. מטא-נתונים – השם של האוטומציה מבוססת הסקריפט ותיאור של הפעולות שהיא מבצעת.
  2. כללים לאוטומציה – מגדירים את הלוגיקה וההתנהגות של האוטומציה.

מטא-נתונים

המטא-נתונים של הפעולות האוטומטיות שלנו מציינים למשתמש את השם של הפעולות האוטומטיות ואת הפעולות שהן מבצעות. המטא-נתונים מצוינים בבלוק metadata, שנראה כך:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

כללי אוטומציה

כלל אוטומטי הוא המקום שבו מתבצעת העבודה בפועל. הוא מורכב משלושה חלקים, התחלות, תנאים ופעולות, שנבדקים לפי הסדר:

1 Starters

2 תנאים

3 פעולות

הסימנים לתחילת פעולה הם מה שמפעיל את הפעולות האוטומטיות. לפחות סימן אחד לתחילת הפעולה צריך להחזיר את הערך true כדי שהתנאים הבאים יוערכו.

האילוצים האלה הם אופציונליים, והם כוללים אילוץ אחד או יותר שנבדקים אחרי שסימן לתחילת פעולה הופעל. אם התנאים מסתיימים בערך true, הפעולות מופעלות. אם הן מוגדרות כ- false, הפעולות לא יפעלו.

כשכוללים כמה אילוצים, צריך להפריד ביניהם באמצעות מילות המפתח and ו-or כדי ליצור ביטוי לוגי אחד. הביטוי הזה צריך להחזיר את הערך true כדי שהפעולות של האוטומציה ימשיכו.

תנאי הוא לא התראה על שינוי סטטוס:

  • תנאי מייצג עובדה שצריכה להיות נכונה בזמן שסימן לתחילת פעולה מתרחש, כדי שהפעולות יפעלו.
  • התראה על שינוי מצב היא אירוע, כמו הפעלה של מכשיר אחר.

פעולות הן פעולות שמתבצעות כשהתנאים של סימן לתחילת פעולה ושל כל המסגרות מתקיימים.

הבלוק 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

שימו לב לנקודות הבאות:

  1. יש automations כללים. הראשון מדליק את האור, והשני מכבה אותו.
  2. לכל כלל יש פעולה אחת.
  3. on: true אומר להדליק את האור. באופן דומה, on: false פירושו כבה את האור.
  4. לכל כלל יש סימן לתחילת פעולה אחד time.schedule שמציין לפעולות האוטומטיות באיזו שעה להתחיל לפעול.
  5. אין תנאים בפעולה האוטומטית הזו.

5. האוטומציה המלאה מבוססת הסקריפט

אחרי שמשלבים את כל החלקים האלה, הנה איך נראה סקריפט מלא לפעולה אוטומטית:

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
  1. מעתיקים את האוטומציה (למעלה).
  2. עוברים אל Google Home בדפדפן.
  3. לוחצים על הכרטיסייה 'פעולות אוטומטיות', שמיוצגת על ידי סמל עם שלושה כוכבים:
    הכרטיסייה 'פעולות אוטומטיות'
  4. לוחצים על + הוספת חדש.
  5. בכלי לעריכת סקריפטים, מוחקים את תבנית האוטומציה.
  6. מדביקים את הפעולה האוטומטית.
  7. מחליפים את Desk light - Office בשם ובמיקום של המכשיר.
  8. לוחצים על אימות. הכלי לעריכת סקריפטים מדגיש קטעים בסקריפט של האוטומציה שמכילים שגיאות. מטפלים בכל השגיאות שמופיעות, וממשיכים בתהליך האימות והתיקון עד שלא נשארות יותר שגיאות. לדוגמה, שם המכשיר עשוי להיות שונה. במקרה כזה, אפשר להשתמש בתכונת ההשלמה האוטומטית כדי לבחור שם מכשיר תקין.
  9. לוחצים על שמירה.
  10. מוודאים שהמתג הפעלה, שמתחת לטקסט של התסריט, נמצא במצב מופעל: הכלי לעריכת סקריפטים עם אוטומציה מבוססת-סקריפט שאומתה והופעלה באופן מלא

6. בדיקת הפעולה האוטומטית

  1. מוודאים שהמכשיר מחובר לחשמל ומופיע באפליקציית Google Home.
  2. אם המכשיר פועל, מכבים אותו.
  3. בדף אוטומציות ב-Google Home לדפדפן, לוחצים על לחצן ההפעלה לצד האוטומציה.
    לחצן להפעלת סקריפט
  4. המכשיר אמור לפעול.

עכשיו נבדוק את האוטומציה.

  1. מכבים את המכשיר.
  2. עורכים את הפעולות האוטומטיות ומשנים את השעה של 'הפעלת המכשיר' בשורה 7 לשעה שחמש דקות מאוחר יותר.
  3. משנים את השעה של 'device off' בשורה 14 לשעה קצרה אחרי השעה של 'on time'.
  4. לוחצים על אימות. פותרים את השגיאות שמופיעות.
  5. לוחצים על שמירה.
  6. מוודאים שהמתג Activate נמצא במצב on.
  7. מחכים עד שיחלפו שתי שעות ההתחלה. המכשיר אמור להידלק ואז להיכבות בשעות שציינתם.

7. מעולה!

יצרת בהצלחה אוטומציה מבוססת-סקריפט – מצוין!

ב-codelab הזה למדתם איך:

  • איך מתכננים וכותבים אוטומציה.
  • איך בודקים אוטומציה

השלבים הבאים

ב-Codelab הזה יצרנו פעולות אוטומטיות פשוטות מאוד. אוטומציות יכולות לעשות הרבה יותר מאשר לתזמן את ההפעלה וההשבתה של מתג הפעלה. אחרי שהבנתם את הבסיס ליצירת פעולות אוטומטיות, אתם יכולים לעיין בסוגים השונים של סימנים לתחילת פעולה, תנאים ופעולות שזמינים במערכת האקולוגית של Google Home.

אפשר לנסות את התרגילים הבאים:

  • מוסיפים עוד time.schedule סימנים לתחילת הפעולה האוטומטית.
  • לשנות את האוטומציה כדי להפעיל ולהשבית מכשיר אחר באותו לוח זמנים.
  • בלי להסיר את סימני תחילת הפעולה time.schedule, משנים את הפעולות האוטומטיות כך שהמכשירים יופעלו רק כשמכשיר אחר מופעל. אפשר לעיין בדוגמאות לסקריפטים שמשתמשים בסעיף condition.
  • משנים את האוטומציה כך שהמכשירים יופעלו רק כשמישהו נמצא בבית.

קריאה נוספת

כדי לקבל מידע נוסף על אוטומציות ב-Google Home, אפשר לעיין במסמכי העזר בנושא אוטומציות: