automations স্ট্রাক্ট হলো একটি অটোমেশন স্ক্রিপ্টের মূল অংশ। এখানেই অটোমেশনের আচরণ নির্দিষ্ট করা হয়, যার মধ্যে স্টার্টার, কন্ডিশন এবং অ্যাকশন অন্তর্ভুক্ত থাকে। সম্মিলিতভাবে এগুলোকে অটোমেশন রুলও বলা হয়।
একটি automations স্ট্রাক্টে এক বা একাধিক অটোমেশন রুল থাকে, এবং প্রতিটি রুলে সর্বদা এক সেট স্টার্টার ও অ্যাকশন থাকে। একটি রুলে ঐচ্ছিকভাবে কন্ডিশন থাকতে পারে, যা হলো অতিরিক্ত কোয়ালিফায়ার এবং স্ক্রিপ্টটি এক্সিকিউট হওয়ার জন্য এই কোয়ালিফায়ারগুলো অবশ্যই উপস্থিত থাকতে হবে।
| চাবি | প্রকার | বর্ণনা |
|---|---|---|
| ঐচ্ছিক অটোমেশনটির নাম। এটি ব্যবহারকারীদের দেখানো হয় না, এটি শুধুমাত্র ডেভেলপারদের তথ্যের জন্য। | |
| [ প্রারম্ভিক ] | প্রয়োজনীয় প্রারম্ভিক খাবারের একটি তালিকা। |
| ঐচ্ছিক অবস্থা | |
| [ পদক্ষেপ ] | প্রয়োজনীয় করণীয় কাজের একটি তালিকা |
উদাহরণ
নিচে 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