automations Struct הוא הליבה של סקריפט אוטומציה. כאן מציינים את אופן הפעולה של האוטומציה, כולל התנאים והפעולות.
הפעולות האלה נקראות ביחד גם כלל אוטומטי.
automations Struct מכיל כלל אוטומציה אחד או יותר, וכל כלל תמיד מכיל קבוצה של התחלות ופעולות. כלל יכול להכיל תנאים, שהם מסננים נוספים שצריכים להתקיים כדי שהסקריפט יופעל.
| Key | סוג | תיאור |
|---|---|---|
|
|
אופציונלי שם האוטומציה. המידע הזה לא גלוי למשתמשים, הוא מיועד רק למפתחים. |
|
|
|
[Starter] |
חובה רשימה של התחלות שיחה. |
|
|
אופציונלי תנאי |
|
|
|
[Action] |
חובה רשימת פעולות |
דוגמאות
בהמשך מופיעות שתי דוגמאות ראשוניות ל-automations Structs.
בדוגמה הראשונה, האוטומציה מופעלת כשמפעילים TV בשם My TV.
אחרי ההפעלה, הפעולות הבאות מתבצעות:
שני מכשירי LIGHT, בשמות Light A (אור א') ו-Light B (אור ב'), מופעלים ומוגדרים לרמת בהירות של 50.
automations:
- name: Dim the lights
starters:
- type: device.state.OnOff
device: My TV - Living Room
state: on
is: true
actions:
- type: device.command.OnOff
devices:
- Light A - Living Room
- Light B - Living Room
on: true
- type: device.command.BrightnessAbsolute
devices:
- Light A - Living Room
- Light B - Living Room
brightness: 50
בדוגמה השנייה, אותה אוטומציה מופעלת בשקיעה בכל יום שני ויום חמישי:
automations:
- name: Dim the lights
starters:
- type: time.schedule
at: SUNSET
weekday:
- MONDAY
- THURSDAY
state: on
is: true
actions:
- type: device.command.OnOff
devices:
- Light A - Living Room
- Light B - Living Room
on: true
- type: device.command.BrightnessAbsolute
devices:
- Light A - Living Room
- Light B - Living Room
brightness: 50
מפעילי התרחיש
במבנה Starter מציינים את הפעולות הראשוניות שגורמות להפעלת סקריפט האוטומציה. כל automation יכול להכיל סימן אחד או יותר לתחילת הפעולה, ולפחות סימן אחד לתחילת הפעולה צריך להחזיר את הערך true כדי שהתנאים הבאים יוערכו.
דוגמה לtime.schedule למתחילים:
type: time.schedule
at: sunrise+30min
weekdays:
- MON
- TUE
דוגמה לטריגר לשינויים במצב המכשיר:
type: device.state.Volume
device: My TV - Living Room
state: currentVolume
greaterThan: 1
lessThan: 10
דוגמה לסימן לתחילת פעולה באירוע של מכשיר:
type: device.event.DoorbellPress
device: My doorbell - Frontdoor
דוגמה לסימן מסוים לתחילת פעולה בשינויים במצב הנוכחות בבית:
type: home.state.HomePresence
state: homePresenceMode
is: HOME
לרשימה המלאה של חבילות Starter
תנאי
אפשר לשלב תנאים עם האופרטורים הלוגיים and, or ו-not כדי לבטא לוגיקה מורכבת יותר.
בדוגמה הבאה יש condition Struct עם תנאי time אחד ותנאי device.state אחד. המבנה הזה מאפשר לסקריפט לפעול אם השעה היא בין השקיעה לזריחה ביום שני או ביום שלישי, או אם עוצמת הקול בטלוויזיה היא בין 1 ל-10:
type: or
conditions:
- type: time.between
before: sunrise
after: sunset
weekdays:
- MON
- TUE
- type: device.state
device: My TV - Living Room
trait: Volume
state: currentVolume
greaterThanOrEqualTo: 1
lessThanOrEqualTo: 10
דוגמה לתנאי בסיסי time שמגביל את ההרצה של סקריפט אוטומציה לסופי שבוע לפני השעה 10:00 בבוקר:
type: time.between
before: 10am
weekdays:
- SAT
- SUN
תנאי טמפרטורה של חיישן במכשיר תרמוסטט:
type: device.state.TemperatureSetting
device: My Thermostat - Living Room
state: thermostatTemperatureAmbient
greaterThan: 65F
דוגמה לתנאי home.state.HomePresence:
type: home.state.HomePresence
state: homePresenceMode
is: AWAY
פעולות
בדומה לנקודות התחלה ולתנאים, לכל פעולה יש type שמציין את סוג הפעולה.
החשובים והשימושיים ביותר הם סוגי הפקודות device.command. דוגמה לפעולה של כיבוי אורות.
type: device.command.OnOff
devices:
- Light A - Living Room
on: false
פעולה להוספת השהיה בין כמה פעולות אחרות.
type: time.delay
for: 5min