פעולות אוטומטיות

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

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

Key סוג תיאור

name

מחרוזת

אופציונלי

שם האוטומציה.

המידע הזה לא גלוי למשתמשים, הוא מיועד רק למפתחים.

starters

[Starter]

חובה

רשימה של התחלות שיחה.

condition

מצב

אופציונלי

תנאי

actions

[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

רשימה מלאה של הפעולות