অটোমেশন ডিএসএল অটোমেশন তৈরি করতে ব্যবহার করা যেতে পারে যা ডিএসএল গাইড - বেসিক অটোমেশনে আলোচনা করাগুলির চেয়ে জটিল।
একাধিক ক্রিয়া সহ অনুক্রমিক
একটি অটোমেশন একাধিক জিনিস করতে পারে। উদাহরণস্বরূপ, একক action
নোডের জায়গায়, আপনার একাধিক action
নোড থাকতে পারে, যা ক্রমানুসারে চলে:
automation {
sequential {
starter<_>(...)
condition {...}
action {...}
action {...}
action {...}
}
}
একাধিক সমান্তরাল ক্রিয়া সহ ক্রমিক
আপনি যদি একটি parallel
নোডে একাধিক action
নোড রাখেন, তাহলে অ্যাকশনগুলি একযোগে কার্যকর হয়।
automation {
sequential {
starter<_>(...)
condition {...}
parallel {
action {...}
action {...}
action {...}
}
}
}
যদি parallel
নোডের পরে আসা sequential
নোডে action
নোড থাকে, তবে parallel
নোডের মধ্যে থাকা সমস্ত নোডগুলি কার্যকর করা শেষ না হওয়া পর্যন্ত তারা চালানোর জন্য অপেক্ষা করে।
বিলম্ব
আপনি delayFor
কীওয়ার্ড ব্যবহার করে আপনার অটোমেশনে বিরতি প্রবর্তন করতে পারেন, যা একটি java.time.Duration
আর্গুমেন্ট নেয় যা এক্সিকিউশন চালিয়ে যাওয়ার আগে কতক্ষণ বিরতি দিতে হবে তা উপস্থাপন করে। বিরতির সময়কাল পাঁচ সেকেন্ডের মতো বা 24 ঘণ্টার মতো হতে পারে।
উদাহরণস্বরূপ, প্রতিটি টগলের মধ্যে পাঁচ-সেকেন্ড বিরতি দিয়ে চারবার আলো টগল করতে:
sequential {
action(light, OnOffLightDevice) { command(OnOff.toggle()) }
delayFor(Duration.ofSeconds(5))
action(light, OnOffLightDevice) { command(OnOff.toggle()) }
delayFor(Duration.ofSeconds(5))
action(light, OnOffLightDevice) { command(OnOff.toggle()) }
delayFor(Duration.ofSeconds(5))
action(light, OnOffLightDevice) { command(OnOff.toggle()) }
}
ট্রিগার দমন
ট্রিগার দমন এমন একটি ক্ষমতা যা আপনার অটোমেশনকে প্রাথমিক ট্রিগারিং ইভেন্টের পরে একটি নির্দিষ্ট সময়ের জন্য একটি starter
উপেক্ষা করার অনুমতি দেয়। উদাহরণস্বরূপ, যদি অটোমেশনে একটি starter
থাকে যা গতি সনাক্তকরণ দ্বারা ট্রিগার হয় এবং আপনি যদি পাঁচ মিনিটের একটি ট্রিগার দমনের সময়কাল নির্দিষ্ট করেন, তাহলে starter
ট্রিগার হলে, পরবর্তী পাঁচ মিনিটের জন্য এটি আবার ট্রিগার হবে না। এটি অটোমেশনকে দ্রুত ট্রিগার হতে বাধা দেয়।
আপনার অটোমেশনে ট্রিগার দমন প্রয়োগ করতে, একটি java.time.Duration
আর্গুমেন্ট সহ suppressFor
কীওয়ার্ড ব্যবহার করুন যা পরবর্তী ট্রিগারগুলিতে প্রতিক্রিয়া জানানোর আগে কতক্ষণ অপেক্ষা করতে হবে তা উপস্থাপন করে। দমনের সময়কাল পাঁচ সেকেন্ডের মতো বা 24 ঘন্টার মতো দীর্ঘ হতে পারে।
automation {
sequential {
val starterNode = starter<_>(device, OccupancySensor, MotionDetection)
suppressFor(Duration.ofMinutes(30))
action(light, OnOffLightDevice) { command(OnOff.toggle()) }
}
মনে রাখবেন যে ট্রিগার দমন একটি অটোমেশনের সমস্ত starters
প্রভাবিত করে যা suppressFor
আগে থাকে।
একটি কর্মে বৈশিষ্ট্য বৈশিষ্ট্য সেট করুন
একটি বৈশিষ্ট্য বৈশিষ্ট্যের মান সেট করতে:
-
update
নোডের আর্গুমেন্ট হিসাবে প্রাসঙ্গিক বৈশিষ্ট্য সহ একটিaction
নোডের মধ্যে একটিupdate
নোড তৈরি করুন:action(deviceReference, deviceType) { update(trait) { } }
update
নোডের মধ্যে, প্রতিটি বৈশিষ্ট্য পরিবর্তন করার জন্য, একটি মিউটেটর ফাংশন ব্যবহার করুন এবং এটিকে নতুন মান দিন। মিউটেটর ফাংশনের নাম গঠন করতে:- অ্যাট্রিবিউটের নাম ক্যাপিটাল করুন
- শব্দ
set
সাথে এটি উপসর্গ করুন।
defaultMoveRate
নামক একটি বৈশিষ্ট্য আপডেট করতে, আপনিsetDefaultMoveRate
নামক একটি মিউটেটর ফাংশন ব্যবহার করবেন।
নোট করুন যে একটি update
নোডে একাধিক মিউটেটর ফাংশন থাকতে পারে। এখানে একটি উদাহরণ যেখানে দুটি বৈশিষ্ট্য আপডেট করা হয়েছে:
action(device, Fan) {
update(FanControl) {
setPercentSetting(50u)
setRockSetting(FanControlCluster.RockBitmap.rockUpDown)
}
}