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