OpenHAB শিক্ষানবিশ গাইড পার্ট 2: ZWave, MQTT, নিয়ম এবং চার্টিং

OpenHAB শিক্ষানবিশ গাইড পার্ট 2: ZWave, MQTT, নিয়ম এবং চার্টিং

ফ্রি মানে সবসময় 'অর্থ প্রদানের মতো ভাল নয়', এবং OpenHAB এর ব্যতিক্রম নয়। ওপেন সোর্স হোম অটোমেশন সফটওয়্যার বাজারে অন্য যেকোনো হোম অটোমেশন সিস্টেমের ক্ষমতাকে ছাড়িয়ে গেছে - কিন্তু সেট আপ করা সহজ নয়। আসলে, এটি সম্পূর্ণ হতাশাজনক হতে পারে।





গাইডের 1 ম অংশে, আমি আপনাকে দিয়েছি রাস্পবেরি পাইতে ওপেনহ্যাব ইনস্টল করা , ওপেনহ্যাবের মূল ধারণাগুলি চালু করেছে, এবং আপনাকে দেখিয়েছে কিভাবে সিস্টেমে আপনার প্রথম আইটেম যুক্ত করা যায়। আজ আমরা আরও এগিয়ে যাব:





  • ZWave ডিভাইস যোগ করা হচ্ছে
  • একটি হারমনি আলটিমেট কন্ট্রোলার যোগ করা হচ্ছে
  • নিয়ম প্রবর্তন
  • MQTT প্রবর্তন করা, এবং আপনার Pi তে MQTT ব্রোকার ইনস্টল করা, Arduino তে সেন্সর সহ
  • ডেটা রেকর্ড করা এবং গ্রাফ করা

জেড-ওয়েভের ভূমিকা

জেড-ওয়েভ বছরের পর বছর ধরে প্রভাবশালী হোম অটোমেশন প্রোটোকল হয়েছে: এটি নির্ভরযোগ্য, ব্যাপকভাবে বিকশিত হয়েছে এবং অন্যান্য স্মার্ট হোম পণ্যের তুলনায় অনেক বেশি পরিসরে কাজ করে। আপনার জন্য শত শত জেড-ওয়েভ সেন্সর রয়েছে যা বিভিন্ন ধরণের কাজ সম্পাদন করে। ওপেনহ্যাব করতে পারা জেড-ওয়েভের সাথে কাজ করুন, কিন্তু সেট আপ করতে একটি ঝামেলা, এবং নির্ভরযোগ্যতা নিশ্চিত নয়।





আপনি যদি বিশেষভাবে ওপেনহ্যাব ব্যবহারের জন্য জেড-ওয়েভ সেন্সর পূর্ণ একটি বাড়ি কেনার কথা ভাবছেন, আমি আপনাকে পুনর্বিবেচনার জন্য অনুরোধ করব। এটি আপনার জন্য দুর্দান্ত কাজ করতে পারে, অথবা এটি ছোট কিন্তু ক্রমাগত সমস্যায় জর্জরিত হতে পারে। অন্তত, সেন্সর পূর্ণ একটি বাড়ি কিনবেন না যতক্ষণ না আপনি কিছু চেষ্টা করার সুযোগ পান। জেড-ওয়েভ বেছে নেওয়ার একমাত্র কারণ হল যদি আপনি ওপেনহ্যাবে 100% স্থায়ী না হন এবং ভবিষ্যতে আপনার বিকল্পগুলি খোলা রাখতে চান: উদাহরণস্বরূপ জেড-ওয়েভ স্যামসাং স্মার্টথিংস হাবের পাশাপাশি জেড-ওয়েভ নির্দিষ্ট হাবগুলির সাথে কাজ করে যেমন Homeseer, এবং অন্যান্য সফ্টওয়্যার অপশন যেমন একটি পরিসীমা domoticz

যদিও ওপেনহ্যাব একটি জেড-ওয়েভ বাইন্ডিং অন্তর্ভুক্ত করে, তবুও আপনাকে এটি করতে হবে প্রথমে Z-Wave নেটওয়ার্ক কনফিগার করুন , ওপেনহ্যাব ডেটার জন্য জিজ্ঞাসা শুরু করার আগে। আপনি যদি একটি রাসবেরি কন্ট্রোলার বোর্ড পেয়ে থাকেন, আপনার কাছে নেটওয়ার্ক কনফিগার করার জন্য কিছু সফটওয়্যার সরবরাহ করা আছে, তাই আমরা এখানে তা কভার করব না। আপনি যদি একটি Aeotec USB Z-Stick নিয়ামক বা অনুরূপ কিনে থাকেন, তাহলে সম্ভবত আপনার কোন সফ্টওয়্যার অন্তর্ভুক্ত নেই, তাই পড়ুন।



Aeotec Z-Stick Gen5 Z-Wave Hub Z-Wave Plus USB to Gateway (সাধারণ সাদা) এখনই আমাজনে কিনুন

আপনার যদি ইতিমধ্যে একটি জেড-ওয়েভ নেটওয়ার্ক সেটআপ থাকে , আপনি কেবল আপনার নিয়ামককে পাইতে প্লাগ করতে পারেন এবং বাঁধাই এবং আইটেমগুলি কনফিগার করতে শুরু করতে পারেন। যদি এটি জেড-ওয়েভে আপনার প্রথম অভিযান হয় তবে এটি একটু বেশি জটিল।

প্রথমত, হার্ডওয়্যারের দিকে: প্রতিটি নিয়ামকের ডিভাইসের সাথে যুক্ত হওয়ার নিজস্ব পদ্ধতি রয়েছে (টেকনিক্যালি 'ইনক্লুশন মোড' নামে পরিচিত যেখানে একটি নোড আইডি বরাদ্দ করা হয়)। এওটেক জেড-স্টিকের ক্ষেত্রে, এর অর্থ এটি ইউএসবি পোর্ট থেকে আনপ্লাগ করা এবং এটিকে অন্তর্ভুক্তি মোডে রাখার জন্য একবার বোতাম টিপুন। তারপরে আপনি যে ডিভাইসটি যুক্ত করছেন তার কাছে নিয়ে যান এবং এতে অন্তর্ভুক্তি বোতামটিও টিপুন (এটিও পরিবর্তিত হবে: আমার Everspring সকেটে দ্রুত উত্তরাধিকার 3 বার টিপতে বোতাম প্রয়োজন, তাই এখানে পাঠ আপনার ডিভাইসের জন্য ম্যানুয়াল পড়তে হয়)





জেড-স্টিক সংক্ষিপ্তভাবে সাফল্য নির্দেশ করে। এটি একটি নতুন পোর্ট বরাদ্দ করার সময় এটিকে পাইতে প্লাগ করার সময় সমস্যাগুলি উপস্থাপন করে। আপনার পাইকে স্ট্যান্ডার্ড পোর্টে পুনরায় সেট করার জন্য এটি পুনরায় চালু করুন যদি আপনি এটিকে গতিশীলভাবে একটি অন্যটি পুনরায় বরাদ্দ করেন। আরও ভাল: Pi তে প্লাগ করবেন না যতক্ষণ না আপনি প্রথমে সমস্ত হার্ডওয়্যার পেয়ারিং সম্পন্ন করেন।

HABmin এবং Z-Wave Bindings ইনস্টল করা

যেহেতু ওপেনহ্যাব আসলে জেড-ওয়েভের জন্য কনফিগারেশন ইউটিলিটি নয়, তাই আমরা আরেকটি ওয়েব ম্যানেজমেন্ট টুল ইন্সটল করতে যাচ্ছি-HABmin নামে কিছু। এর দিকে এগিয়ে যান HABmin Github সংগ্রহস্থল বর্তমান রিলিজ ডাউনলোড করুন। একবার আপনি এটি আনজিপ করলে, আপনি 2 খুঁজে পাবেন জার অ্যাডঅন ডিরেক্টরিতে ফাইলগুলি - এগুলি আপনার ওপেনহ্যাব হোম শেয়ারের সংশ্লিষ্ট অ্যাডন ডিরেক্টরিতে রাখা উচিত (যদি আপনি Aotec gen5 Z-Stick ব্যবহার করছেন, নিশ্চিত করুন যে আপনি Z-Wave বাঁধাইয়ের কমপক্ষে 1.8 সংস্করণ পেয়েছেন)





এর পরে, ওয়েবঅ্যাপস ডিরেক্টরিতে একটি নতুন ফোল্ডার তৈরি করুন এবং এটিকে 'হাবমিন' (ছোট হাতের গুরুত্বপূর্ণ) বলা হয়। বাকি ডাউনলোড করা ফাইলগুলো সেখানে কপি করুন।

দ্রষ্টব্য: একটি আছে HABmin 2 সক্রিয় উন্নয়নের অধীনে। ইনস্টলেশন অনেক একই কিন্তু একটি অতিরিক্ত .jar addon সঙ্গে। আপনি যা পছন্দ করেন তা দেখতে উভয়ই চেষ্টা করা মূল্যবান হতে পারে।

আপনি যদি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার কন্ট্রোলারটিকে আপনার Pi এ লাগান। সঠিক পোর্ট খুঁজে পেতে নিচের টাইপ করুন।

ls /dev /tty*

আপনি ইউএসবি সহ কিছু খুঁজছেন, অথবা আমার বিশেষ ক্ষেত্রে, জেড-স্টিক নিজেকে উপস্থাপন করেছে / dev / ttyACM0 (একটি মডেম)। আপনি এটি প্লাগ ইন করার আগে একবার কমান্ডটি করা সহজ হতে পারে, এবং একবার পরে, যাতে আপনি অনিশ্চিত থাকলে আপনি কী পরিবর্তন দেখতে পারেন।

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

sudo usermod -a -G ডায়ালআউট openhab

এখন, সবকিছুকে কাজে লাগাতে, ওপেনহ্যাব পুনরায় চালু করুন

সুডো পরিষেবা ওপেনহাব রিস্টার্ট

আশা করি, যদি আপনি ডিবাগ লগ চেক করছেন, আপনি এইরকম কিছু দেখতে পাবেন। অভিনন্দন, আপনি এখন জেড-ওয়েভের কথা বলছেন। আপনি বিভিন্ন ডি-ওয়েভ নোড থেকে বার্তা দিয়ে প্লাবিত ডিবাগ লগটি খুঁজে পেতে পারেন। এটি কি পাওয়া যায় তা দেখতে HABMIN চেক করে শুরু করা যাক: http: //openhab.local: 8080/habmin/index.html (আপনার রাস্পবেরি পাই হোস্টনাম বা আইপি ঠিকানা দিয়ে openhab.local প্রতিস্থাপন)।

HABMIN- এ অনেক কিছু দেখার আছে, কিন্তু আমরা কেবলমাত্র এর সাথে সত্যিই উদ্বিগ্ন কনফিগারেশন -> বাঁধাই -> জেড -ওয়েভ -> ডিভাইস ট্যাব, যেমন আপনি নিচে দেখতে পারেন। আপনার রেফারেন্সের সহজতার জন্য অবস্থান এবং নাম লেবেল সম্পাদনা করতে নোডটি প্রসারিত করুন।

জেড-ওয়েভ আইটেমগুলি কনফিগার করা হচ্ছে

প্রতিটি Z-Wave ডিভাইসে OpenHAB এর জন্য একটি নির্দিষ্ট কনফিগারেশন থাকবে। সৌভাগ্যক্রমে, বেশিরভাগ ডিভাইস ইতিমধ্যেই অন্বেষণ করা হয়েছে এবং ইতিমধ্যে আপনার জন্য সেখানে উদাহরণ রয়েছে। স্বীকৃত নয় এমন কাস্টম ডিভাইসগুলি কনফিগার করা এই গাইডের সুযোগের বাইরে, তবে ধরা যাক এটি আপাতত সমর্থিত।

প্রথমে, আমি নোড on -এ একটি মৌলিক Everspring AN158 পাওয়ার সুইচ এবং মিটার পেয়েছি। আমি এটিকে নিম্নরূপ মানিয়ে নিয়েছি:

Dehumidifier_Switch 'Dehumidifier' {zwave = '3: command = switch_binary'} সুইচ করুন

সংখ্যা Dehumidifier_Watts 'Dehumidifier শক্তি খরচ [%.1f W]' {zwave = '3: command = meter'}

নিখুঁত।

পরবর্তী একটি Aeotec Gen5 মাল্টি-সেন্সর।

Aeon Labs Aeotec Z-Wave Gen5 Multi-Sensor (Z-Wave Plus) এখনই আমাজনে কিনুন

এই এক জন্য, আমি একটি নমুনা কনফিগারেশন খুঁজে পেয়েছি iwasdot.com , এবং আমার মাল্টিসেন্সর নোড 2 এ রয়েছে।

সংখ্যা হলওয়ে_ তাপমাত্রা 'হলওয়ে তাপমাত্রা [%.1f ° C]' (হলওয়ে, তাপমাত্রা) {zwave = '2: 0: command = sensor_multilevel, sensor_type = 1, sensor_scale = 0'}

সংখ্যা হলওয়ে_হমিডিটি 'হলওয়ে আর্দ্রতা [%.0f %%]' (হলওয়ে, আর্দ্রতা) {zwave = '2: 0: command = sensor_multilevel, sensor_type = 5'}

সংখ্যা হলওয়ে_লুমিন্যান্স 'হলওয়ে লুমিন্যান্স [%.0f লাক্স]' (হলওয়ে) {zwave = '2: 0: command = sensor_multilevel, sensor_type = 3'}

হলওয়ে মোশনের সাথে যোগাযোগ করুন 'হলওয়ে মোশন [%s]' (হলওয়ে, মোশন) {zwave = '2: 0: command = sensor_binary, response_to_basic = true'}

নম্বর সেন্সর_1_ ব্যাটারি 'ব্যাটারি [%s %%]' (গতি) {zwave = '2: 0: command = battery'}

যদি এর বিন্যাস আপনার কাছে অদ্ভুত মনে হয়, অনুগ্রহ করে প্রথম দিকে ফিরে যান শিক্ষানবিস গাইড , বিশেষ করে হিউ বাঁধাই বিভাগ, যেখানে আমি ব্যাখ্যা করি কিভাবে আইটেম যোগ করা হয়। আপনি সম্ভবত শুধুমাত্র এই মত পেস্ট উদাহরণ কপি করতে হবে, কিন্তু যদি আপনার একটি নতুন ডিভাইস আছে, বাঁধাই ডকুমেন্টেশন সব বিস্তারিত কমান্ড

লজিটেক হারমনি বাইন্ডিং

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

'সাদৃশ্য' অনুসন্ধানের জন্য অ্যাপ্ট-ক্যাশে ব্যবহার করে আপনি যে তিনটি বাঁধাই ফাইল খুঁজে পান তা ইনস্টল করে শুরু করুন:

করতে ভুলবেন না চাউন আপনার কাজ শেষ হলে আবার বাইন্ডিং ডিরেক্টরি:

sudo apt-get openhab-addon-action-harmonyhub ইনস্টল করুন

sudo apt-get openhab-addon-binding-harmonyhub ইনস্টল করুন

sudo apt-get openhab-addon-io-harmonyhub ইনস্টল করুন

sudo chown -hR openhab: openhab/usr/share/openhab

বাঁধাই কনফিগার করতে, openhab.cfg ফাইলটি খুলুন এবং নিম্নরূপ একটি নতুন বিভাগ যুক্ত করুন:

########### হারমনি রিমোট নিয়ন্ত্রণ ##########

harmonyhub: host = 192.168.1.181 অথবা আপনার আইপি

harmonyhub: ব্যবহারকারীর নাম = আপনার-সাদৃশ্য-ইমেল-লগইন

harmonyhub: পাসওয়ার্ড = আপনার পাসওয়ার্ড

আইপি ঠিকানা হল আপনার হারমনি হাব। এটি খুঁজে পেতে একটি নেটওয়ার্ক স্ক্যানার ব্যবহার করুন। আপনাকে আপনার লগইন বিশদটিও প্রবেশ করতে হবে, আপনি যখন স্ট্যান্ডার্ড হারমনি কনফিগ ইউটিলিটি চালু করেন তখন আপনি প্রবেশ করেন। এটাই. আপনার হিউ পুনরায় চালু করার পরে, আপনার ডিবাগ লগের বাইন্ডিং থেকে হঠাৎ আউটপুট বের হওয়া উচিত।

এটি আপনার সমস্ত ক্রিয়াকলাপ, ডিভাইস এবং কমান্ডের একটি JSON বিন্যাসিত তালিকা যা পাঠানো যেতে পারে। ভবিষ্যতের রেফারেন্সের জন্য এটি অনুলিপি করা একটি ভাল ধারণা। আপনি একটি অনলাইন JSON ফরম্যাটারে পেস্ট করে সংকোচনযোগ্য নোডগুলির সাথে পড়া আরও সহজ করতে পারেন যেমন এই এক

সেইসাথে স্ট্যান্ডার্ড পাওয়ারঅফ কার্যকলাপ যা একটি ডিফল্ট, আপনি নাম দ্বারা তালিকাভুক্ত আপনার নিজস্ব সংজ্ঞায়িত ক্রিয়াকলাপগুলি খুঁজে পাবেন। এখন কার্যক্রম শুরু করার জন্য একটি সহজ একটি বোতাম নিয়ন্ত্রণ তৈরি করা যাক। প্রথমে, আপনার আইটেম ফাইলে, নিম্নলিখিত লাইন যোগ করুন। আপনি চাইলে গ্রুপ এবং আইকন পরিবর্তন করুন।

/ * হারমনি হাব */

স্ট্রিং Harmony_Activity 'Harmony [%s]' (Living_Room) {harmonyhub = '*[currentActivity]'}

এটা একটা দ্বিমুখী স্ট্রিং বাঁধাই , যা উভয় বর্তমান কার্যকলাপ আনতে সক্ষম, এবং বর্তমান কার্যকলাপ অন্য কিছু হতে আদেশ। এখন আমরা সাইটম্যাপ ফাইলে এর জন্য একটি বোতাম তৈরি করতে পারি।

সুইচ আইটেম = হারমোনি_অ্যাক্টিভিটি ম্যাপিংস

কিভাবে একটি চলন্ত ওয়ালপেপার উইন্ডোজ 10 পেতে

বর্গাকার বন্ধনীতে আপনি লেবেল সহ প্রতিটি কার্যকলাপ দেখতে পাবেন। আপনি সাধারণত আপনার ক্রিয়াকলাপগুলিকে সরাসরি উল্লেখ করতে পারেন যেমনটি আপনি আপনার রিমোটের নাম দিয়েছিলেন, কিন্তু আমি এটির ব্যতিক্রম খুঁজে পেয়েছি, কার্যকলাপের নামে একটি স্পেস আছে, যেমন 'ওয়াচ টিভি'। এই ক্ষেত্রে, আপনাকে কার্যকলাপ আইডি ব্যবহার করতে হবে। আবার, আপনি JSON ডিবাগ আউটপুটে আইডি খুঁজে পেতে পারেন। আপনার ইন্টারফেস সংরক্ষণ করুন এবং রিফ্রেশ করুন, আপনার এইরকম কিছু দেখতে হবে:

আপনি আপনার নিয়মে ক্রিয়াকলাপগুলিও উল্লেখ করতে পারেন, যেমন আমরা পরবর্তীতে দেখব। সম্পর্কে আরও তথ্যের জন্য উইকি পৃষ্ঠাটি পড়ুন সম্প্রীতি বাঁধাই

বিধিগুলির একটি সাধারণ ভূমিকা

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

প্রোগ্রামিং নিয়মগুলি এর চেয়ে খারাপ শোনাচ্ছে। উপস্থিতি সেন্সরের উপর নির্ভর করে আলো চালু বা বন্ধ করার নিয়মগুলির একটি জোড়া দিয়ে সহজ শুরু করা যাক:

নিয়ম জেমস উপস্থিত যখন অফিস আলো '

কখন

আইটেম JamesInOffice OFF থেকে ON তে পরিবর্তিত হয়েছে

তারপর

সেন্ড কমান্ড (অফিস_হিউ, চালু)

শেষ

নিয়ম 'জেমস চলে গেলে অফিসের আলো বন্ধ'

কখন

আইটেম JamesInOffice ON থেকে OFF এ পরিবর্তিত হয়েছে

তারপর

সেন্ড কমান্ড (অফিস_হিউ, বন্ধ)

শেষ

প্রথমত, আমরা নিয়মের নাম দিই - বর্ণনামূলক হও, তাহলে তুমি জানো কোন ঘটনাটি গুলি চালাচ্ছে। এর পরে, আমরা আমাদের সহজ নিয়মটি বলার মাধ্যমে সংজ্ঞায়িত করি যখন x সত্য, তখন y করুন । শেষ মানে সেই বিশেষ নিয়ম বন্ধ করা। কিছু বিশেষ শব্দ আছে যা আপনি নিয়মে ব্যবহার করতে পারেন, কিন্তু আপাতত আমরা সিনট্যাক্সের দুটি সহজ বিট নিয়ে কাজ করছি - আইটেম , যা আপনাকে কোন কিছুর অবস্থা জিজ্ঞাসা করতে দেয়; এবং কমান্ড পাঠান , যা আপনি যা মনে করেন ঠিক তাই করে। আমি আপনাকে বলেছিলাম এটি সহজ ছিল।

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

নির্ধারিত নিয়ম তৈরির জন্য আরেকটি উদাহরণ দেখি।

নিয়ম 'প্রতিদিন সকালে ব্যায়াম করুন'

কখন

টাইম ক্রোন '0 0 8 1/1 *? *'

তারপর

harmonyStartActivity ('ব্যায়াম')

শেষ

আবার, আমরা নিয়ম, রাষ্ট্রের শর্তাবলী কখন এটি চালু করা উচিত এবং কী পদক্ষেপ নেওয়া উচিত তার নাম দিয়েছি। কিন্তু এই ক্ষেত্রে, আমরা একটি সময় প্যাটার্ন সংজ্ঞায়িত করছি। উদ্ধৃতিতে আপনি যে মজার কোডটি দেখতে পাচ্ছেন তা হল কোয়ার্টজ সময়সূচীর জন্য একটি CRON অভিব্যক্তি (বিন্যাসটি নিয়মিত CRONtab এর থেকে কিছুটা আলাদা)। আমি ব্যবহার করতাম cronmaker.com অভিব্যক্তি তৈরি করতে সাহায্য করার জন্য, কিন্তু আপনি বিস্তারিত ব্যাখ্যা এবং আরো উদাহরণের জন্য বিন্যাস নির্দেশিকা [আর উপলব্ধ নেই] পড়তে পারেন।

CronMaker.com সঠিকভাবে ফরম্যাট করা ক্রন এক্সপ্রেশন তৈরি করতে ব্যবহৃত হয়

আমার নিয়মগুলি সহজভাবে বলে 'প্রতিদিন সকাল 8 টা, সপ্তাহের প্রতিটি দিন, ব্যায়াম কার্যক্রম শুরু করার জন্য আমার হারমনি আলটিমেট সিস্টেমকে বলুন', যার ফলে টিভি, এক্সবক্স, এম্প্লিফায়ার সক্রিয় হয় এবং চালু হওয়ার এক মিনিট পর A বোতাম টিপুন ড্রাইভে ডিস্ক।

দুlyখজনকভাবে, ওপেনহ্যাব এখনও আমার জন্য ব্যায়াম করতে সক্ষম হয় নি।

আরেকটি নিয়ম যা আমি আপনাকে দেখাতে চাই তা হল আমি আমার বাড়িতে আর্দ্রতার মাত্রা নিয়ন্ত্রণ করতে ব্যবহার করি। আমার একটি একক ডিহুমিডিফায়ার আছে যা আমার যেখানে প্রয়োজন সেখানে ঘুরতে হবে, তাই আমি আমার সমস্ত আর্দ্রতা সেন্সরগুলি দেখার সিদ্ধান্ত নিয়েছি, কোনটি সর্বোচ্চ তা খুঁজে বের করি এবং এটি একটি পরিবর্তনশীলতে সংরক্ষণ করি। এটি বর্তমানে প্রতি মিনিটে ট্রিগার হয়, কিন্তু এটি সহজেই হ্রাস করা যায়। আগে একবার দেখে নিন:

আমদানি org.openhab.core.library.types।*

আমদানি org.openhab.model.script.actions।*

java.lang.String আমদানি করুন

নিয়ম 'আর্দ্রতা মনিটর'

যখন টাইম ক্রোন '0 * * * *?'

তারপর

var prevHigh = 0

var highHum = ''

আর্দ্রতা?

logDebug ('humid.rules', hum.name);

যদি (hum.state হিসাবে DecimalType> prevHigh) {

prevHigh = hum.state

highHum = hum.name + ':' + hum.state + '%'

}

উইন্ডোজ 10 স্বয়ংক্রিয় মেরামতের লুপে আটকে আছে

]

logDebug ('humid.rules', highHum);

পোস্ট আপডেট (Dehumidifier_Needed, highHum);

শেষ

শাসনের মূল বিষয় হল আর্দ্রতা? লাইন আর্দ্রতা আমার আর্দ্রতা সেন্সরের একটি গ্রুপ নাম; । সদস্য সেই গ্রুপের সমস্ত আইটেম দখল করে; প্রতিটির জন্য, প্রত্যেকটির জন্য তাদের উপর পুনরাবৃত্তি (একটি অদ্ভুত বর্গাকার বন্ধনী বিন্যাস সঙ্গে আপনি সম্ভবত পরিচিত না)। নিয়মগুলির সিনট্যাক্স Xtend এর একটি ডেরিভেটিভ, তাই আপনি পড়তে পারেন এক্সটেন্ড ডকুমেন্টেশন যদি আপনি মানিয়ে নেওয়ার উদাহরণ খুঁজে না পান।

আপনি সম্ভবত যদিও প্রয়োজন হবে না - সেখানে শত শত উদাহরণ নিয়ম আছে:

OpenHAB এবং Internet of Things এর জন্য MQTT

MQTT হল মেশিন-টু-মেশিন যোগাযোগের জন্য একটি লাইটওয়েট মেসেজিং সিস্টেম-আপনার Arduinos বা রাস্পবেরি পিসের জন্য একে অপরের সাথে কথা বলার জন্য এক ধরনের টুইটার (যদিও এটি অবশ্যই তাদের তুলনায় অনেক বেশি কাজ করে)। এটি দ্রুত জনপ্রিয়তা অর্জন করছে এবং ইন্টারনেট অফ থিংস ডিভাইসের সাথে নিজেকে খুঁজে পাচ্ছে, যা সাধারণত কম সংস্থান মাইক্রো-কন্ট্রোলার যা সেন্সর ডেটা আপনার হাবে ফেরত পাঠানোর বা রিমোট কমান্ড পাওয়ার জন্য একটি নির্ভরযোগ্য উপায় প্রয়োজন। এটা ঠিক কি আমরা এটি সঙ্গে করা হবে।

কিন্তু কেন চাকা পুনরায় উদ্ভাবন?

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

আপনি হয়তো ভাবছেন যে আমরা কেন আরেকটি প্রোটোকল নিয়ে বিরক্ত হচ্ছি - আমাদের ইতিমধ্যেই HTTP আছে - যা সব ধরনের ওয়েব সংযুক্ত সিস্টেমের মধ্যে দ্রুত বার্তা পাঠাতে ব্যবহার করা যেতে পারে (যেমন OpenHAB এবং IFTTT, বিশেষ করে নতুন নির্মাতা চ্যানেলের সাথে )। এবং আপনি সঠিক হতে চাই। যাইহোক, একটি HTTP সার্ভারের প্রক্রিয়াকরণ ওভারহেড বেশ বড় - এত বেশি যে আপনি সহজেই একটি এমবেডেড মাইক্রোকন্ট্রোলারের মতো আরডুইনো (অন্তত, আপনি পারেন, কিন্তু আপনার আর কিছু মেমরি বাকি থাকবে না )। MQTT অন্যদিকে হালকা ওজনের, তাই আপনার নেটওয়ার্কের চারপাশে বার্তা পাঠানো পাইপগুলিকে আটকে রাখবে না, এবং এটি সহজেই আমাদের ছোট Arduino মেমরি স্পেসের সাথে খাপ খাইয়ে নিতে পারে।

MQTT কিভাবে কাজ করে?

MQTT- এর জন্য একটি সার্ভার (যাকে 'ব্রোকার' বলা হয়) এবং এক বা একাধিক ক্লায়েন্ট প্রয়োজন। সার্ভার একজন মধ্যস্বত্বভোগী হিসাবে কাজ করে, বার্তা গ্রহণ করে এবং যেকোন আগ্রহী ক্লায়েন্টদের কাছে তাদের পুনroadপ্রচার করে।

এর সঙ্গে চালিয়ে যাক মেশিনের জন্য টুইটার উপমা যদিও। যেমন টুইটার ব্যবহারকারীরা তাদের নিজস্ব অর্থহীন 140 টি অক্ষর টুইট করতে পারে, এবং ব্যবহারকারীরা অন্যান্য ব্যবহারকারীদের পোস্টের একটি সাজানো স্ট্রিম দেখতে 'অনুসরণ' করতে পারে, এমকিউটিটি ক্লায়েন্ট সেখান থেকে সমস্ত বার্তা গ্রহণের জন্য একটি নির্দিষ্ট চ্যানেলে সাবস্ক্রাইব করতে পারে, পাশাপাশি তাদের নিজস্ব বার্তা প্রকাশ করতে পারে সেই চ্যানেলে। এই প্রকাশ এবং সাবস্ক্রাইব প্যাটার্ন হিসাবে উল্লেখ করা হয় পাব / সাব , theতিহ্যের বিপরীতে ক্লায়েন্ট সার্ভার HTTP এর মডেল।

HTTP এর প্রয়োজন যে আপনি যে মেশিনের সাথে যোগাযোগ করছেন তার সাথে যোগাযোগ করুন, হ্যালো বলুন, তারপরে আপনি যখন ডাটা পান বা রাখেন তখন একে অপরকে স্বীকার করার পিছনে পিছনে থাকুন। পাব/সাবের সাথে, প্রকাশক করছেন এমন ক্লায়েন্টকে জানার দরকার নেই যে কোন ক্লায়েন্ট সাবস্ক্রাইব করেছে: এটি কেবল বার্তাগুলি পাম্প করে এবং দালাল তাদের সাবস্ক্রাইব করা ক্লায়েন্টদের পুনরায় বিতরণ করে। যে কোনও ক্লায়েন্ট টুইটার ব্যবহারকারীর মতো বিষয়গুলি প্রকাশ এবং সাবস্ক্রাইব করতে পারেন।

যদিও টুইটারের মতো নয়, MQTT 140 অক্ষরের মধ্যে সীমাবদ্ধ নয়। এটি ডেটা অজ্ঞেয়বাদী, তাই আপনি ছোট সংখ্যা বা বড় টেক্সট ব্লক, JSON- ফর্ম্যাটেড ডেটাগ্রাম, অথবা এমনকি ছবি এবং বাইনারি ফাইল পাঠাতে পারেন।

এটা নয় যে MQTT সব কিছুর জন্য HTTP- এর চেয়ে ভালো - কিন্তু এটা হয় আরও উপযুক্ত যদি আমাদের বাড়ির চারপাশে প্রচুর সেন্সর থাকে, ক্রমাগত রিপোর্ট করে।

এটা জানাও গুরুত্বপূর্ণ যে ওপেনহ্যাব আপনার এমকিউটিটি ব্রোকার হিসেবে কাজ করবে না - আমরা সেই বিট পরে ঠিক করব। যাইহোক, ওপেনহ্যাব ক্লায়েন্ট হিসাবে কাজ করবে: এটি আপনার ওপেনহ্যাব অ্যাক্টিভিটি লগ উভয়ই প্রকাশ করতে পারে, সেইসাথে নির্দিষ্ট চ্যানেলগুলিকে ডিভাইসে আবদ্ধ করতে পারে, তাই আপনি উদাহরণস্বরূপ একটি নির্দিষ্ট চ্যানেলে এমকিউটিটি বার্তা দ্বারা নিয়ন্ত্রিত একটি সুইচ রাখতে পারেন। সেন্সর পূর্ণ একটি ঘর তৈরির জন্য এটি আদর্শ।

আপনার পাইতে মশার ইনস্টল করুন

যদিও OpenHAB একটি MQTT ক্লায়েন্ট অন্তর্ভুক্ত করে যাতে আপনি একটি বিষয় সাবস্ক্রাইব করতে পারেন এবং বার্তাও প্রকাশ করতে পারেন, এটি সার্ভার হিসাবে কাজ করবে না। এর জন্য, আপনাকে একটি ওয়েব ভিত্তিক এমকিউটিটি ব্রোকার (অর্থ প্রদান বা বিনামূল্যে) ব্যবহার করতে হবে, অথবা আপনার পাইতে বিনামূল্যে সফ্টওয়্যার ইনস্টল করতে হবে। আমি এটি সব ঘরে রাখতে চাই, তাই আমি পাইতে মশারি ইনস্টল করেছি।

দুর্ভাগ্যবশত, স্বাভাবিক apt-get এর মাধ্যমে উপলব্ধ সংস্করণটি পুরনো হয়ে গেছে। পরিবর্তে, আসুন সর্বশেষ উত্স যোগ করা যাক।

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key

sudo apt-key যোগ করুন mositto-repo.gpg.key

cd /etc/apt/sources.list.d/

sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list

sudo apt-get install মশা

স্থানীয় নেটওয়ার্কে একটি এমকিউটিটি সার্ভার চালু এবং চলার জন্য আমাদের এটাই করতে হবে। আপনার ব্রোকার ডিফল্টরূপে 1883 পোর্টে চলছে।

আপনার MQTT সার্ভারটি বিনামূল্যে MQTT.fx ব্যবহার করে পরীক্ষা করে দেখুন, যা ক্রস-প্ল্যাটফর্ম। একটি নতুন প্রোফাইল তৈরি করতে সেটিংস আইকনে ক্লিক করুন এবং আপনার রাস্পবেরি পাই এর আইপি ঠিকানা বা নাম লিখুন। সেভ করুন এবং কানেক্ট চাপুন। যদি উপরের ডানদিকে সামান্য ট্রাফিক লাইট সবুজ হয়ে যায়, আপনি যেতে ভাল।

দ্রুত পরীক্ষার জন্য, 'সাবস্ক্রাইব' ট্যাবে ক্লিক করুন এবং টাইপ করুন টপিক / টেক্সট বক্সে, তারপর চাপুন সাবস্ক্রাইব বোতাম। আপনি এখন ইনটপিক নামক বিষয়ে বার্তা পেতে সাবস্ক্রাইব করেছেন, যদিও এটি 0 টি বার্তা দেখাবে। পাবলিশ ট্যাবে ফিরে যান, ছোট বাক্সে টপিক টাইপ করুন এবং নিচের বড় টেক্সট বক্সে একটি সংক্ষিপ্ত বার্তা দিন। আঘাত প্রকাশ করুন কয়েকবার এবং সাবস্ক্রাইব ট্যাবে ফিরে তাকান। আপনাকে সেই বিষয়ে কয়েকটি বার্তা দেখা উচিত।

আমাদের নেটওয়ার্কে কিছু প্রকৃত সেন্সর যুক্ত করার আগে, আমাদের বিষয় স্তর সম্পর্কে জানতে হবে, যা আমাদের MQTT নেটওয়ার্ক গঠন এবং ফিল্টার করতে সক্ষম করে। টপিকের নামগুলি কেস-সংবেদনশীল, $ দিয়ে শুরু করা উচিত নয়, অথবা একটি স্পেস বা অ-ASCII অক্ষর অন্তর্ভুক্ত করা উচিত-পরিবর্তনশীল নামের জন্য স্ট্যান্ডার্ড প্রোগ্রামিং অনুশীলন, সত্যিই।

/ বিভাজক একটি বিষয়ের স্তর নির্দেশ করে, যা অনুক্রমিক, উদাহরণস্বরূপ নিম্নলিখিত সব বৈধ বিষয় স্তর।

inTopic / smallSubdivision / evenSmallerSubdivision

myHome/livingRoom/তাপমাত্রা

myHome/livingRoom/আর্দ্রতা

myHome/রান্নাঘর/তাপমাত্রা

myHome/রান্নাঘর/আর্দ্রতা

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

তারপর ক্লায়েন্টরা প্রকাশ বা সাবস্ক্রাইব করতে পারেন যে কোনো সংখ্যক পৃথক বিষয়ের স্তরে, অথবা কিছু বিশেষ ওয়াইল্ডকার্ড অক্ষর ব্যবহার করে গাছের উঁচু থেকে ফিল্টার করতে পারেন।

যে কোন একটি বিষয় স্তরের জন্য + ওয়াইল্ডকার্ড বিকল্প। এই ক্ষেত্রে:

myHome/+/তাপমাত্রা

উভয় ক্লায়েন্ট সাবস্ক্রাইব হবে

myHome/livingRoom/তাপমাত্রা

myHome/রান্নাঘর/তাপমাত্রা

... কিন্তু আর্দ্রতার মাত্রা নয়।

# একটি মাল্টি-লেভেল ওয়াইল্ডকার্ড, তাই আপনি লিভিংরুম সেন্সর অ্যারে থেকে কিছু নিয়ে আসতে পারেন:

myHome/livingRoom/#

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

MQTT শিক্ষানবিস টিপ: ' /myHome/' একটি ভিন্ন বিষয় ' myHome/' - শুরুতে একটি স্ল্যাশ সহ একটি ফাঁকা বিষয় স্তর তৈরি করে, যা প্রযুক্তিগতভাবে বৈধ থাকাকালীন সুপারিশ করা হয় না কারণ এটি বিভ্রান্তিকর হতে পারে।

এখন যেহেতু আমরা তত্ত্বটি জানি, আসুন একটি Arduino, ইথারনেট শিল্ড, এবং একটি DHT11 তাপমাত্রা এবং আর্দ্রতা সেন্সর দিয়ে যাই - আপনি সম্ভবত আপনার স্টার্টার কিটে একটি পেয়েছেন, কিন্তু যদি না হয়, কেবল একটি গতির জন্য পরিবেশগত সেন্সরটি অদলবদল করুন সেন্সর (বা এমনকি একটি বোতাম)।

ইথারনেট সংযোগ সহ একটি Arduino থেকে MQTT প্রকাশ করা

আপনার যদি ওয়াই-ফাই বা ইথারনেট বিল্ট-ইন সহ হাইব্রিড আরডুইনো-সামঞ্জস্যপূর্ণ ডিভাইস থাকে তবে এটিও কাজ করা উচিত। অবশেষে আমরা যোগাযোগের একটি ভাল/সস্তা উপায় চাই যে প্রতিটি ঘরে একটি নেটওয়ার্ক সংযোগ ব্যবহার করতে হবে, কিন্তু এটি মূল বিষয়গুলি শিখতে কাজ করে।

ডাউনলোড করে শুরু করুন Github থেকে pubsubclient লাইব্রেরি । আপনি যদি 'জিপ হিসাবে ডাউনলোড করুন' বোতামটি ব্যবহার করেন তবে কাঠামোটি কিছুটা ভুল। আনজিপ করুন, ফোল্ডারের নাম পরিবর্তন করুন শুধু pubsubclient , তারপর দুটি ফাইল বের করুন src ফোল্ডার এবং তাদের ডাউনলোড করা ফোল্ডারের মূলের এক স্তরে নিয়ে যান। তারপরে পুরো ফোল্ডারটি আপনার কাছে সরান আরডুইনো/লাইব্রেরি ডিরেক্টরি।

এখানে আমার নমুনা কোড আপনি মানিয়ে নিতে পারেন : DHT11 সিগন্যাল আউটপুট পিন on -এ রয়েছে।

client.setServer ('192.168.1.99', 1883);

দুর্ভাগ্যক্রমে, আমরা এর বন্ধুত্বপূর্ণ নামটি ব্যবহার করতে পারি না (আমার ক্ষেত্রে OpenHAB.local) যেহেতু Arduino তে TCP/IP স্ট্যাক খুবই সরল এবং Bonjour নামকরণের জন্য কোড যোগ করা অনেক মেমরি হবে যা আমরা নষ্ট করতে চাই না। যেসব সেন্সর ডেটা সম্প্রচারিত হচ্ছে সেগুলি পরিবর্তন করতে, এই লাইনগুলিতে স্ক্রোল করুন:

চর বাফার [10];

dtostrf (t, 0, 0, বাফার);

client.publish ('openhab/himitsu/তাপমাত্রা', বাফার);

dtostrf (h, 0, 0, বাফার);

client.publish ('openhab/himitsu/humidity', buffer);

কোডটি একটি কমান্ড চ্যানেলের সাবস্ক্রিপশন অন্তর্ভুক্ত করে। নিম্নলিখিত লাইনটি খুঁজুন এবং সামঞ্জস্য করুন:

client.subscribe ('openhab/himitsu/command');

সেখানে চারপাশে কোড পরীক্ষা করুন এবং আপনি দেখতে পাবেন যে আপনি সহজেই একটি LED বা রিলে নিয়ন্ত্রণ করতে পারেন উদাহরণস্বরূপ নির্দিষ্ট চ্যানেলে কমান্ড পাঠিয়ে। উদাহরণ কোডে, এটি কেবল কমান্ডের প্রাপ্তি স্বীকার করে একটি বার্তা পাঠায়।

আপনার কোড আপলোড করুন, আপনার Arduino নেটওয়ার্কে প্লাগ করুন এবং MQTT.fx ব্যবহার করে সাবস্ক্রাইব করুন # অথবা openhab / himitsu / # (অথবা যাই হোক না কেন আপনি রুমের নাম পরিবর্তন করেছেন, কিন্তু শেষে # অন্তর্ভুক্ত করতে ভুলবেন না)। খুব শীঘ্রই আপনি বার্তা আসছে দেখতে হবে; এবং যদি আপনি কমান্ড বিষয়টিতে চালু বা বন্ধ পাঠান, আপনি স্বীকৃতিগুলিও ফিরে আসতে দেখবেন।

OpenHAB এর জন্য MQTT বাইন্ডিং

সমীকরণের চূড়ান্ত ধাপ হল এটিকে OpenHAB এর সাথে যুক্ত করা। এর জন্য অবশ্যই আমাদের একটি বাঁধাই দরকার।

sudo apt-get openhab-addon-binding-mqtt ইনস্টল করুন

sudo chown -hR openhab: openhab/usr/share/openhab

এবং বাঁধাই সক্ষম করতে কনফিগ ফাইল সম্পাদনা করুন।

mqtt: broker.url = tcp: // localhost: 1883

mqtt: broker.clientId = openhab

OpenHAB পুনরায় চালু করুন

সুডো পরিষেবা ওপেনহাব রিস্টার্ট

তারপর একটি বা দুটি আইটেম যোগ করা যাক:

/ * MQTT সেন্সর */

সংখ্যা Himitsu_Temp 'Himitsu তাপমাত্রা [%.1f ° C]' (হিমিটসু, তাপমাত্রা) {mqtt = '<[broker:openhab/himitsu/temperature:state:default]'}

সংখ্যা Himitsu_Humidity'Himitsu আর্দ্রতা [%.1f %%] '(Himitsu, আর্দ্রতা) {mqtt ='<[broker:openhab/himitsu/humidity:state:default]'}

এতক্ষণে আপনার ফর্ম্যাটটি বোঝা উচিত; এটি একটি হচ্ছে সংখ্যা আইটেম একটি নির্দিষ্ট বিষয়ে MQTT বাইন্ডিং থেকে। এটি একটি সহজ উদাহরণ, আপনি উইকি পৃষ্ঠাটি উল্লেখ করতে চাইতে পারেন যেখানে এটি অনেক বেশি জটিল হতে পারে

অভিনন্দন, আপনার কাছে এখন একটি সস্তা Arduino- ভিত্তিক সেন্সর অ্যারের ভিত্তি রয়েছে। আমরা ভবিষ্যতে এটি পুনর্বিবেচনা করব এবং আরডুইনোকে তাদের নিজস্ব সম্পূর্ণ পৃথক আরএফ নেটওয়ার্কে স্থাপন করব। আমি একটি অভিন্ন সংস্করণ তৈরি করেছি উইজউইকি 7500 বোর্ডের জন্য যদি আপনি তাদের মধ্যে একজন হন।

দৃist়তা এবং গ্রাফিং ডেটা

এখন পর্যন্ত আপনি সম্ভবত সেন্সরগুলির একটি গুচ্ছ সেট আপ করেছেন, Z-Wave বা কাস্টম Arduinos থেকে MQTT চালাচ্ছেন-যাতে আপনি সেই সেন্সরগুলির বর্তমান অবস্থা যেকোনো সময় দেখতে পারেন, এবং আপনার নিয়মগুলিতে তাদের মান সম্পর্কে প্রতিক্রিয়া দেখানো উচিত। কিন্তু সেন্সর মান সম্পর্কে আকর্ষণীয় বিষয় হল যে তারা সময়ের সাথে সাথে পরিবর্তিত হয়: এখানেই অধ্যবসায় এবং গ্রাফিং আসে। অধ্যবসায় ওপেনহ্যাবে মানে সময়ের সাথে ডেটা সংরক্ষণ করা। আসুন এগিয়ে যাই এবং RRD4J (জাভার জন্য রাউন্ড রবিন ডেটাবেস) সেটআপ করি, তথাকথিত কারণ ডেটা একটি রাউন্ড রবিন ফ্যাশনে সংরক্ষিত হয় - ডাটাবেসের আকার সংকুচিত করার জন্য পুরানো ডেটা বাতিল করা হয়।

নিচের কমান্ড দিয়ে rrd4j প্যাকেজ ইনস্টল করুন।

sudo apt-get install openhab-addon-persistence-rrd4j
sudo chown -hR openhab:openhab /usr/share/openhab

তারপর একটি নতুন ফাইল নামক তৈরি করুন rrd4j.persist মধ্যে কনফিগারেশন/অধ্যবসায় ফোল্ডার নিম্নলিখিতগুলিতে আটকান:

কৌশল {

everyMinute: '0 * * * *?'

প্রতি ঘন্টা: '0 0 * * *?'

EveryDay: '0 0 0 * *?'

default = everyChange

}

আইটেম {

// মান আপডেট করা হলে সবকিছু স্থির করুন, কেবল একটি ডিফল্ট, এবং স্টার্টআপের ডাটাবেস থেকে সেগুলি পুনরুদ্ধার করুন

*: কৌশল = everyChange, restOnStartup

// পরবর্তী আমরা টেম্পারেচার গ্রুপের যেকোনো কিছুর জন্য এবং প্রতি মিনিটে আর্দ্রতার জন্য প্রত্যেক ঘন্টার নির্দিষ্ট কৌশল নির্ধারণ করি

আমি একটি বইয়ের নাম মনে করতে পারছি না

তাপমাত্রা*: কৌশল = প্রতি ঘন্টা

আর্দ্রতা*: কৌশল = everyMinute

// বিকল্পভাবে আপনি এখানে নির্দিষ্ট আইটেম যুক্ত করতে পারেন, যেমন

// Bedroom_Humidity, JamesInOffice: কৌশল = everyMinute

}

এই ফাইলের প্রথম অংশে, আমরা কৌশলগুলি সংজ্ঞায়িত করছি, যার অর্থ কেবল একটি CRON এক্সপ্রেশনকে একটি নাম দেওয়া। আমরা My.OpenHAB- এর সাথে একই কাজ করেছি, কিন্তু এইবার আমরা কিছু নতুন কৌশল তৈরি করছি যা আমরা EveryDay, EveryHour এবং EveryMinute ব্যবহার করতে পারি। আমি এগুলি এখনও ব্যবহার করি নি, তবে আমি ভবিষ্যতে হতে পারি।

ফাইলের দ্বিতীয়ার্ধে, আমরা rr4dj কে বলি কোন ডেটা মান সংরক্ষণ করতে হবে। একটি ডিফল্ট হিসাবে, আমরা প্রতিবার আপডেট করার সময় সবকিছু সংরক্ষণ করতে যাচ্ছি, কিন্তু আমি নির্দিষ্ট সেন্সরের জন্য কিছু সময় ভিত্তিক কৌশলও নির্দিষ্ট করেছি। তাপমাত্রা নিয়ে আমি খুব বেশি বিরক্ত নই, তাই আমি সেট করেছি যে শুধুমাত্র প্রতি ঘন্টা বাঁচাতে, কিন্তু আর্দ্রতা আমার জন্য একটি বড় উদ্বেগ, তাই আমি দেখতে চাই যে এটি প্রতি মিনিটে কীভাবে পরিবর্তন হচ্ছে। যদি নির্দিষ্ট ডেটা আপনি নির্দিষ্ট সময়ে সংরক্ষণ করতে চান, সেগুলি এখনই এখানে যোগ করুন অথবা প্রয়োজনে সামঞ্জস্য করুন।

দ্রষ্টব্য: যদি আপনিও ডেটা গ্রাফ করতে চান, তাহলে আপনাকে অবশ্যই এটি প্রতি মিনিটে অন্তত একবার সংরক্ষণ করতে হবে। আপনার সেন্সর ডেটা এমনকি এই দ্রুত আপডেট করা হলে তা কোন ব্যাপার না, আপনাকে কেবল মিনিটে একবার rr4dj সংরক্ষণ করতে বলতে হবে।

যে সংজ্ঞায়িত সঙ্গে, আপনি কিছু ডিবাগ আউটপুট আপনি মান যে সংরক্ষণ করা হচ্ছে দেখা শুরু করা উচিত।

এরপরে, আসুন এই সমস্ত ডেটার কিছু সুন্দর গ্রাফ তৈরি করি। এটা সত্যিই সহজ। একটি পৃথক সেন্সরের গ্রাফ তৈরি করতে, আপনার সাইটের মানচিত্রে নিম্নলিখিতগুলি যোগ করুন:

চার্ট আইটেম = বেডরুম_আদ্রতা সময় = জ

আক্ষরিকভাবে এটাই আপনার প্রয়োজন। সময়ের জন্য বৈধ মান হল h, 4h, 8h, 12h, D, 3D, W, 2W, M, 2M, 4M, Y ; এগুলোর অর্থ কি তা স্পষ্ট হওয়া উচিত। নির্দিষ্ট না হলে এটি একটি সম্পূর্ণ দিনের ডেটার জন্য ডিফল্ট হয়ে যায়।

একাধিক আইটেম দিয়ে একটি গ্রাফ তৈরি করতে, কেবল গ্রুপের নাম গ্রাফ করুন:

চার্ট আইটেম = আর্দ্রতা সময় = জ

আপনি হয়তো জানতে আগ্রহী হতে পারেন যে আপনি এই গ্রাফটি অন্য কোথাও ব্যবহার করতে পারেন; এটি নিম্নলিখিত URL ব্যবহার করে একটি চিত্র তৈরি করছে: http: // YOUROPENHABURL: 8080/chart? groups = humidity & period = h

কেমন আছে তোমার OpenHAB সিস্টেম আসছে?

গাইডের এই কিস্তির জন্য এটিই, তবে ওপেনএইচএবি সম্পর্কে আমাদের কাছ থেকে শেষবার এটি আশা করবেন না। আশা করি এটি এবং শিক্ষানবিসের নির্দেশিকা আপনাকে আপনার নিজস্ব সম্পূর্ণ ওপেনহ্যাব সিস্টেম বিকাশের জন্য একটি দৃ ground় ভিত্তি দিয়েছে - কিন্তু এটি এমন একটি প্রক্রিয়া যা সত্যিই কখনোই সম্পূর্ণভাবে শেষ হয়নি।

সৌভাগ্যক্রমে, ওপেনহ্যাব কয়েকটি ডিভাইস থেকে শত শত পর্যন্ত স্কেল করতে পারে, সাধারণ নিয়ম জটিলতা থেকে শুরু করে হোম অটোমেশনে চূড়ান্ত পর্যন্ত - সুতরাং আপনার সিস্টেমটি কীভাবে আসছে? আপনি কোন ডিভাইসগুলি বেছে নিয়েছেন? আপনি মোকাবেলা করতে যাচ্ছেন পরবর্তী বড় প্রকল্প কি?

আসুন মন্তব্যে কথা বলি - এবং দয়া করে, যদি আপনি এই নির্দেশিকাটি দরকারী বলে মনে করেন তবে সেই শেয়ার বোতামগুলিতে ক্লিক করুন আপনার বন্ধুদের জানাতে যে তারা কীভাবে তাদের নিজস্ব OpenHAB সিস্টেম সেটআপ করতে পারে।

আমরা আশা করি আপনি আমাদের প্রস্তাবিত আইটেমগুলি পছন্দ করবেন এবং আলোচনা করবেন! MUO এর অধিভুক্ত এবং পৃষ্ঠপোষক অংশীদারিত্ব রয়েছে, তাই আমরা আপনার কিছু ক্রয় থেকে রাজস্বের একটি অংশ গ্রহণ করি। এটি আপনার প্রদত্ত মূল্যের উপর প্রভাব ফেলবে না এবং আমাদেরকে সেরা পণ্যের সুপারিশ দিতে সাহায্য করবে।

শেয়ার করুন শেয়ার করুন টুইট ইমেইল অ্যানিমেটিং বক্তৃতার জন্য একটি শিক্ষানবিস নির্দেশিকা

অ্যানিমেশন বক্তৃতা একটি চ্যালেঞ্জ হতে পারে। আপনি যদি আপনার প্রকল্পে সংলাপ যুক্ত করতে প্রস্তুত হন, আমরা আপনার জন্য প্রক্রিয়াটি ভেঙে দেব।

পরবর্তী পড়ুন
সম্পর্কিত বিষয়
  • DIY
  • স্মার্ট হোম
  • আরডুইনো
  • অধিবাস স্বয়ংক্রিয়তা
  • লংফর্ম
  • লংফর্ম গাইড
লেখক সম্পর্কে জেমস ব্রুস(707 নিবন্ধ প্রকাশিত)

জেমসের কৃত্রিম বুদ্ধিমত্তায় একটি বিএসসি আছে এবং এটি CompTIA A+ এবং Network+ প্রত্যয়িত। যখন তিনি হার্ডওয়্যার রিভিউ এডিটর হিসেবে ব্যস্ত থাকেন না, তখন তিনি লেগো, ভিআর এবং বোর্ড গেম উপভোগ করেন। মেক ইউসঅফে যোগদানের আগে তিনি ছিলেন একজন আলো প্রযুক্তিবিদ, ইংরেজি শিক্ষক এবং ডেটা সেন্টার ইঞ্জিনিয়ার।

জেমস ব্রুস থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন