خودکارسازی‌ها

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

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

کلید تایپ کردن شرح

name

رشته

اختیاری

نام خودکارسازی.

این شرح به کاربران نشان داده نمی‌شود و فقط برای اطلاع توسعه‌دهنده است.

starters

[Starter]

الزامی

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

condition

وضعیت

اختیاری

شرایط

actions

[کنش]

الزامی

فهرست کنش‌ها

مثال‌ها

در زیر دو مثال مقدماتی از 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

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