ساختار automations هسته اصلی یک اسکریپت اتوماسیون است. در اینجا رفتار اتوماسیون، از جمله شروعکنندهها، شرطها و اقدامات، مشخص میشود. به طور کلی، به این موارد، قانون اتوماسیون نیز گفته میشود.
یک ساختار automations شامل یک یا چند قانون اتوماسیون است و هر قانون همیشه شامل مجموعهای از شروعکنندهها و اقدامات است. یک قانون ممکن است به صورت اختیاری شامل شرطها باشد، که توصیفکنندههای اضافی هستند که باید برای اجرای اسکریپت وجود داشته باشند.
| کلید | نوع | توضیحات |
|---|---|---|
| اختیاری نام اتوماسیون. این به کاربران نشان داده نمیشود، فقط برای مرجع توسعهدهندگان است. | |
| [ شروع کننده ] | مورد نیاز فهرستی از پیش غذاها. |
| اختیاری وضعیت | |
| [ اکشن ] | مورد نیاز فهرستی از اقدامات |
مثالها
در ادامه دو مثال مقدماتی از ساختارهای 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