একটি স্ক্রিপ্টেড অটোমেশন তৈরি করুন

১. ভূমিকা

আপনি যা শিখবেন

  • কীভাবে একটি স্ক্রিপ্টেড অটোমেশন পরিকল্পনা ও লিখতে হয়।
  • স্ক্রিপ্টেড অটোমেশন কীভাবে পরীক্ষা করবেন

আপনার যা যা লাগবে

  • গুগল হোম অ্যাপ চালিত একটি অ্যান্ড্রয়েড বা আইওএস ফোন।
  • একটি স্মার্ট লাইট বা অন্য কোনো ডিভাইস যা ‘Works With Google Home’-এর জন্য প্রত্যয়িত এবং যা চালু বা বন্ধ করা যায়।

২. আপনার ডিভাইসটি সেট আপ করুন

আপনার ডিভাইসটি যদি আগে থেকে সেট আপ করা না থাকে, তাহলে আপনার বাড়িতে এটি সেট আপ করে নিন।

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

৩. আপনার স্ক্রিপ্টেড অটোমেশনের পরিকল্পনা করুন

আমরা আমাদের স্ক্রিপ্টেড অটোমেশন দিয়ে কী করাতে চাই, তা নিয়ে ভেবে শুরু করব। এর মধ্যে নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত:

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

এই কোডল্যাবের উদ্দেশ্যে, আমাদের পরিকল্পনা হলো স্ক্রিপ্টেড অটোমেশন দিয়ে দুটি কাজ করানো:

  1. একটি নির্দিষ্ট সময়ে আপনার বাতি (বা অন্য স্মার্ট ডিভাইস) চালু করুন।
  2. একটি নির্দিষ্ট সময়ে আপনার ডিভাইসটি বন্ধ করুন।

আমাদের স্ক্রিপ্টেড অটোমেশনটি ঠিক কী করবে সে সম্পর্কে এখন যেহেতু আমরা পরিষ্কার, তাই আমরা স্ক্রিপ্ট এডিটরটি খুলে স্ক্রিপ্টেড অটোমেশনটি লিখব।

৪. স্ক্রিপ্টেড অটোমেশনটি লিখুন

স্ক্রিপ্টেড অটোমেশনগুলো YAML ডেটা-সিরিয়ালাইজেশন ল্যাঙ্গুয়েজ ব্যবহার করে ডিক্লারেটিভ পদ্ধতিতে লেখা হয়।

একটি স্ক্রিপ্টেড অটোমেশন দুটি প্রধান অংশ নিয়ে গঠিত:

  1. মেটাডেটা - স্ক্রিপ্টেড অটোমেশনটির নাম এবং এটি কী কাজ করে তার বিবরণ।
  2. অটোমেশন নিয়মাবলী — অটোমেশন শুরুর যুক্তি এবং আচরণ নির্ধারণ করে।

মেটাডেটা

আমাদের অটোমেশনের মেটাডেটা ব্যবহারকারীকে জানায় যে অটোমেশনটির নাম কী এবং এটি কী কাজ করে। মেটাডেটা metadata ব্লকে নির্দিষ্ট করা থাকে, যা দেখতে এইরকম:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

অটোমেশন নিয়ম

অটোমেশন রুল হলো সেই জায়গা যেখানে আসল কাজ সম্পন্ন হয়। এটি স্টার্টার , কন্ডিশন এবং অ্যাকশন— এই তিনটি অংশ নিয়ে গঠিত, যেগুলোকে ক্রমানুসারে মূল্যায়ন করা হয়।

১ জন স্টার্টার

২টি শর্ত

৩টি পদক্ষেপ

স্টার্টারগুলোই অটোমেশন শুরু করে। পরবর্তী শর্তগুলো মূল্যায়ন করার জন্য অন্তত একটি স্টার্টারকে অবশ্যই true বলে প্রমাণিত হতে হবে।

এগুলো ঐচ্ছিক এবং এতে এক বা একাধিক অতিরিক্ত সীমাবদ্ধতা থাকে, যা একটি স্টার্টার সক্রিয় হওয়ার পরে মূল্যায়ন করা হয়। যদি শর্তগুলো true হয়, তবে অ্যাকশনগুলো চলে। যদি সেগুলো false হয়, তবে অ্যাকশনগুলো চলে না।

একাধিক সীমাবদ্ধতা অন্তর্ভুক্ত করার সময়, সেগুলোকে and ' or ' কীওয়ার্ড দিয়ে আলাদা করে একটি একক যৌক্তিক এক্সপ্রেশন তৈরি করুন। অটোমেশনের কার্যক্রম এগিয়ে যাওয়ার জন্য এই এক্সপ্রেশনটির মান অবশ্যই ' true হতে হবে।

একটি অবস্থা এবং অবস্থা পরিবর্তনের বিজ্ঞপ্তি এক নয়:

  • একটি শর্ত এমন একটি ঘটনাকে বোঝায় যা ক্রিয়াকলাপগুলি চলার জন্য স্টার্টার 'চালু' হওয়ার মুহূর্তে অবশ্যই সত্য হতে হবে।
  • অবস্থা পরিবর্তনের বিজ্ঞপ্তি হলো এমন একটি ঘটনা , যেমন অন্য কোনো ডিভাইস চালু হওয়া।

ক্রিয়া হলো এমন কার্যক্রম যা প্রারম্ভিক এবং যেকোনো সীমাবদ্ধ শর্ত পূরণ হলে সম্পাদিত হয়।

আমাদের অটোমেশনের automations ব্লকে দুটি নিয়ম রয়েছে:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

নিম্নলিখিত বিষয়গুলো লক্ষ্য করুন:

  1. দুটি automations নিয়ম আছে। প্রথমটি বাতিটি জ্বালায় এবং দ্বিতীয়টি বাতিটি নিভিয়ে দেয়।
  2. প্রতিটি নিয়মের একটিমাত্র কাজ রয়েছে।
  3. on: true মানে বাতিটি জ্বালানো । একইভাবে, on: false মানে বাতিটি নিভিয়ে দেওয়া
  4. প্রতিটি নিয়মের একটিমাত্র time.schedule স্টার্টার থাকে, যা অটোমেশনকে বলে দেয় কোন সময়ে অটোমেশনটি শুরু করতে হবে।
  5. এই অটোমেশনে কোনো শর্ত নেই।

৫. সম্পূর্ণ স্ক্রিপ্টেড অটোমেশন

এই সব অংশ একত্রিত করলে, সম্পূর্ণ স্ক্রিপ্টেড অটোমেশনটি দেখতে এইরকম হয়:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. উপরের অটোমেশনটি কপি করুন।
  2. ওয়েবের জন্য গুগল হোমে যান।
  3. তিনটি তারকাযুক্ত একটি আইকন দ্বারা চিহ্নিত অটোমেশন ট্যাবটি নির্বাচন করুন:
    অটোমেশন ট্যাব
  4. + নতুন যোগ করুন-এ ক্লিক করুন।
  5. স্ক্রিপ্ট এডিটর থেকে অটোমেশন টেমপ্লেটটি মুছে ফেলুন।
  6. আপনার অটোমেশনটি পেস্ট করুন।
  7. আপনার ডিভাইসের নাম এবং অবস্থান দিয়ে Desk light - Office প্রতিস্থাপন করুন।
  8. 'Validate'-এ ক্লিক করুন। স্ক্রিপ্ট এডিটর আপনার স্ক্রিপ্টেড অটোমেশনের ভুল অংশগুলোর নিচে দাগ দিয়ে দেবে। যে কোনো ভুল দেখা দিলে তা সমাধান করুন এবং আর কোনো ভুল না থাকা পর্যন্ত যাচাই ও সংশোধন করতে থাকুন। উদাহরণস্বরূপ, আপনার ডিভাইসের নাম ভিন্ন হতে পারে। যদি এমন হয়, তাহলে একটি বৈধ ডিভাইসের নাম বেছে নিতে আপনি অটোকমপ্লিট ফিচারটি ব্যবহার করতে পারেন।
  9. সংরক্ষণ করুন- এ ক্লিক করুন।
  10. আপনার স্ক্রিপ্টের টেক্সটের নিচে থাকা অ্যাক্টিভেট সুইচটি অন অবস্থায় আছে কিনা, তা নিশ্চিত করুন: সম্পূর্ণরূপে যাচাইকৃত এবং সক্রিয় স্ক্রিপ্টেড অটোমেশন সহ স্ক্রিপ্ট এডিটর

৬. অটোমেশনটি পরীক্ষা করুন

  1. আপনার ডিভাইসটি প্লাগ ইন করা আছে এবং গুগল হোম অ্যাপে দেখা যাচ্ছে কিনা, তা নিশ্চিত করুন।
  2. ডিভাইসটি বর্তমানে চালু থাকলে, সেটি বন্ধ করুন।
  3. Google Home for web- এর Automations পৃষ্ঠায়, আপনার অটোমেশনটির পাশে থাকা 'run' বোতামটিতে ক্লিক করুন।
    স্ক্রিপ্ট রান\nবাটন
  4. ডিভাইসটি চালু হওয়া উচিত।

এবার, অটোমেশনটি পরীক্ষা করা যাক।

  1. ডিভাইসটি বন্ধ করুন।
  2. অটোমেশনটি সম্পাদনা করুন এবং ৭ নম্বর লাইনে 'ডিভাইস অন' সময়টি পরিবর্তন করে পাঁচ মিনিট ভবিষ্যতের একটি সময় দিন।
  3. ১৪ নং লাইনে 'ডিভাইস অফ' সময়টি 'অন টাইম'-এর অল্প পরের কোনো সময়ে পরিবর্তন করুন।
  4. 'Validate'- এ ক্লিক করুন। যে কোনো ত্রুটি দেখা দিলে তা সমাধান করুন।
  5. সংরক্ষণ করুন- এ ক্লিক করুন।
  6. নিশ্চিত করুন যে অ্যাক্টিভেট সুইচটি অন অবস্থানে আছে।
  7. দুটি নির্দিষ্ট শুরুর সময় পার হওয়া পর্যন্ত অপেক্ষা করুন। আপনার উল্লেখিত সময়ে ডিভাইসটি চালু হয়ে আবার বন্ধ হয়ে যাবে।

৭. অভিনন্দন!

আপনি সফলভাবে একটি স্ক্রিপ্টেড অটোমেশন তৈরি করেছেন - চমৎকার!

এই কোডল্যাবে আপনি শিখেছেন কীভাবে:

  • কীভাবে একটি অটোমেশন ডিজাইন ও লিখতে হয়।
  • অটোমেশন কীভাবে পরীক্ষা করবেন

পরবর্তী পদক্ষেপ

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

নিম্নলিখিত ব্যায়ামগুলি চেষ্টা করুন:

  • অটোমেশনে আরও time.schedule স্টার্টার যোগ করুন।
  • একই সময়সূচীতে অন্য একটি ডিভাইস চালু ও বন্ধ করার জন্য অটোমেশনটি পরিবর্তন করুন।
  • time.schedule স্টার্টারগুলো না সরিয়ে, অটোমেশনটি এমনভাবে পরিবর্তন করুন যাতে শুধুমাত্র অন্য কোনো ডিভাইস চালু হলেই ডিভাইসগুলো চালু হয়। condition clause ব্যবহার করা হয়েছে এমন উদাহরণ স্ক্রিপ্টগুলো দেখুন।
  • অটোমেশনটি এমনভাবে পরিবর্তন করুন যাতে শুধুমাত্র বাড়িতে কেউ থাকলেই ডিভাইসগুলো চালু হয়।

আরও পড়ুন

গুগল হোম অটোমেশন সম্পর্কে আরও জানতে, অটোমেশন রেফারেন্স ডকুমেন্টেশনটি দেখুন: