অটোমেশন

automations Struct হল অটোমেশন স্ক্রিপ্টের মূল অংশ। এখানেই স্টার্টার, কন্ডিশন ও অ্যাকশন সহ অটোমেশন আচরণ নির্দিষ্ট করা হয়। এগুলিকে একসাথে অটোমেশন নিয়মও বলা হয়।

automations Struct-এ এক বা একাধিক অটোমেশন নিয়ম থাকে এবং প্রতিটি নিয়মে সর্বদা স্টার্টার ও অ্যাকশনের সেট থাকে। কোনও নিয়মে ঐচ্ছিকভাবে কন্ডিশন থাকতে পারে, যা হল অতিরিক্ত কোয়ালিফায়ার যা স্ক্রিপ্ট এক্সিকিউট করার জন্য অবশ্যই থাকতে হবে।

কী টাইপ করুন বিবরণ

name

স্ট্রিং

ঐচ্ছিক

অটোমেশনের নাম।

এটি ব্যবহারকারীদের দেখানো হয় না, এটি শুধুমাত্র ডেভেলপারদের রেফারেন্সের জন্য।

starters

[স্টার্টার]

প্রয়োজনীয়

স্টার্টারের তালিকা।

condition

অবস্থা

ঐচ্ছিক

শর্ত

actions

[অ্যাকশন]

প্রয়োজনীয়

অ্যাকশনের তালিকা

উদাহরণ

automations Struct-এর দুটি প্রাথমিক উদাহরণ নিচে দেওয়া হল।

প্রথম উদাহরণে, "আমার টিভি" নামের TV চালু হলে অটোমেশন শুরু হয়।

ট্রিগার করা হলে, নিম্নলিখিত অ্যাকশন পারফর্ম করা হয়:

"Light A" ও "Light B" নামের দুটি LIGHT ডিভাইস চালু করা আছে এবং সেগুলির উজ্জ্বলতা লেভেল ৫০-এ সেট করা আছে।

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 Struct আছে যার মধ্যে একটি 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

অ্যাকশনের সম্পূর্ণ তালিকা দেখুন।