অটোমেশন

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

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

চাবি প্রকার বর্ণনা

name

স্ট্রিং

ঐচ্ছিক

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

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

starters

[ প্রারম্ভিক ]

প্রয়োজনীয়

প্রারম্ভিক খাবারের একটি তালিকা।

condition

অবস্থা

ঐচ্ছিক

অবস্থা

actions

[ পদক্ষেপ ]

প্রয়োজনীয়

করণীয় কাজের একটি তালিকা

উদাহরণ

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

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

একবার সক্রিয় হলে, নিম্নলিখিত কাজগুলো সম্পন্ন করা হয়:

'লাইট এ' এবং 'লাইট বি' নামের দুটি 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 condition' এবং একটি device.state condition' আছে। এই Struct-টি স্ক্রিপ্টটিকে রান করার সুযোগ দেয় যদি সময়টা সোমবার বা মঙ্গলবারের সূর্যাস্ত থেকে সূর্যোদয়ের মধ্যে হয়, অথবা, যদি টিভির ভলিউম ১ থেকে ১০-এর মধ্যে থাকে:

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

ক্রিয়াকলাপগুলির সম্পূর্ণ তালিকা দেখুন