
আপনার যদি একটি আধুনিক রোবটিক লনমোয়ার থাকে এবং আপনি ইতিমধ্যেই হোম অ্যাসিস্ট্যান্ট ব্যবহার করেন, তবে এটিকে শুধু এর অফিসিয়াল অ্যাপের মধ্যে সীমাবদ্ধ না রেখে আপনার স্মার্ট হোম ইকোসিস্টেমের একটি অবিচ্ছেদ্য অংশ করে তোলা থেকে আপনি মাত্র এক ধাপ দূরে আছেন। এটিকে সংযুক্ত করার মাধ্যমে আপনি ঠিক করতে পারবেন কখন এবং কীভাবে এটি ঘাস কাটবে: আবহাওয়ার উপর ভিত্তি করে, বাগানে মানুষ আছে কিনা তার উপর ভিত্তি করে, অতিরিক্ত সৌরশক্তির উপর ভিত্তি করে, অথবা কেবল আপনার পরিবারের সময়সূচী অনুযায়ী।
এই আর্টিকেলে, আমরা বিস্তারিত ও বাস্তবসম্মতভাবে দেখব কিভাবে প্রধান স্মার্ট লনমোয়ার এবং ইন্টিগ্রেশনগুলো হোম অ্যাসিস্ট্যান্টের সাথে কাজ করে : ম্যামোশন (লুবা/ইউকা), MQTT-এর মাধ্যমে বোশ ইন্ডেগো, এর অফিসিয়াল API ব্যবহার করে হাস্কভার্না অটোমোয়ার; ম্যাটারের মাধ্যমে ম্যামোশনকে একটি ভ্যাকুয়াম ক্লিনার হিসেবে অ্যাপল হোমে যুক্ত করার কৌশল; এবং যারা কোন রোবট কিনবেন তা নিয়ে গবেষণা শুরু করছেন, হোম অ্যাসিস্ট্যান্ট তাদের জন্য কী কী সুবিধা দেয়। সবকিছু স্প্যানিশ ভাষায় (স্পেন) ব্যাখ্যা করা হয়েছে এবং এতে বাস্তব জগতের অটোমেশনের প্রচুর ধারণা অন্তর্ভুক্ত রয়েছে।
হোম অ্যাসিস্ট্যান্টের সাথে একটি স্মার্ট লনমাওয়ার সংহত করার সুবিধা কী কী?
যখন আপনার লনমোয়ারটি শুধুমাত্র তার অ্যাপের মধ্যেই সীমাবদ্ধ থাকে, তখন এটি আপনার স্মার্ট হোমের বাকি অংশ থেকে সম্পূর্ণ বিচ্ছিন্ন হয়ে একটি ‘সিলো’- তে আবদ্ধ থাকে । হোম অ্যাসিস্ট্যান্টের সাথে ইন্টিগ্রেশন সেই সিলো ভেঙে দেয় এবং রোবটটিকে অটোমেশনের জন্য ব্যবহারযোগ্য এনটিটি, সেন্সর ও সার্ভিসসহ আরেকটি সাধারণ ডিভাইসে রূপান্তরিত করে।
কার্যত, এর অর্থ হলো আপনি ব্যাটারির স্তর, কাজের অবস্থা, জিপিএস অবস্থান, কাটার এলাকা বা আবহাওয়ার পূর্বাভাসের মতো ডেটা ব্যবহার করে সিদ্ধান্ত নিতে পারেন যে রোবটটি কাটার জন্য বাইরে যাবে, ঘাঁটিতে ফিরে আসবে, কাজ থামিয়ে রাখবে, নাকি স্থির থাকবে।
হোম অ্যাসিস্ট্যান্টে লনমাওয়ার ব্যবহার করলে কিছু সাধারণ ধারণা খুবই অর্থবহ হয়:
- বৃষ্টি হলে কাটা বন্ধ করুন। স্থানীয় সেন্সর বা সময় সংহতকরণ ব্যবহার করে।
- দিনের সবচেয়ে উষ্ণ সময় এড়িয়ে চলুন অথবা লনের ঝুঁকি নিন এবং কাজটি ভোরবেলা বা সন্ধ্যার জন্য নির্ধারণ করুন।
- যখন ফটোভোলটাইক উদ্বৃত্ত থাকে তখন শাটডাউন শুরু করুন, যদি আপনি হোম অ্যাসিস্ট্যান্টে আপনার সৌর উৎপাদন পর্যবেক্ষণ করেন।
- বাগানে মানুষ থাকলে রোবটটিকে ব্লক করুন। (বাচ্চারা খেলছে, বারবিকিউতে দর্শনার্থীরা, বাগানের গেট খোলা, ইত্যাদি)।
- পারিবারিক ক্যালেন্ডারের সাথে কাটিংটি সারিবদ্ধ করুন। যাতে এটি সভা, ঘুম, বা বিশেষ অনুষ্ঠানগুলিতে ব্যাঘাত না ঘটায়।
এই সবকিছু সম্ভব কারণ, একবার সংযুক্ত হয়ে গেলে, রোবটটি এমন সব সেন্সর (ব্যাটারি, অবস্থা, মোড, জোন, ত্রুটি…) এবং অ্যাকশন (স্টার্ট, পজ, ডক, ওভাররাইড, ইত্যাদি) প্রকাশ করে, যেগুলোকে আপনার স্মার্ট হোমের বাকি অংশের সাথে সমন্বয় করা যায়।
হোম অ্যাসিস্ট্যান্টে ম্যামোশন লনমাওয়ার (লুবা এবং ইউকা) এর একীকরণ
ম্যামোশন মডেলগুলিতে (লুবা, ইউকা এবং সম্পর্কিত মডেল) রয়েছে ব্যাপক কমিউনিটি ইন্টিগ্রেশন, যা রোবটটিকে হোম অ্যাসিস্ট্যান্টের মধ্যে একটি নেটিভ লনমোয়ারে রূপান্তরিত করে । সেখান থেকে, আপনি কয়েক ডজন সেন্সর থেকে তথ্য পড়তে এবং উন্নত ঘাস কাটার কমান্ড কার্যকর করতে পারেন।
এই ইন্টিগ্রেশনের সবচেয়ে বড় সুবিধা হলো, এটি রোবটটিকে চালু, বিরতি, বন্ধ করা বা বেসে ফেরত পাঠানোর পরিষেবা প্রদানের পাশাপাশি লনমোয়ার থেকে ব্যাটারির লেভেল, অপারেটিং স্ট্যাটাস, জিপিএস পজিশন, স্যাটেলাইটের সংখ্যা, অ্যাক্টিভ জোন, কানেকশনের ধরন (ওয়াইফাই/বিএলই/ফোরজি) এবং অন্যান্য মডেল-নির্দিষ্ট প্যারামিটারের মতো ডেটা সংগ্রহ করে।
প্রয়োজনীয়তার বিষয়ে বলতে গেলে, Home Assistant-কে একটি সাম্প্রতিক সংস্করণে (সর্বনিম্ন 2025.3.0) আপডেট করা এবং HACS (Home Assistant Community Store) থাকা জরুরি , কারণ এই ইন্টিগ্রেশনটি কোরের অংশ নয় এবং এটি একটি কাস্টম রিপোজিটরি হিসেবে ইনস্টল করা হয়।
সবচেয়ে সূক্ষ্ম বিষয়টি প্রযুক্তিগত নয়, বরং অ্যাকাউন্ট সম্পর্কিত: শুধুমাত্র হোম অ্যাসিস্ট্যান্ট-এর জন্য একটি দ্বিতীয় ম্যামোশন অ্যাকাউন্ট তৈরি করার পরামর্শ দেওয়া হয় । আপনি যদি অ্যাপটিতে আগে থেকেই ব্যবহৃত মূল অ্যাকাউন্টটি ব্যবহার করেন, তাহলে প্রতিবার হোম অ্যাসিস্ট্যান্ট লগইন রিনিউ করার সময় আপনার ফোনে বিরক্তিকর সংযোগ বিচ্ছিন্ন হওয়ার ঝুঁকি থাকে।
দ্বিতীয় অ্যাকাউন্টটি প্রস্তুত করার জন্য সাধারণ কর্মপ্রবাহ হল:
- ম্যামোশন অ্যাপে একটি ভিন্ন ইমেল ঠিকানা ব্যবহার করে একটি নতুন অ্যাকাউন্ট তৈরি করুন।
- আপনার মূল অ্যাকাউন্টে ফিরে যান এবং রোবটটি ভাগ করে নিন সেকেন্ডারি অ্যাকাউন্টের সাথে।
- সেকেন্ডারি অ্যাকাউন্ট দিয়ে লগ ইন করুন, শেয়ার করা ডিভাইসটি গ্রহণ করুন এবং এটি শুধুমাত্র হোম অ্যাসিস্ট্যান্টের জন্য সংরক্ষণ করুন।
অ্যাকাউন্টস সেকশনটি প্রস্তুত হয়ে গেলে, HACS থেকে কাস্টম রিপোজিটরি "https://github.com/mikey0000/Mammotion-HA"-কে একটি ইন্টিগ্রেশন হিসেবে যুক্ত করে, ইনস্টল করে এবং Home Assistant রিস্টার্ট করার মাধ্যমে ইন্টিগ্রেশনটি ইনস্টল করা হয়, যাতে এটি ইন্টিগ্রেশনস মেনুতে উপলব্ধ হয়।
সেটিংস → ডিভাইস এবং পরিষেবা → ইন্টিগ্রেশন যোগ করুন-এ ইন্টিগ্রেশন কনফিগার করার সময়, আপনি রোবটটিকে ব্লুটুথ লো এনার্জি (BLE) নাকি ওয়াইফাই/4G এর মাধ্যমে সংযুক্ত করবেন তা বেছে নিতে পারেন । আপনি যদি BLE ব্যবহার করেন এবং হোম অ্যাসিস্ট্যান্ট সার্ভারটি বাগান থেকে দূরে থাকে, তাহলে আপনি ESPHome-এর সাথে একটি ব্লুটুথ প্রক্সি ব্যবহার করতে পারেন (একটি ESP32 যা লনমোয়ারের কাছে একটি BLE ব্রিজ হিসেবে কাজ করে)।
ওয়াইফাই সংযোগের মাধ্যমে, যা বাগানটি ভালোভাবে আচ্ছাদিত থাকলে সাধারণত সবচেয়ে সুবিধাজনক, কেবল দ্বিতীয় ম্যামোশন অ্যাকাউন্টের ইমেল এবং পাসওয়ার্ডটি প্রবেশ করান এবং ইন্টিগ্রেশন প্রক্রিয়াটি এর সত্তাগুলো সহ ডিভাইসটি তৈরি করা শুরু করবে।
একবার যুক্ত হয়ে গেলে, ডিভাইস প্যানেলে আপনি আপনার লুবা/ইউকা দেখতে পাবেন, যেখানে কাটিং কন্ট্রোল এবং মডেল অনুযায়ী ব্যাটারি, বর্তমান অবস্থা (ঘাস কাটা, চার্জিং, নিষ্ক্রিয়…), লিঙ্কের ধরন, অবস্থান, স্যাটেলাইটের সংখ্যা, সক্রিয় কর্মক্ষেত্র, কাটার অগ্রগতি এবং আরও অনেক সেন্সর থাকবে।
সেন্সরগুলোর পাশাপাশি, এই ইন্টিগ্রেশনটি mammotion.start_mow- এর মতো শক্তিশালী সার্ভিসগুলো ব্যবহারের সুযোগ দেয়, যা আপনাকে প্যারামিটার-ভিত্তিক ঘাস কাটা শুরু করতে দেয়। Developer Tools → Actions থেকে, আপনি এই সার্ভিসটি নির্বাচন করতে পারেন, আপনার লনমোয়ার বেছে নিতে পারেন এবং এতে গতি, পাথ মোড, বাধা শনাক্তকরণ, কাটার উচ্চতা (Luba মডেলে) বা এলাকার তালিকার মতো প্যারামিটার সেট করতে পারেন।
অনেক ক্ষেত্রে, পুরো রেঞ্জের জন্য সাধারণ প্যারামিটারগুলির (যেমন, গতি, নেভিগেশন মোড বা বাধা সংবেদনশীলতা) এবং ইউকা (সংগ্রহ, প্রান্ত, ইত্যাদি) বা লুবার (কাটার উচ্চতা, বিভিন্ন ম্যাপিং কৌশল) জন্য নির্দিষ্ট অন্যান্য প্যারামিটারগুলির সংমিশ্রণ থাকে, যা আপনাকে অত্যন্ত সূক্ষ্মতার সাথে কাটার পরিস্থিতিগুলি মানিয়ে নিতে সাহায্য করে ।
ম্যামোশন এবং হোম অ্যাসিস্ট্যান্টের সাহায্যে দরকারী অটোমেশন
আসল অগ্রগতি তখনই আসে, যখন আপনি লনমোয়ারের কার্যপ্রণালীকে আপনার স্মার্ট হোমের বাকি অংশের সাথে সংযুক্ত করে অটোমেশন তৈরি করা শুরু করেন। এর অবস্থা, ব্যাটারির স্তর এবং অবস্থান জানার মাধ্যমে, আপনি সাধারণ অ্যাপ প্রোগ্রামিংয়ের চেয়ে অনেক বেশি সুনির্দিষ্ট সিদ্ধান্ত নিতে পারেন।
এর একটি উৎকৃষ্ট উদাহরণ হলো আবহাওয়ার প্রতিক্রিয়া: যদি আপনার স্থানীয় আবহাওয়া কেন্দ্র, বাইরের জিগবি সেন্সর, বা কোনো পূর্বাভাস ইন্টিগ্রেশন আসন্ন বৃষ্টির উচ্চ সম্ভাবনা শনাক্ত করে , তাহলে লন কাদায় পরিণত হওয়ার আগেই হোম অ্যাসিস্ট্যান্ট লনমোয়ারকে কাজ বন্ধ করে তার ঘাঁটিতে ফিরে যাওয়ার নির্দেশ দিতে পারে।
চরম তাপমাত্রার ক্ষেত্রেও একই রকম কিছু করা যেতে পারে। উদাহরণস্বরূপ, যদি বাইরের কোনো সেন্সর ৩০° সেলসিয়াসের বেশি তাপমাত্রা দেখায়, তাহলে সরাসরি সূর্যের আলোতে কাজ করা এড়াতে আপনি ঘাস কাটা বিলম্বিত করতে পারেন । এতে একদিকে যেমন লন সুরক্ষিত থাকবে, তেমনি রোবটের ব্যাটারি ও অন্যান্য যন্ত্রাংশও সাশ্রয় হবে।
আপনার হোম অ্যাসিস্ট্যান্টে যদি ফটোভোল্টাইক সিস্টেম সংযুক্ত থাকে, তবে আরেকটি অত্যন্ত দরকারি অটোমেশন ফিচার হলো উদ্বৃত্ত সৌরশক্তি ব্যবহার করে ঘাস কাটা : যখন সিস্টেমটি শনাক্ত করে যে আপনি গ্রিডে শক্তি সরবরাহ করছেন (অথবা উৎপাদন একটি নির্দিষ্ট সীমা অতিক্রম করেছে), তখন এটি একটি "গ্রহণযোগ্য" সময়সীমার মধ্যে লনমোয়ারটি চালু করে দেয়। এইভাবে, রোবটটির পরবর্তী রিচার্জের একটি বড় অংশ আপনার নিজের সৌরশক্তি দ্বারা চালিত হয়।
নিরাপত্তা ও সহাবস্থানের নিয়মকানুন স্থাপন করাও খুব সাধারণ একটি বিষয়: যদি বাগানের গেট খোলা হয়, কোনো ক্যামেরা মানুষের উপস্থিতি শনাক্ত করে, অথবা আপনি যদি "বারবিকিউ" বা "বাচ্চাদের খেলার" মোড চালু করেন, তবে যেকোনো অপ্রীতিকর পরিস্থিতি এড়াতে সিস্টেমটি ঘাস কাটা থামিয়ে দিতে পারে। এইভাবে, রোবটটি লনের মাঝখানে একটি অনাকাঙ্ক্ষিত উপাদান হয়ে থাকা বন্ধ করে দেয় , যা আপনার সবচেয়ে কম প্রত্যাশার মুহূর্তে উপদ্রব সৃষ্টি করতে পারত।
অবশেষে, হোম অ্যাসিস্ট্যান্ট-এ ফ্যামিলি ক্যালেন্ডার যুক্ত করার ফলে মিটিং, রিমোট ওয়ার্কের সময় বা নির্দিষ্ট সময়ে ঘাস কাটা বন্ধ হয়ে যায় (উদাহরণস্বরূপ, যদি ক্যালেন্ডারের কোনো ইভেন্টে "বাচ্চার ঘুম" নির্দেশ করা থাকে, তাহলে রোবটটি তার বেস-এ থেকে যায়)। তখন লনমোয়ারটি পরিবারের সময়সূচীর সাথে সমন্বয় করে বাড়ির আরেকজন সদস্যের মতো আচরণ করে ।
ইন্টারফেস পর্যায়ে, আপনার হাতে থাকা সমস্ত সেন্সর এবং কমান্ড ব্যবহার করে, আপনি রোবটটির জন্য একটি কাস্টম ড্যাশবোর্ড তৈরি করতে পারেন, যেখানে অ্যানিমেটেড কার্ড, কুইক কন্ট্রোল বাটন এবং একটি অত্যন্ত বিস্তারিত স্ট্যাটাস ডিসপ্লে থাকবে। রিয়েল টাইমে কাটার অগ্রগতি বা বর্তমান এলাকা দেখানোর জন্য দৃষ্টিনন্দন কার্ড তৈরি করতে HA-Animated-Cards-এর মতো প্রজেক্ট ব্যবহার করা একটি সাধারণ বিষয়।
"api.link.aliyun.com"-এ থাকা এপিআই অ্যাক্সেস করার সময় যদি টাইমআউট ত্রুটির কারণে ইন্টিগ্রেশন ব্যর্থ হয়, তাহলে আপনার রাউটার বা ফায়ারওয়াল পরীক্ষা করে দেখুন যে এটি চীনে হোস্ট করা পরিষেবাগুলিতে সংযোগ ব্লক করছে কিনা , যা নির্দিষ্ট কিছু নিরাপত্তা নীতির কারণে ঘটতে পারে। এছাড়াও, যদি অ্যাকাউন্ট সেটআপ প্রক্রিয়াটি ইমেল ঠিকানাটি প্রত্যাখ্যান করে, তবে রিপোজিটরি নিজেই ইমেলের পরিবর্তে "অ্যাকাউন্ট নম্বর" ব্যবহার করার পরামর্শ দেয়, কারণ এটি কখনও কখনও আরও ভালোভাবে কাজ করে।
ম্যাটার ব্যবহার করে অ্যাপল হোম থেকে উন্নত ম্যামথ নিয়ন্ত্রণ
হোম অ্যাসিস্ট্যান্ট-এ ম্যামোশন-এর ইন্টিগ্রেশন লনমোয়ারকে একটি `lawn_mower` এনটিটি হিসেবে প্রকাশ করে । সমস্যাটি হলো, ম্যাটার আজ পর্যন্ত লনমোয়ারের জন্য কোনো নির্দিষ্ট ডিভাইস টাইপ সমর্থন করে না, তাই সেই এনটিটি এবং একটি অ্যাপল হোম অ্যাকসেসরির মধ্যে কোনো সরাসরি ম্যাপিং নেই।
এর সমাধান নিহিত আছে এই বিষয়টি পর্যবেক্ষণ করার মধ্যে যে, হোম অটোমেশনের দৃষ্টিকোণ থেকে একটি স্বয়ংক্রিয় লনমোয়ার এবং একটি রোবট ভ্যাকুয়াম ক্লিনার কার্যত কার্যকারিতার দিক থেকে যমজ ভাই : উভয়ই নির্দিষ্ট এলাকার মধ্যে চলাচল করে, উভয়েরই ব্যাটারি, জোন, কাজের মোড, চালু/বিরতি/বন্ধ করার কমান্ড এবং “বেসে ফিরে আসার” ক্ষমতা রয়েছে।
ম্যাটারের স্পেসিফিকেশনে RoboticVacuumCleaner (0x0074) ডিভাইস টাইপটি অন্তর্ভুক্ত রয়েছে , যেখানে অপারেটিং স্ট্যাটাস, ক্লিনিং মোড, অপারেটিং মোডের জন্য ক্লাস্টার এবং, সবচেয়ে গুরুত্বপূর্ণভাবে, একটি সার্ভিস এরিয়া ক্লাস্টার রয়েছে যা লন কাটার এলাকার সাথে পুরোপুরি খাপ খায়।
কৌশলটি হলো Home Assistant-এ একটি টেমপ্লেট vacuum entity তৈরি করা যা Mammotion lawn_mower entity-কে "আবদ্ধ" করে: start/stop/pause/return to base কমান্ডগুলো ভ্যাকুয়ামের সমতুল্য হয়ে যায়, ব্যাটারির লেভেল লনমোয়ারের ব্যাটারি সেন্সর থেকে আসে, এবং জোনগুলো ভ্যাকুয়ামের "রুম" হিসাবে উপস্থাপিত হয়।
এই সবকিছু সেট আপ করার জন্য, আপনার Home Assistant-এ Mammotion ইন্টিগ্রেশন চালু থাকতে হবে, Home-Assistant-Matter-Hub প্লাগইনটি (বিশেষত RiDDiX দ্বারা রক্ষণাবেক্ষণ করা ফর্কটি), Apple Home হাব হিসেবে একটি সাম্প্রতিক HomePod বা Apple TV, এবং Home Assistant-এ লনমোয়ার জোন বাটনগুলো উপলব্ধ থাকতে হবে (Mammotion দ্বারা উন্মুক্ত করা button.*_zone_* এনটিটিগুলো)।
প্রথম ধাপ হলো Developer Tools → States-এ রোবটের সমস্ত প্রাসঙ্গিক এনটিটি খুঁজে বের করা: মূল lawn_mower.*, মোড এবং ব্যাটারি সেন্সর, জোন বাটন, টাস্ক ক্যানসেল বাটন, এবং পাথ মোড সিলেক্টর। এই নির্দিষ্ট আইডিগুলো ব্যবহার করে configuration.yaml-এ একটি ভ্যাকুয়াম টেমপ্লেট তৈরি করা হয়, যা "MODE_WORKING", "MODE_CHARGING" ইত্যাদির মতো অভ্যন্তরীণ স্টেটগুলোকে ক্লিনিং, ডকড, পজড বা আইডলের মতো ভ্যাকুয়াম স্টেটে রূপান্তরিত করে।
সেই টেমপ্লেট ভ্যাকুয়াম ক্লিনারটিও সংজ্ঞায়িত করে:
- El ব্যাটারি স্তর লনমাওয়ার ব্যাটারি সেন্সর থেকে মান নেওয়া।
- সংশ্লিষ্ট লন_মাওয়ার* এবং বোতাম.* পরিষেবা দ্বারা সমর্থিত স্টার্ট, স্টপ, পজ এবং রিটার্ন_টু_বেস কমান্ড।
- "fan_speeds" এর একটি তালিকা যা আসলে নির্বাচন করতে ব্যবহৃত হয় কাটার অঞ্চল (জোন এ, জোন বি, জোন সি…)।
- গুণ কক্ষ, যা JSON-এ ম্যাটার হাব দ্বারা প্রত্যাশিত ফর্ম্যাটে বিভিন্ন জোন সহ {id, name} অবজেক্টের একটি অ্যারে ধারণ করে।
এই "rooms" অ্যাট্রিবিউটটি অত্যন্ত গুরুত্বপূর্ণ, কারণ ম্যাটার হাবের লজিকে এমন একটি ফাংশন রয়েছে যা ভ্যাকুয়াম ক্লিনার এনটিটিতে এই ফিল্ডটি শনাক্ত করার পর স্বয়ংক্রিয়ভাবে সার্ভিসএরিয়া ক্লাস্টার তৈরি করে এবং সমর্থিত এলাকাগুলো পূরণ করে দেয়। এর ফলে, অ্যাপল হোমে আপনি প্রতিটি মপিং জোনকে ভ্যাকুয়াম ক্লিনারের ইন্টারফেসের একটি নির্বাচনযোগ্য "রুম" হিসেবেই দেখতে পান।
ঐচ্ছিকভাবে, আপনি একই টেমপ্লেট ব্লকের মধ্যে একটি টেমপ্লেট সিলেক্ট এনটিটি তৈরি করতে পারেন যা বিভিন্ন কাটিং পাথ মোডকে (single_grid, double_grid, segment_grid, no_grid) আরও ব্যবহার-বান্ধব নামে অনুবাদ করে, যেমন "লাইনে কাট," "জিগজ্যাগে কাট," "গ্রিডে কাট," বা "নো গ্রিড।" এই সিলেক্ট এনটিটিটি তখন ম্যাটার হাবে একটি ক্লিনিং মোড এনটিটি হিসাবে ব্যবহৃত হয়, যাতে অ্যাপল হোম তার রোবট ভ্যাকুয়াম ইন্টারফেসে এই নামগুলি প্রদর্শন করে।
এই টেমপ্লেটগুলি লোড করার জন্য Home Assistant যাচাই করে পুনরায় চালু করার পর, আমরা যাচাই করি যে নতুন entity vacuum.* সঠিক অবস্থায় আছে, ব্যাটারির স্তর পূর্ণ হয়েছে এবং rooms অ্যাট্রিবিউটে জোন JSON রয়েছে। এই ক্রমানুসারে, আমরা Matter Hub অংশে এগিয়ে যাই।
ম্যাটার হাব প্লাগইন ইন্টারফেসে, সার্ভার মোডে একটি নতুন ব্রিজ তৈরি করা হয়, এর এনটিটি ফিল্টারটি ভ্যাকুয়াম ক্লিনার টেমপ্লেটে সীমাবদ্ধ করা হয়, এবং একটি ম্যাপিং যোগ করা হয় যা নির্দেশ করে যে এই vacuum.*-কে RoboticVacuumCleaner টাইপের একটি ম্যাটার ডিভাইস হিসেবে প্রকাশ করা উচিত । কাট মোড সিলেক্ট এনটিটি তৈরি করা হয়ে থাকলে, সেটিও সেখানে লিঙ্ক করা যেতে পারে।
অ্যাড-অনটি রিস্টার্ট করার পর এবং এন্ডপয়েন্টে প্রত্যাশিত ক্লাস্টারগুলো (সমর্থিত এলাকাগুলোসহ সার্ভিসএরিয়া সহ) দেখা যাচ্ছে কিনা তা যাচাই করার পর, সরাসরি Apple Home অ্যাপে যান, "Add Accessory" নির্বাচন করুন, Matter Hub ব্রিজের QR কোডটি স্ক্যান করুন এবং পেয়ারিং প্রক্রিয়াটি সম্পন্ন করুন। এটি হয়ে গেলে, লনমোয়ারটি Apple Home-এ একটি রোবট ভ্যাকুয়াম হিসেবে প্লে/পজ/হোম বাটন, ব্যাটারির শতাংশ, জোন নির্বাচন এবং মোড নির্বাচনের সুবিধা সহ প্রদর্শিত হবে ।
কিছু সীমাবদ্ধতা উল্লেখ করা প্রয়োজন: আপাতত, অ্যাপল হোমে এলাকা নির্বাচন মূলত দৃশ্যমান, কারণ ম্যাটারের 'সিলেক্টএরিয়াস' কমান্ডটি এখনও এমন কোনো জেনেরিক HA সার্ভিসের সাথে সংযুক্ত নয় যা জোন বাটনগুলোকে সক্রিয় করে; লনমোয়ারটি বন্ধ থাকলে ক্লিনিং মোড 'আননোন' দেখাতে পারে, এবং যেকোনো ক্লাস্টার বা জোন ডেফিনিশন পরিবর্তনের জন্য সাধারণত অ্যাপল হোমে অ্যাকসেসরিটিকে রিমুভ করে পুনরায় চালু করার প্রয়োজন হয়।
MQTT এর মাধ্যমে Bosch Indego এর ইন্টিগ্রেশন
Bosch Indego লনমোয়ারগুলিতে Mammotion বা Husqvarna-র মতো ততটা নিবিড় নেটিভ Home Assistant ইন্টিগ্রেশন নেই, কিন্তু "Controller application and API for Bosch Indego Connect" নামে একটি খুবই নির্ভরযোগ্য প্রজেক্ট আছে যা এর API ব্যবহারের সুযোগ দেয় এবং এতে একটি MQTT অ্যাডাপ্টারও অন্তর্ভুক্ত রয়েছে যা HA-তে ইন্টিগ্রেট করার জন্য উপযুক্ত।
মূল ধারণাটি খুবই সহজ: IndegoMqttAdapter নামের একটি প্রসেস কোনো একটি মেশিনে (যেমন, উইন্ডোজ বা লিনাক্স, কিংবা একটি রাস্পবেরি পাই) চলে। এই প্রসেসটি আপনার ক্রেডেনশিয়াল ব্যবহার করে বোশ ক্লাউডের সাথে সংযোগ স্থাপন করে এবং একই সাথে আপনার লোকাল MQTT ব্রোকারে তথ্য প্রকাশ ও শোনার কাজ করে। হোম অ্যাসিস্ট্যান্ট এই MQTT টপিকগুলোকে সেন্সর হিসেবে পড়ে এবং অন্যান্য টপিকে মেসেজ প্রকাশ করার মাধ্যমে কমান্ড পাঠায়।
লিনাক্স পরিবেশে অ্যাডাপ্টারটি স্বয়ংক্রিয়ভাবে বুট করার জন্য, সিস্টেম ক্রনে @reboot সিনট্যাক্স সহ একটি লাইন যোগ করা খুবই সাধারণ, উদাহরণস্বরূপ:
@reboot /home/pi/indego/bin/IndegoMqttAdapter -c /home/pi/indego/IndegoMqttAdapterConfig.properties
IndegoMqttAdapterConfig.properties কনফিগারেশন ফাইলটিতে সমস্ত সংবেদনশীল ডেটা থাকে: Indego সার্ভিসের বেস URL , অফিসিয়াল অ্যাপে ব্যবহৃত ইউজারনেম ও পাসওয়ার্ড, MQTT ব্রোকারের অ্যাড্রেস (ip:port), ব্রোকার ক্রেডেনশিয়াল, মেসেজের জন্য রুট টপিক এবং মিলিসেকেন্ডে পোলিং ইন্টারভাল।
এই ধরনের একটি ফাইলের সাধারণ উদাহরণে indego.mqtt.device.username এবং password-এর মতো ফিল্ড, tcp://IP_BROKER:1883-কে নির্দেশকারী indego.mqtt.broker.connection প্যারামিটার, অ্যাডাপ্টারকে আলাদা করার জন্য ক্লায়েন্ট-আইডি, test/device/indego টাইপের একটি টপিক-রুট এবং প্রতি ৩০ সেকেন্ডে স্ট্যাটাস আপডেট করার জন্য প্রায় ৩০০০০ মিলিসেকেন্ডের একটি পোলিং-ইন্টারভাল-এমএস অন্তর্ভুক্ত থাকে ।
যেহেতু অ্যাডাপ্টারটি ইতিমধ্যেই MQTT-এর মাধ্যমে স্ট্যাটাস প্রকাশ করছে, তাই Home Assistant-এ আপনাকে শুধু configuration.yaml ফাইলে উপযুক্ত টপিকগুলো নির্দেশ করে MQTT সেন্সরগুলো ডিক্লেয়ার করতে হবে। সাধারণত পাওয়ার স্ট্যাটাস (অন/অফ) , অপারেটিং স্ট্যাটাস (ডক করা, চার্জিং, ঘাস কাটা, ডকে ফেরা ইত্যাদি), ঘাস কাটার শতাংশ, শেষবার কাটার পর থেকে অতিবাহিত সময় এবং মোট কাজের সময়ের জন্য এনটিটি তৈরি করা হয়।
ভ্যালু টেমপ্লেট ব্যবহার করে, MQTT-এর মাধ্যমে প্রাপ্ত ইংরেজি স্ট্যাটাসগুলো স্প্যানিশ টেক্সট স্ট্রিং-এ অনূদিত হয়, ফলে ব্যবহারকারী “লোডিং”, “ঘাস কাটা”, “বাড়ি ফেরা”, “চারপাশের জায়গা ছাঁটা”, “বাগানে অলসভাবে বসে থাকা”, “ব্যাটারি কম”, ইত্যাদি দেখতে পান। কার্ডে মেট্রিকগুলো আরও সহজে দেখানোর জন্য, কাজের মিনিটকে ৬০ দিয়ে ভাগ করে এবং রাউন্ডিং করে ঘণ্টায় রূপান্তর করা যায় ।
হোম অ্যাসিস্ট্যান্ট পুনরায় চালু হয়ে গেলে, এই সেন্সরগুলি একটি প্যানেল কার্ডে স্থাপন করা যেতে পারে যাতে এক নজরে বিদ্যুৎ অবস্থা, লনমাওয়ারের বর্তমান অবস্থা, ইতিমধ্যে কাটা এলাকার শতাংশ এবং কাজের সময় জানা যায়।
HA ইন্টারফেস থেকে Indego নিয়ন্ত্রণ করার জন্য সাধারণত এনটিটি-বাটন কার্ড বা হরাইজন্টাল স্ট্যাক ব্যবহার করা হয়, যার প্রতিটিতে তিনটি বাটন থাকে: একটি কাটিং শুরু করার জন্য (টপিক কমান্ডে MOW পেলোড পাঠিয়ে), আরেকটি থামানোর জন্য (PAUSE পেলোড), এবং তৃতীয়টি রোবটকে হোমে ফেরত পাঠানোর জন্য (RETURN পেলোড)। এই সমস্ত বাটন উপযুক্ত টপিক এবং পেলোড সহ mqtt.publish সার্ভিসটি চালু করে।
এটি চালু হয়ে গেলে, আপনি এখন অন্যান্য রোবটের মতোই অটোমেশন ডিজাইন করতে পারবেন: যেমন, রোবটের MQTT স্ট্যাটাসের সাথে AccuWeather-এর মতো কোনো ইন্টিগ্রেশন থেকে পাওয়া ডেটা একত্রিত করে, শুধুমাত্র বৃষ্টি না হলে বা বৃষ্টির সম্ভাবনা না থাকলে সকাল ৬টায় ঘাস কাটা শুরু করা। অথবা, লনমোয়ার ঘাস কাটা শুরু করলে, একটি চক্র শেষ করলে, বা বাগানে আটকে গেলে টেলিগ্রাম বা স্পিকারের মাধ্যমে নোটিফিকেশন পাঠানো।
এই MQTT-ভিত্তিক পদ্ধতির সুবিধা হলো এটি অত্যন্ত নমনীয়: যেহেতু সবকিছু টপিকের মাধ্যমে পরিচালিত হয়, আপনি এটিকে সহজেই অন্যান্য সিস্টেম, ড্যাশবোর্ড বা উন্নত অটোমেশনের সাথে যুক্ত করতে পারেন , এবং এর জন্য হোম অ্যাসিস্ট্যান্ট কোরে কোনো নির্দিষ্ট অফিশিয়াল ইন্ডেগো ইন্টিগ্রেশন থাকার উপর নির্ভর করতে হয় না।
হোম অ্যাসিস্ট্যান্টের সাথে Husqvarna Automower-এর অফিসিয়াল ইন্টিগ্রেশন
হুসকোয়ার্না তার নিজস্ব ক্লাউড এপিআই ব্যবহার করে, অটোমোয়ার কানেক্ট বা অটোমোয়ার কানেক্ট মডিউলযুক্ত অটোমোয়ারগুলোর জন্য আনুষ্ঠানিক ইন্টিগ্রেশন প্রদান করে । এর মাধ্যমে মোয়ারের অবস্থা, পরিসংখ্যান এবং নিয়ন্ত্রণ সম্পর্কে অত্যন্ত বিস্তারিত তথ্য পাওয়া যায়।
এই ইন্টিগ্রেশনটি ব্যবহার করার জন্য, আপনাকে হাস্কভার্না ডেভেলপার পোর্টালে OAuth2 ক্রেডেনশিয়াল কনফিগার করতে হবে । আপনি অটোমোয়ার কানেক্ট অ্যাপে যে অ্যাকাউন্টটি ব্যবহার করেন, সেটি দিয়েই লগ ইন করুন, একটি নতুন অ্যাপ্লিকেশন তৈরি করুন এবং এটিকে একটি নির্দিষ্ট হোম অ্যাসিস্ট্যান্ট রিডাইরেক্ট ইউআরএল (https://my.home-assistant.io/redirect/oauth) নির্ধারণ করে দিন। এছাড়াও আপনাকে অথেনটিকেশন এবং অটোমোয়ার কানেক্ট এপিআই-গুলোও সংযুক্ত করতে হবে।
যখন আপনি অ্যাপ্লিকেশনটি তৈরি করেন, তখন পোর্টালটি একটি অ্যাপ্লিকেশন কী এবং একটি অ্যাপ্লিকেশন সিক্রেট তৈরি করে, যেগুলোকে অবশ্যই সংবেদনশীল ক্রেডেনশিয়াল (ইউজারনেম এবং পাসওয়ার্ডের সমতুল্য) হিসেবে গণ্য করতে হবে । এরপর, হোম অ্যাসিস্ট্যান্ট থেকে হাস্কভার্না অটোমোয়ার ইন্টিগ্রেশন ব্যবহার করে, এই ক্রেডেনশিয়ালগুলো দিয়ে আপনাকে লগইন এবং অথরাইজেশন প্রক্রিয়ার মাধ্যমে নির্দেশনা দেওয়া হবে।
একবার কনফিগার করা হয়ে গেলে, হোম অ্যাসিস্ট্যান্ট একটি হাস্কভার্না "হাব" তৈরি করে এবং সেখান থেকে লনমোয়ারের সাথে যুক্ত একাধিক এনটিটি তৈরি করে। এগুলোর মধ্যে বাইনারি সেন্সরও রয়েছে, যা শনাক্ত করে যে ব্যাটারি চার্জ হচ্ছে কিনা (যখন রোবটটি ব্যাটারি কম থাকার কারণে ফিরে এসে রিচার্জ করছে) অথবা এটি শুরুর স্থানে ফিরে যাওয়ার জন্য বেস ছেড়ে যাচ্ছে কিনা।
এই ইন্টিগ্রেশনটি ছোটখাটো ত্রুটি নিশ্চিত করতে, ব্লেড ব্যবহারের সময় রিসেট করতে, অথবা লনমোয়ারের অভ্যন্তরীণ ঘড়িকে হোম অ্যাসিস্ট্যান্টের সময়ের সাথে সিঙ্ক্রোনাইজ করার জন্য বাটনও তৈরি করতে পারে, যা রক্ষণাবেক্ষণ এবং রোগ নির্ণয়ের জন্য অত্যন্ত উপযোগী।
প্রতিটি রোবটের জন্য একটি ক্যালেন্ডারও তৈরি করা হয় , যেখানে নির্ধারিত কাটার সময়গুলো দেখানো থাকে, যার ফলে HA-তে বর্তমান ও ভবিষ্যতের নির্ধারিত সময়গুলো দেখা যায় এবং এগুলো হাউসের বাকি ক্যালেন্ডারগুলোর সাথে সমন্বিত হয়।
যদি মডেলটি এটি সমর্থন করে, তাহলে একটি device_tracker এনটিটি প্রদর্শিত হয় যা লনমোয়ারের GPS অবস্থান দেখায়, এবং একটি event এনটিটি সর্বশেষ ত্রুটিটি প্রতিফলিত করে, যার অ্যাট্রিবিউটগুলোর মধ্যে থাকে তীব্রতা, ঘটনাটির সঠিক অক্ষাংশ ও দ্রাঘিমাংশ এবং টাইমস্ট্যাম্প। এটি "যদি একটি tilt_error ঘটে, তাহলে অবস্থানসহ একটি নোটিফিকেশন পাঠাও এবং ম্যাপে একটি মার্কার প্রদর্শন করো"-এর মতো অটোমেশনের পথ খুলে দেয়।
কেন্দ্রীয় নিয়ন্ত্রণ সত্তাটি হলো একটি `lawn_mower` সত্তা , যেখান থেকে আপনি প্রোগ্রামটি পুনরায় চালু করতে, ঘাস কাটা থামাতে, অথবা পরবর্তী নির্ধারিত সময় পর্যন্ত রোবটটিকে পার্ক করে রাখতে পারেন। কিছু মডেলে, সামগ্রিক কাটার উচ্চতা (১ থেকে ৯ পর্যন্ত) এবং নির্দিষ্ট কর্মক্ষেত্রের জন্য কাটার উচ্চতা (ভিত্তি উচ্চতার ০% থেকে ১০০%) সমন্বয় করার জন্য `number` সত্তাও তৈরি করা হয়, যা আপনাকে বাগানের বিভিন্ন অংশের সাথে ঘাস কাটাকে মানিয়ে নিতে সাহায্য করে।
এছাড়াও নিয়ন্ত্রণ করার জন্য কিছু নির্দিষ্ট ব্যবস্থা রয়েছে, যেমন—লনমোয়ারের হেডলাইটের অপারেটিং মোড; এবং ব্যাটারি, ব্লেড ব্যবহারের সময়, ত্রুটি, নিষ্ক্রিয়তার সময়কাল, সীমাবদ্ধতার কারণ (হিমায়িত অবস্থা, দৈনিক সীমা, সাপ্তাহিক সময়সূচী…), অবশিষ্ট চার্জিং সময়, বর্তমান মোড, পরবর্তী স্টার্ট, চার্জ সাইকেল সংখ্যা, সংঘর্ষ, মোট কাটার সংখ্যা, অনুসন্ধান, ড্রাইভিং ইত্যাদির জন্য অত্যন্ত বিস্তারিত সেন্সর, সেইসাথে সক্রিয় কর্মক্ষেত্রের নামও রয়েছে ।
প্রতিটি কর্মক্ষেত্রের জন্য যেখানে পদ্ধতিগত কাটিং সক্রিয় করা হয়েছে, শতাংশের অগ্রগতি এবং শেষ সমাপ্তির তারিখ/সময় সহ অতিরিক্ত সেন্সর তৈরি করা হয়, যা "যদি X অঞ্চলের অগ্রগতি 100% এ পৌঁছায়, তাহলে অবহিত করুন এবং রোবটটিকে বেসে পাঠান" এর মতো অটোমেশনগুলিকে সহজতর করে।
এই ইন্টিগ্রেশনটি এমন সুইচও তৈরি করে যা নির্দিষ্ট এলাকা এড়িয়ে চলার নিয়ম নিয়ন্ত্রণ করে , রোবটের সার্বিক ঘাস কাটার প্রোগ্রাম চালু বা বন্ধ করে এবং প্রতিটি কাজের এলাকাকে আলাদাভাবে সক্রিয় বা নিষ্ক্রিয় করে। এই সুইচগুলির সাহায্যে, উদাহরণস্বরূপ, আপনি ঠিক করতে পারেন যে লনে পার্টি করার সময় রোবটটি একটি নির্দিষ্ট এলাকা এড়িয়ে চলবে।
নির্দিষ্ট কার্যকলাপের ক্ষেত্রে, এই ইন্টিগ্রেশনে শিডিউল ওভাররাইড করার এবং রোবটকে একটি নির্দিষ্ট সময়ের জন্য (১ মিনিট থেকে ৪২ দিন পর্যন্ত) ঘাস কাটতে বা পার্ক করতে নির্দেশ দেওয়ার ব্যবস্থা রয়েছে, যেখানে সময়কাল দিন, ঘন্টা এবং মিনিটে নির্দিষ্ট করা যায়। এছাড়াও, সংশ্লিষ্ট সেন্সর থেকে প্রাপ্ত এরিয়া আইডি ব্যবহার করে আপনি এটিকে একটি নির্দিষ্ট কর্মক্ষেত্রে একটি নির্দিষ্ট সময়ের জন্য ঘাস কাটার নির্দেশ দিতে পারেন।
কিছু ডিজাইনের সীমাবদ্ধতা সম্পর্কে সচেতন থাকা গুরুত্বপূর্ণ: নির্ধারিত সময়ের বাইরে আপনি কেবল `lawn_mower.start_mowing` দিয়ে লনমাওয়ার শুরু করতে পারবেন না; এর জন্য আপনাকে ওভাররাইড অ্যাকশন ব্যবহার করতে হবে। এবং, EPOS প্রযুক্তির মডেলগুলিতে, এই অফিসিয়াল ইন্টিগ্রেশনে এক্সক্লুশন জোন ম্যানেজমেন্ট এখনও সমর্থিত নয়।
হোম অ্যাসিস্ট্যান্ট দিয়ে শুরু করে এবং লনমাওয়ার অনুসন্ধান করে একজন ব্যবহারকারী কী লাভবান হন?
আপনি যদি কোন রোবটিক লনমোয়ার কিনবেন তা নিয়ে গবেষণার প্রাথমিক পর্যায়ে থাকেন (উদাহরণস্বরূপ, একটি ম্যামোশন ইউকা মিনি ৭০০/৮০০ বা একটি ইকোভ্যাক্স গোট কেনার কথা ভাবছেন) এবং শুধুমাত্র 'পরীক্ষা করে দেখার জন্য' হোম অ্যাসিস্ট্যান্ট ইনস্টল করে থাকেন, তাহলে আপনার মনে প্রশ্ন জাগতে পারে যে এই সমস্ত ইন্টিগ্রেশনের ঝামেলায় যাওয়াটা আদৌ worthwhile কিনা।
উত্তরটি সাধারণত হ্যাঁ, বিশেষ করে যদি আপনি আপনার বাগান এবং বাড়িকে একটি সুসংহত ব্যবস্থা হিসেবে পরিকল্পনা করেন: হোম অ্যাসিস্ট্যান্টের সাথে লনমোয়ারকে সংযুক্ত করার মাধ্যমে আপনি অফিসিয়াল অ্যাপের চেয়ে অনেক বেশি নিয়ন্ত্রণ এবং স্বচ্ছতা পান , যা দৈনন্দিন জীবনে অপ্রত্যাশিত ঘটনা কমিয়ে আনে এবং আপনাকে আরও বেশি প্রকৃত স্বায়ত্তশাসন দেয়।
ইউকা/লুবার নির্দিষ্ট ক্ষেত্রে, ম্যামোশন ইন্টিগ্রেশন আপনাকে এগুলি করতে দেয়:
- এক নজরে দেখে নিন অবস্থা, ব্যাটারি, অবস্থান এবং জোন হোম অ্যাসিস্ট্যান্ট প্যানেল থেকে।
- আবহাওয়া, উপস্থিতি বা সৌরশক্তি উৎপাদনের মতো নিয়মের উপর শর্তাধীন লঞ্চ কাট।
- পারিবারিক ক্যালেন্ডার বা হাউস মোডের সাথে সময়সূচী সিঙ্ক্রোনাইজ করুন (বাইরে, ছুটি, রাত...)।
- উন্নত পরিস্থিতি অন্বেষণ করুন যেমন ম্যাটারের মাধ্যমে অ্যাপল হোমের এক্সপোজার যেন এটি একটি রোবট ভ্যাকুয়াম ক্লিনার, তাই এটি নিয়ন্ত্রণ করা।
এর থেকে পুরোপুরি সুবিধা পেতে, লনমোয়ারের পাশাপাশি আপনার কিছু সাধারণ হোম অটোমেশন উপাদানের প্রয়োজন হবে: নির্ভরযোগ্য আবহাওয়া ইন্টিগ্রেশন (মেটিওস্যাট, অ্যাকুওয়েদার, স্থানীয় স্টেশন), আশেপাশে লোকজন থাকলে ঘাস কাটা বন্ধ করার জন্য প্রেজেন্স সেন্সর বা ক্যামেরা, এবং আপনার যদি সোলার প্যানেল থাকে, তবে উদ্বৃত্ত শক্তির ব্যবহার নিশ্চিত করতে সেগুলোকে হোম অটোমেশনের সাথে যুক্ত করুন।
প্রথমদিকে সবকিছু চালু করতে বেশ বেগ পেতে হতে পারে, কিন্তু একবার প্রাথমিক স্বয়ংক্রিয়করণগুলো সম্পন্ন হয়ে গেলে, সিস্টেমটি প্রায় নিজে থেকেই চলতে থাকে এবং আপনার রোবটটি হয়ে ওঠে 'নেপথ্যে কাজ করা সেই স্বায়ত্তশাসিত সহকর্মী ', তবে এবার এটি এমন সব নিয়ম মেনে চলে যা আপনার বাড়ি ও বাগানে বাস্তবে কী ঘটছে তা বিবেচনায় রাখে।
পরিশেষে, হোম অ্যাসিস্ট্যান্ট-এর সাথে একটি স্মার্ট লনমোয়ারকে সংযুক্ত করা—সেটি ম্যামোশন, MQTT-এর মাধ্যমে বোশ ইন্ডেগো, বা এর অফিসিয়াল API সহ হাস্কভার্না অটোমোয়ার যা-ই হোক না কেন—লন কাটার মতো একটি আপাতদৃষ্টিতে সাধারণ কাজকে হোম অটোমেশন ধাঁধার আরেকটি অংশে রূপান্তরিত করে , যা আবহাওয়া, শক্তি, উপস্থিতি এবং পরিবারের অভ্যাসের সাথে সমন্বিত থাকে। এর ফলে স্বস্তি ও মানসিক শান্তি উভয়ই লক্ষণীয় হয়, যখন বাগানের প্রায় সম্পূর্ণ যত্ন নেওয়া হয় এবং আপনার প্রায় মনেই থাকে না যে সেখানে একটি রোবট কাজ করছে।