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

1. מבוא

מה תלמדו

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

מה הדרישות כדי להצטרף לתוכנית?

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

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

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

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

3. תכנון האוטומציה של סקריפטים

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

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

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

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

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

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

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

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

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

Metadata

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

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

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

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

1 סימן לתחילת פעולה

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

6. בדיקת האוטומציה

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

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

  1. מכבים את המכשיר.
  2. צריך לערוך את הפעולות האוטומטיות ולשנות את השעה 'המכשיר פועל' בשורה 7 למועד של חמש דקות בעתיד.
  3. יש לשנות את השעה 'המכשיר כבוי' בשורה 14 לשעה קצת אחרי 'בזמן'.
  4. לוחצים על אימות. מתקנים את השגיאות שמופיעות.
  5. לוחצים על שמירה.
  6. מוודאים שהמתג Activate (הפעלה) נמצא במצב פועל.
  7. ממתינים עד ששני הזמנים של הסימן לתחילת פעולה יחלפו. המכשיר אמור לפעול ואז להיכבות בשעות שהגדרת.

7. כל הכבוד!

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

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

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

השלבים הבאים

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

כדאי לנסות את התרגילים הבאים:

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

קריאה נוספת

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