অটোমেশন এপিআই ব্যবহার শুরু করার আগে, আপনার অটোমেশনগুলো ডিজাইন করা উচিত।
প্রতিটি অটোমেশনের জন্য নিম্নলিখিত প্যারামিটারগুলো নির্ধারণ করুন:
- যে পরিস্থিতিতে ব্যবহারকারীকে অটোমেশনের পরামর্শ দেওয়া উচিত। উদাহরণস্বরূপ, যদি ব্যবহারকারী সম্প্রতি তার বাড়িতে তিনটি নতুন লাইট লাগিয়ে থাকেন, তাহলে তিনি লাইট নিয়ন্ত্রণের জন্য বিশেষভাবে তৈরি একটি অটোমেশনে আগ্রহী হতে পারেন।
- অটোমেশনের জন্য কোন ধরনের ডিভাইস প্রয়োজন। উদাহরণস্বরূপ, যদি ব্যবহারকারী সম্প্রতি তার বাড়িতে তিনটি নতুন লাইট যোগ করে থাকেন, তাহলে তিনি লাইট নিয়ন্ত্রণের জন্য বিশেষভাবে তৈরি একটি অটোমেশনে আগ্রহী হতে পারেন। লাইট ডিভাইসের উদাহরণমূলক প্রকারগুলির মধ্যে রয়েছে
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDevice, বাExtendedColorLightDevice। - অটোমেশনের জন্য কোন কোন ট্রেইট অ্যাট্রিবিউট এবং কমান্ড প্রয়োজন, এবং সেগুলো অ্যান্ড্রয়েডের অটোমেশন এপিআই দ্বারা সমর্থিত কিনা।
- যে বৈশিষ্ট্যগুলো অটোমেশনকে স্টার্টার হিসেবে সক্রিয় করবে। অ্যান্ড্রয়েডের অটোমেশন কম্পোনেন্ট অংশে স্টার্টার নিয়ে আলোচনা করা হয়েছে।
- অতিরিক্ত শর্তাবলী যা নির্ধারণ করে যে অটোমেশনটি আসলে চালানো হবে কিনা এবং কোন কাজগুলো সম্পাদন করা হবে।
- অটোমেশনের কার্যপ্রবাহ। এটি কি ক্রমানুসারে নাকি সমান্তরালভাবে চলবে? আপনার কি একাধিক লজিক পাথের প্রয়োজন আছে?
ডিজাইন করার সময়, অটোমেশনের কার্যপ্রবাহকে নোড-বাই-নোড ডায়াগ্রামের মাধ্যমে চিত্রিত করা এবং প্রতিটি ধাপে প্রয়োজনীয় লজিক অন্তর্ভুক্ত করা সহায়ক হতে পারে।
একবার আপনি একটি অটোমেশন ডিজাইন করে ফেললে, সেটি তৈরি করতে অটোমেশন ডিএসএল (Automation DSL) ব্যবহার করুন। আপনার তৈরি করা অটোমেশনটি মূলত একটি 'টেমপ্লেট' — এর মধ্যে থাকা যেকোনো স্ট্রাকচার এবং ডিভাইস হলো প্লেসহোল্ডার এবং যখন কোনো ব্যবহারকারী নিজের ব্যবহারের জন্য অটোমেশনটি 'অ্যাডপ্ট' করেন, তখন তাদের নির্দিষ্ট স্ট্রাকচার ও ডিভাইস দিয়ে এগুলো পূরণ করা হয়।
নিচে বিভিন্ন ধরণের অটোমেশনের উদাহরণ দেওয়া হলো যা একটি অ্যাপ হোম এপিআই ব্যবহার করে তৈরি করতে পারে। এই উদাহরণগুলো সম্পর্কিত কোডের অংশবিশেষের জন্য ‘বিল্ড অ্যান অটোমেশন’ পৃষ্ঠাটি দেখুন।
সহজ অটোমেশন
ধরুন, আপনাকে এমন একটি অ্যাপ লিখতে হবে যা সকাল ৮:০০ টায় ব্লাইন্ডগুলো তোলার জন্য একটি অটোমেশন তৈরি করবে। এটি করার জন্য, অ্যাপটির এমন একটি তালিকা প্রয়োজন যেখানে স্ট্রাকচারে থাকা অটোমেশন-সমর্থিত ব্লাইন্ডগুলো ( WindowCoveringDevice ডিভাইস টাইপের ডিভাইস) থাকবে, যা ডিসকভারি এপিআই (Discovery API) দ্বারা সরবরাহ করা যেতে পারে।
যেসব অটোমেশন একটি নির্দিষ্ট সময়ে চালু হওয়া প্রয়োজন, সেগুলোর ক্ষেত্রে আপনাকে এটাও নিশ্চিত করতে হবে যে ব্যবহারকারী Google Home app (GHA) তার নির্বাচিত কাঠামোর জন্য একটি রাস্তার ঠিকানা নির্ধারণ করেছেন। অন্যথায়, অটোমেশনটি জানতে পারে না যে এটি কোন টাইম জোনে চালু হবে। কাঠামোটিতে কোনো ঠিকানা নির্ধারণ করা হয়েছে কি না, তা জানতে ডিসকভারি এপিআই (Discovery API) আপনাকে সাহায্য করতে পারে।
সুতরাং কার্য সম্পাদনের প্রবাহটি দেখতে অনেকটা এইরকম হবে:
- ডিসকভারি এপিআই ব্যবহার করে
WindowCoveringDeviceডিভাইসগুলোর তালিকা সংগ্রহ করুন। - যদি রাস্তার ঠিকানা পূরণ করা না থাকে, তাহলে ব্যবহারকারীকে জানান যে তাকে একটি রাস্তার ঠিকানা প্রদান করতে হবে এবং কার্যক্রম স্থগিত করুন।
- অন্যথায়, অটোমেশনটি সংজ্ঞায়িত করুন:
- সকাল ৮:০০ টায় অটোমেশনটি চালু করুন।
- প্রতিটি ব্লাইন্ডের জন্য,
WindowCoveringট্রেইটেরupOrOpenকমান্ডটি কল করুন।
জটিল স্বয়ংক্রিয়করণ
এমন একটি অ্যাপের কথা ভাবুন যা গতি শনাক্ত হলে আলো জ্বালিয়ে-নিভিয়ে একটি অটোমেশন তৈরি করে।
এই অ্যাপটি বাস্তবায়নের প্রথম কাজগুলোর মধ্যে একটি হলো ডিসকভারি এপিআই (Discovery API) ব্যবহার করে ব্যবহারকারীর বাড়িতে কী কী লাইট উপলব্ধ আছে তা খুঁজে বের করা। এই তথ্যের সাহায্যে, আপনার অ্যাপটি এখন উপলব্ধ লাইটগুলো প্রদর্শন করতে পারবে এবং সম্ভবত ব্যবহারকারীকে বেছে নেওয়ার সুযোগ দেবে যে তিনি কোন লাইটগুলো মিটমিট করে জ্বালাতে চান।
কার্য সম্পাদনের প্রবাহ:
- ডিসকভারি এপিআই ব্যবহার করে স্ট্রাকচারটিতে উপস্থিত লাইট ডিভাইসগুলোর তালিকা সংগ্রহ করুন, যেগুলো হলো
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDevice, বাExtendedColorLightDeviceডিভাইস টাইপের যেকোনো ডিভাইস। - কোন বাতিগুলো মিটমিট করে জ্বলবে তা নির্বাচন করার একটি উপায় রাখুন, সম্ভবত একটি কাস্টম সেটিংস প্যানেলের মাধ্যমে।
- অটোমেশন সংজ্ঞায়িত করুন:
-
AreaPresenceStateনিরীক্ষণের মাধ্যমে, যখনই কেউ প্রাঙ্গণ ত্যাগ করে বা সেখানে আসে, অটোমেশনটি চালু করুন। -
presenceStateযদি কাঠামোটি দখলকৃত থাকার ইঙ্গিত পাওয়া যায়, তাহলে নির্বাচিত বাতিগুলো মিটমিট করে জ্বালান।
-
জেনেরিক অটোমেশন
আরও উন্নত অটোমেশনের একটি উদাহরণ হিসেবে এমন একটি অটোমেশনের কথা ভাবা যেতে পারে, যা ব্যবহারকারীকে তার বাড়িতে থাকা যেকোনো বা সমস্ত ডিভাইসের উপর ভিত্তি করে একটি উন্মুক্ত অটোমেশন তৈরি করার প্রক্রিয়াটি ধাপে ধাপে বুঝিয়ে দেয়।
স্বয়ংক্রিয় প্রক্রিয়াটি প্রথমে ব্যবহারকারীকে একটি কাঠামো নির্বাচন করতে বলতে পারে।
এরপর অটোমেশনটি কাঠামোর সমস্ত রুমকে একটি প্রসারণযোগ্য আউটলাইন ভিউতে প্রদর্শন করতে পারে, যেখানে একটি রুম প্রসারিত করলে তার ভেতরের ডিভাইসগুলো দেখা যায়। কোনো ডিভাইসকে আরও প্রসারিত করলে সেই ডিভাইস দ্বারা সমর্থিত স্টার্টার এবং কমান্ডগুলোর একটি তালিকা পাওয়া যায়।
ব্যবহারকারী তার পছন্দের ডিভাইস, স্টার্টার এবং কমান্ডগুলো বেছে নিতে পারতেন এবং অটোমেশনটি তাকে ধাপে ধাপে একটি অটোমেশন তৈরি করতে সাহায্য করত।
ব্যবহারকারীর সমস্ত পছন্দ এবং সিদ্ধান্ত চূড়ান্ত হয়ে গেলে, অটোমেশনটি কোডটি তৈরি করবে এবং তাদের নির্বাচিত কাঠামোতে সংরক্ষণ করবে।
উচ্চ স্তরে, এই ধরনের একটি অটোমেশনের জন্য অ্যান্ড্রয়েডের স্ট্রাকচার এপিআই , অ্যান্ড্রয়েডের ডিভাইস এপিআই এবং ডিসকভারি এপিআই ব্যবহার করে ব্যবহারকারীর বাড়ি সম্পর্কে বিভিন্ন ধরনের ডেটা সংগ্রহ করতে হবে।
| এপিআই | তথ্য |
|---|---|
| স্ট্রাকচার এপিআই |
|
| ডিভাইস এপিআই |
|
| ডিসকভারি এপিআই |
|