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