ডিএসএল গাইড - জটিল অটোমেশন

অটোমেশন ডিএসএল অটোমেশন তৈরি করতে ব্যবহার করা যেতে পারে যা ডিএসএল গাইড - বেসিক অটোমেশনে আলোচনা করাগুলির চেয়ে জটিল।

একাধিক ক্রিয়া সহ অনুক্রমিক

একাধিক ক্রিয়া সহ অনুক্রমিক

একটি অটোমেশন একাধিক জিনিস করতে পারে। উদাহরণস্বরূপ, একক 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 আগে থাকে।

একটি কর্মে বৈশিষ্ট্য বৈশিষ্ট্য সেট করুন

একটি বৈশিষ্ট্য বৈশিষ্ট্যের মান সেট করতে:

  1. update নোডের আর্গুমেন্ট হিসাবে প্রাসঙ্গিক বৈশিষ্ট্য সহ একটি action নোডের মধ্যে একটি update নোড তৈরি করুন:
    action(deviceReference, deviceType) {
      update(trait) {
    
      }
    }
  2. update নোডের মধ্যে, প্রতিটি বৈশিষ্ট্য পরিবর্তন করার জন্য, একটি মিউটেটর ফাংশন ব্যবহার করুন এবং এটিকে নতুন মান দিন। মিউটেটর ফাংশনের নাম গঠন করতে:
    1. অ্যাট্রিবিউটের নাম ক্যাপিটাল করুন
    2. শব্দ set সাথে এটি উপসর্গ করুন।
    উদাহরণস্বরূপ, defaultMoveRate নামক একটি বৈশিষ্ট্য আপডেট করতে, আপনি setDefaultMoveRate নামক একটি মিউটেটর ফাংশন ব্যবহার করবেন।

নোট করুন যে একটি update নোডে একাধিক মিউটেটর ফাংশন থাকতে পারে। এখানে একটি উদাহরণ যেখানে দুটি বৈশিষ্ট্য আপডেট করা হয়েছে:

action(device, Fan) {
  update(FanControl) {
    setPercentSetting(50u)
    setRockSetting(FanControlCluster.RockBitmap.rockUpDown)
  }
}