اتوماسیون ها

ساختار automations هسته اصلی یک اسکریپت اتوماسیون است. در اینجا رفتار اتوماسیون، از جمله شروع‌کننده‌ها، شرط‌ها و اقدامات، مشخص می‌شود. به طور کلی، به این موارد، قانون اتوماسیون نیز گفته می‌شود.

یک ساختار automations شامل یک یا چند قانون اتوماسیون است و هر قانون همیشه شامل مجموعه‌ای از شروع‌کننده‌ها و اقدامات است. یک قانون ممکن است به صورت اختیاری شامل شرط‌ها باشد، که توصیف‌کننده‌های اضافی هستند که باید برای اجرای اسکریپت وجود داشته باشند.

کلید نوع توضیحات

name

رشته

اختیاری

نام اتوماسیون.

این به کاربران نشان داده نمی‌شود، فقط برای مرجع توسعه‌دهندگان است.

starters

[ شروع کننده ]

مورد نیاز

فهرستی از پیش غذاها.

condition

وضعیت

اختیاری

وضعیت

actions

[ اکشن ]

مورد نیاز

فهرستی از اقدامات

مثال‌ها

در ادامه دو مثال مقدماتی از ساختارهای automations آورده شده است.

در مثال اول، اتوماسیون زمانی شروع می‌شود که TV با نام «تلویزیون من» روشن شود.

پس از فعال شدن، اقدامات زیر انجام می‌شود:

دو دستگاه LIGHT با نام‌های «Light A» و «Light B» روشن شده و روی سطح روشنایی ۵۰ تنظیم شده‌اند.

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

استارترها

ساختار شروع‌کننده جایی است که شما شروع‌کننده‌هایی را که باعث اجرای اسکریپت اتوماسیون می‌شوند، مشخص می‌کنید. هر 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

لیست کامل استارترها را مشاهده کنید .

وضعیت

شرط‌ها را می‌توان با عملگرهای منطقی and ، or ، ترکیب کرد و منطق پیچیده‌تری را بیان not .

در مثال زیر، یک ساختار condition با یک شرط time و یک شرط device.state وجود دارد. این ساختار به اسکریپت اجازه می‌دهد تا در صورتی که بین غروب و طلوع خورشید در روز دوشنبه یا سه‌شنبه باشد، یا اگر صدای تلویزیون بین ۱ تا ۱۰ باشد، اجرا شود:

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 پایه که اجرای یک اسکریپت اتوماسیون را به آخر هفته‌ها قبل از ساعت ۱۰ صبح محدود می‌کند:

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

لیست کامل اقدامات را مشاهده کنید .