OpenHAB शुरुआती गाइड भाग 2: ZWave, MQTT, नियम और चार्टिंग

OpenHAB शुरुआती गाइड भाग 2: ZWave, MQTT, नियम और चार्टिंग

नि: शुल्क का मतलब हमेशा 'भुगतान जितना अच्छा नहीं' होता है, और ओपनएचएबी कोई अपवाद नहीं है। ओपन सोर्स होम ऑटोमेशन सॉफ्टवेयर बाजार पर किसी भी अन्य होम ऑटोमेशन सिस्टम की क्षमताओं से कहीं अधिक है - लेकिन इसे स्थापित करना आसान नहीं है। वास्तव में, यह सर्वथा निराशाजनक हो सकता है।





गाइड के भाग 1 में, मैंने आपको बताया रास्पबेरी पाई पर ओपनएचएबी स्थापित करना , OpenHAB की मूल अवधारणाओं को पेश किया, और आपको दिखाया कि सिस्टम में अपने पहले आइटम कैसे जोड़ें। आज हम आगे बढ़ेंगे:





  • ZWave डिवाइस जोड़ना
  • हार्मनी अल्टीमेट कंट्रोलर जोड़ना
  • परिचय नियम
  • पेश है MQTT, और Arduino पर सेंसर के साथ अपने Pi पर MQTT ब्रोकर इंस्टॉल करना
  • डेटा रिकॉर्ड करना और उसका रेखांकन करना

जेड-वेव का परिचय

जेड-वेव वर्षों से प्रमुख होम ऑटोमेशन प्रोटोकॉल रहा है: यह विश्वसनीय है, बड़े पैमाने पर विकसित किया गया है, और किसी भी अन्य स्मार्ट होम उत्पादों की तुलना में अधिक लंबी दूरी पर काम करता है। आपके लिए सैकड़ों Z-Wave सेंसर उपलब्ध हैं जो कई प्रकार के कार्य करते हैं। ओपनएचएबी कर सकते हैं Z-Wave के साथ काम करता है, लेकिन इसे स्थापित करने में परेशानी होती है, और विश्वसनीयता की गारंटी नहीं है।





यदि आप विशेष रूप से OpenHAB के साथ उपयोग के लिए Z-Wave सेंसर से भरे घर की खरीद पर विचार कर रहे हैं, तो मैं आपसे पुनर्विचार करने का आग्रह करता हूं। यह आपके लिए बहुत अच्छा काम कर सकता है, या यह छोटी लेकिन लगातार समस्याओं से ग्रस्त हो सकता है। कम से कम, सेंसर से भरा घर तब तक न खरीदें जब तक आपको कुछ आज़माने का मौका न मिले। Z-Wave चुनने का एकमात्र कारण यह है कि यदि आप OpenHAB पर 100% सेटल नहीं हैं, और भविष्य में अपने विकल्पों को खुला छोड़ना चाहते हैं: Z-Wave उदाहरण के लिए Samsung SmartThings हब के साथ-साथ Z-Wave विशिष्ट हब के साथ काम करता है। जैसे होमसीर, और कई अन्य सॉफ्टवेयर विकल्प जैसे डोमोटिक्ज़ .

हालांकि OpenHAB में Z-Wave बाइंडिंग शामिल है, फिर भी आपको पहले Z-Wave नेटवर्क को कॉन्फ़िगर करें , इससे पहले कि OpenHAB डेटा के लिए इसे क्वेरी करना शुरू कर सके। यदि आपके पास रास्पबेरी नियंत्रक बोर्ड है, तो आपके पास नेटवर्क को कॉन्फ़िगर करने के लिए कुछ सॉफ़्टवेयर की आपूर्ति की गई है, इसलिए हम इसे यहां कवर नहीं करेंगे। यदि आपने Aeotec USB Z-Stick नियंत्रक या इसी तरह का खरीदा है, तो संभवतः आपके पास कोई सॉफ़्टवेयर शामिल नहीं है, इसलिए पढ़ें।



Aeotec Z-Stick Gen5 Z-Wave हब Z-वेव प्लस USB गेटवे बनाने के लिए (साधारण सफेद) अमेज़न पर अभी खरीदें

यदि आपके पास पहले से Z-Wave नेटवर्क सेटअप है , आप बस अपने कंट्रोलर को पाई में प्लग कर सकते हैं और बाइंडिंग और आइटम्स को कॉन्फ़िगर करना शुरू कर सकते हैं। यदि यह Z-Wave में आपका पहला प्रवेश है, तो यह थोड़ा अधिक जटिल है।

सबसे पहले, हार्डवेयर पक्ष पर: प्रत्येक नियंत्रक के पास उपकरणों के साथ युग्मित करने का अपना तरीका होता है (तकनीकी रूप से 'समावेश मोड' के रूप में जाना जाता है जिसमें एक नोड आईडी असाइन की जाती है)। एओटेक जेड-स्टिक के मामले में, इसका मतलब है कि इसे यूएसबी पोर्ट से अनप्लग करना, और बटन को एक बार दबाकर इसे समावेशन मोड में रखना है। फिर इसे उस डिवाइस के पास ले जाएं जिसे आप पेयर कर रहे हैं, और उस पर भी इंक्लूजन बटन दबाएं (यह भी अलग-अलग होगा: मेरे एवरस्प्रिंग सॉकेट को बटन को त्वरित उत्तराधिकार में 3 बार दबाने की आवश्यकता होती है, इसलिए यहां सबक आपके डिवाइस के लिए मैनुअल पढ़ना है) .





Z-स्टिक सफलता का संकेत देने के लिए संक्षिप्त रूप से चमकती है। यह समस्या तब प्रस्तुत करता है जब इसे वापस पाई में प्लग किया जाता है, क्योंकि एक नया पोर्ट सौंपा गया है। यदि आप पाते हैं कि इसे गतिशील रूप से एक अलग पुन: असाइन किया गया है तो इसे मानक पोर्ट पर रीसेट करने के लिए अपने पीआई को पुनरारंभ करें। बेहतर अभी भी: इसे तब तक पाई में प्लग न करें जब तक कि आप पहले सभी हार्डवेयर पेयरिंग नहीं कर लेते।

HABmin और Z-Wave बाइंडिंग स्थापित करना

चूंकि OpenHAB वास्तव में Z-Wave के लिए एक कॉन्फ़िगरेशन उपयोगिता नहीं है, हम एक और वेब प्रबंधन उपकरण स्थापित करने जा रहे हैं जो करता है - HABmin नामक कुछ। की ओर बढ़ें हबमिन जीथब भंडार वर्तमान रिलीज डाउनलोड करें। एक बार जब आप इसे अनज़िप कर लेते हैं, तो आप 2 जार Addons निर्देशिका में फ़ाइलें - इन्हें आपके OpenHAB होम शेयर में संबंधित ऐडऑन निर्देशिका में रखा जाना चाहिए (यदि आप Aotec gen5 Z-Stick का भी उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपके पास Z-Wave बाइंडिंग का कम से कम संस्करण 1.8 है) .





इसके बाद, वेबएप्स निर्देशिका में एक नया फ़ोल्डर बनाएं, और इसे 'हैबमिन' (लोअरकेस महत्वपूर्ण है) कहा जाता है। बाकी डाउनलोड की गई फाइलों को वहां कॉपी करें।

नोट: एक भी है हबमिन २ सक्रिय विकास के तहत। स्थापना बहुत समान है लेकिन एक अतिरिक्त .jar एडऑन के साथ। यह देखने के लिए दोनों को आजमाने लायक हो सकता है कि आप कौन सा पसंद करते हैं।

यदि आपने पहले से नहीं किया है, तो अपने नियंत्रक को अपने पीआई में प्लग करें। सही पोर्ट खोजने के लिए निम्न टाइप करें।

एलएस /देव/ट्टी*

आप नाम में यूएसबी के साथ कुछ भी ढूंढ रहे हैं, या मेरे विशेष मामले में, जेड-स्टिक खुद को प्रस्तुत करता है / देव / ttyACM0 (एक मॉडेम)। इसे प्लग इन करने से पहले और एक बार बाद में कमांड करना आसान हो सकता है, ताकि आप देख सकें कि यदि आप अनिश्चित हैं तो क्या परिवर्तन होते हैं।

OpenHAB कॉन्फ़िग फ़ाइल खोलें और Z-Wave पर अनुभाग को संशोधित करें, दोनों पंक्तियों को असम्बद्ध करते हुए और अपना वास्तविक डिवाइस पता डालें। मेरे लिए एक अंतिम चरण OpenHAB उपयोगकर्ता को मॉडेम तक पहुंचने की अनुमति देना था।

सुडो यूजरमॉड-ए-जी डायलआउट ओपनहैब

अब, सब कुछ क्रियान्वित करने के लिए, OpenHAB को पुनः आरंभ करें

सुडो सर्विस ओपनहैब रीस्टार्ट

उम्मीद है, अगर आप डिबग लॉग की जाँच कर रहे हैं, तो आपको कुछ इस तरह दिखाई देगा। बधाई हो, अब आप Z-Wave की बात कर रहे हैं। आपको विभिन्न Z-Wave नोड्स के संदेशों से भरा हुआ डीबग लॉग भी मिल सकता है। आइए HABMIN की जाँच करके शुरू करें कि यह क्या मिला है: http://openhab.local:8080/habmin/index.html (openhab.local को अपने रास्पबेरी पाई होस्टनाम या आईपी पते से बदलना)।

HABMIN में देखने के लिए बहुत कुछ है, लेकिन हम केवल वास्तव में चिंतित हैं कॉन्फ़िगरेशन -> बाइंडिंग -> जेड-वेव -> डिवाइसेस टैब, जैसा कि आप नीचे देख सकते हैं। आपके संदर्भ में आसानी के लिए स्थान और नाम लेबल को संपादित करने के लिए नोड का विस्तार करें।

जेड-वेव आइटम कॉन्फ़िगर करना

प्रत्येक Z-Wave डिवाइस में OpenHAB के लिए एक विशिष्ट कॉन्फ़िगरेशन होगा। शुक्र है, अधिकांश उपकरणों का पहले ही पता लगाया जा चुका है और आपके लिए पहले से ही उदाहरण होंगे। ऐसे कस्टम डिवाइस कॉन्फ़िगर करना जिन्हें पहचाना नहीं गया है, इस गाइड के दायरे से बाहर हैं, लेकिन मान लें कि यह अभी के लिए समर्थित है।

सबसे पहले, मुझे नोड 3 पर एक बुनियादी एवरस्प्रिंग AN158 पावर स्विच और मीटर मिला है। एक त्वरित Googling ने मुझे एक नमूना आइटम कॉन्फ़िगरेशन के साथ Wetwa.re पर एक ब्लॉग पोस्ट पर ले जाया। मैंने इसे इस प्रकार अनुकूलित किया:

स्विच डीह्यूमिडिफ़ायर_स्विच 'डीह्यूमिडिफ़ायर' {zwave='3:command=switch_binary'}

संख्या dehumidifier_Watts 'डीह्यूमिडिफ़ायर बिजली की खपत [%.1f W]' { zwave='3:command=meter' }

उत्तम।

अगला एक Aeotec Gen5 मल्टी-सेंसर है।

एयॉन लैब्स एओटेक जेड-वेव जेन5 मल्टी-सेंसर (जेड-वेव प्लस) अमेज़न पर अभी खरीदें

इसके लिए, मुझे एक नमूना विन्यास मिला है 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'}

संपर्क Hallway_Motion 'हॉलवे मोशन [%s]' (दालान, मोशन) {zwave='2:0:command=sensor_binary,response_to_basic=true'}

नंबर सेंसर_1_बैटरी 'बैटरी [%s %%]' (मोशन) {zwave='2:0:command=battery'}

यदि इसका प्रारूप आपको अजीब लगता है, तो कृपया पहले वाले पर जाएं शुरुआती मार्गदर्शक , विशेष रूप से ह्यू बाइंडिंग सेक्शन, जहां मैं समझाता हूं कि आइटम कैसे जोड़े जाते हैं। आपको शायद कभी भी इस तरह के पेस्ट उदाहरणों को कॉपी करने की आवश्यकता होगी, लेकिन यदि आपके पास एक नया उपकरण है, तो बाध्यकारी दस्तावेज़ीकरण सभी का विवरण देता है आदेशों .

लॉजिटेक हार्मनी बाइंडिंग

इससे पहले कि हम नियमों में कूदें, मैं हार्मनी बाइंडिंग के साथ काम करने के बारे में एक त्वरित नोट जोड़ना चाहता था। मैं होम मीडिया सेंटर के अनुभव को सरल बनाने के लिए अंतिम रिमोट की हार्मनी श्रृंखला का बहुत बड़ा प्रशंसक हूं, लेकिन वे अक्सर स्मार्ट होम के भीतर एक अलग प्रणाली के रूप में खड़े होते हैं। OpenHAB के साथ, लॉजिटेक हार्मनी गतिविधियां और पूर्ण डिवाइस नियंत्रण अब आपके केंद्रीकृत सिस्टम का हिस्सा हो सकता है, और यहां तक ​​कि स्वचालन नियमों में भी शामिल हो सकता है।

'सद्भाव' की खोज के लिए apt-cache का उपयोग करके आपको मिलने वाली तीन बाध्यकारी फ़ाइलों को स्थापित करके प्रारंभ करें:

करने के लिए मत भूलना चाउन जब आप कर लें तो बाइंडिंग निर्देशिका फिर से:

sudo apt-openhab-addon-action-harmonyhub स्थापित करें

sudo apt-openhab-addon-binding-harmonyhub स्थापित करें

sudo apt-openhab-addon-io-harmonyhub स्थापित करें

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

बाइंडिंग को कॉन्फ़िगर करने के लिए, openhab.cfg फ़ाइल खोलें और निम्नानुसार एक नया अनुभाग जोड़ें:

######### सद्भाव रिमोट कंट्रोल ##########

हार्मनीहब:होस्ट=192.168.1.181 या आपका आईपी

सद्भावनाहब: उपयोगकर्ता नाम = आपका-सद्भाव-ईमेल-लॉगिन

सद्भावनाह: पासवर्ड = आपका पासवर्ड

IP पता आपके Harmony हब का है। इसका पता लगाने के लिए नेटवर्क स्कैनर का उपयोग करें। आपको अपना लॉगिन विवरण भी दर्ज करना होगा, जो आप मानक Harmony config उपयोगिता को लॉन्च करते समय दर्ज करते हैं। बस, इतना ही। अपने ह्यू को पुनरारंभ करने पर, आपके डीबग लॉग में बाध्यकारी से आउटपुट का अचानक विस्फोट होना चाहिए।

यह आपकी सभी गतिविधियों, उपकरणों और आदेशों की एक JSON स्वरूपित सूची है जिसे भेजा जा सकता है। भविष्य के संदर्भ के लिए इसे कॉपी करना एक अच्छा विचार है। आप एक ऑनलाइन JSON फॉर्मेटर में पेस्ट करके कोलैप्सेबल नोड्स के साथ पढ़ना और भी आसान बना सकते हैं जैसे यह एक .

साथ ही मानक PowerOff गतिविधि जो कि एक डिफ़ॉल्ट है, आप यहां नाम से सूचीबद्ध अपनी स्वयं की परिभाषित गतिविधियां पाएंगे। आइए अब गतिविधियों को शुरू करने के लिए एक सरल एक बटन नियंत्रण बनाएं। सबसे पहले, अपनी आइटम फ़ाइल में, निम्न पंक्ति जोड़ें। यदि आप चाहें तो समूह और आइकन बदलें।

/* सद्भाव हब */

स्ट्रिंग हार्मनी_एक्टिविटी 'हार्मनी [%s]' (लिविंग_रूम) {हार्मनीहब='*[currentActivity]' }

यह है एक टू-वे स्ट्रिंग बाइंडिंग , जो दोनों वर्तमान गतिविधि लाने में सक्षम है, और वर्तमान गतिविधि को कुछ और होने का आदेश देता है। अब हम इसके लिए साइटमैप फ़ाइल में एक बटन बना सकते हैं।

स्विच आइटम = हार्मनी_एक्टिविटी मैपिंग = [पॉवरऑफ = 'ऑफ', एक्सरसाइज = 'एक्सरसाइज', 13858434 = 'टीवी', कराओके = 'कराओके']

मैं अपने लिए एक ईमेल पता कैसे बनाऊं

वर्गाकार कोष्ठक में आप लेबल के साथ प्रत्येक गतिविधि देखेंगे। आम तौर पर आप गतिविधियों को सीधे संदर्भित कर सकते हैं क्योंकि आपने उन्हें अपने रिमोट पर नाम दिया है, लेकिन इसका अपवाद मैंने पाया, गतिविधि नाम में एक स्थान के साथ कुछ भी था, जैसे 'टीवी देखें'। इस मामले में, आपको गतिविधि आईडी का उपयोग करना होगा। फिर से, आप JSON डिबग आउटपुट में ID पा सकते हैं। अपना इंटरफ़ेस सहेजें और ताज़ा करें, आपको कुछ ऐसा ही देखना चाहिए:

आप अपने नियमों में गतिविधियों का भी उल्लेख कर सकते हैं, जैसा कि हम आगे देखेंगे। पर अधिक जानकारी के लिए विकी पृष्ठ पढ़ें सद्भाव बंधन .

नियमों का एक सामान्य परिचय

अधिकांश स्मार्ट होम हब में कुछ प्रकार के नियम निर्माण शामिल होते हैं ताकि आप सेंसर डेटा और घर में होने वाली घटनाओं पर स्वचालित रूप से प्रतिक्रिया कर सकें। वास्तव में, मैं तर्क दूंगा कि वास्तव में स्मार्ट होम वह नहीं है जिसे आपको मोबाइल ऐप्स के साथ बातचीत करने में समय बिताने की ज़रूरत है - यह एक ऐसा है जो अंतिम उपयोगकर्ता के लिए अदृश्य है और पूरी तरह से स्वचालित है। इसके लिए, OpenHAB में एक शक्तिशाली नियम स्क्रिप्टिंग भाषा भी शामिल है जिसे आप प्रोग्राम कर सकते हैं, जो कि अधिकांश स्मार्ट होम हब या IFTTT व्यंजनों की जटिलता से कहीं अधिक है।

प्रोग्रामिंग नियम इससे भी बदतर लगता है। आइए सरल नियमों की एक जोड़ी के साथ शुरू करें जो उपस्थिति सेंसर के आधार पर प्रकाश को चालू या बंद करते हैं:

नियम 'जेम्स के उपस्थित होने पर कार्यालय की रोशनी'

कब

आइटम JamesInOffice को OFF से ON . में बदला गया

फिर

SendCommand (Office_Hue, ON)

समाप्त

नियम 'जेम्स के जाने पर कार्यालय की रोशनी बंद'

कब

आइटम JamesInOffice को ON से OFF में बदला गया

फिर

SendCommand (Office_Hue, OFF)

समाप्त

सबसे पहले, हम नियम को नाम देते हैं - वर्णनात्मक बनें, ताकि आप जान सकें कि कौन सी घटना फायरिंग है। इसके बाद, हम अपने सरल नियम को यह कहकर परिभाषित करते हैं जब x सत्य है, तो y . करें . अंत उस विशेष नियम के बंद होने का प्रतीक है। आप नियमों में कई विशेष शब्दों का उपयोग कर सकते हैं, लेकिन अभी के लिए हम वाक्य रचना के दो सरल बिट्स के साथ काम कर रहे हैं - मद , जो आपको किसी चीज़ की स्थिति पूछने की अनुमति देता है; तथा भेजेंकमांड , जो ठीक वैसा ही करता है जैसा आप सोचते हैं कि यह करेगा। मैंने तुमसे कहा था कि यह आसान था।

नियमों की एक जोड़ी का उपयोग करना शायद अनावश्यक है, लेकिन जैसे-जैसे मेरा तर्क अधिक जटिल होता जाता है, मुझे क्षेत्र में प्रवेश करने या छोड़ने के लिए उन्हें अलग करना फायदेमंद होगा - और कहीं एक लाइट सेंसर जोड़ना एक अच्छा विचार हो सकता है समीकरण में इसलिए हम अनावश्यक रूप से रोशनी चालू नहीं कर रहे हैं।

आइए शेड्यूल किया गया नियम बनाने के लिए एक और उदाहरण देखें।

नियम 'हर सुबह व्यायाम करें'

कब

समय क्रोन '0 0 8 1/1* ? *'

फिर

सद्भावना प्रारंभ गतिविधि ('व्यायाम')

समाप्त

फिर से, हम नियम का नाम देते हैं, राज्य की शर्तें जब इसे आग लगाना चाहिए, और कार्रवाई करने के लिए। लेकिन इस मामले में, हम एक समय पैटर्न को परिभाषित कर रहे हैं। उद्धरणों में आप जो अजीब कोड देखते हैं, वह क्वार्ट्ज शेड्यूलर के लिए एक CRON अभिव्यक्ति है (प्रारूप एक नियमित CRONtab से थोड़ा अलग है)। मैंनें इस्तेमाल किया cronmaker.com अभिव्यक्ति बनाने में मदद करने के लिए, लेकिन आप विस्तृत विवरण और अधिक उदाहरणों के लिए प्रारूप मार्गदर्शिका [अब उपलब्ध नहीं] भी पढ़ सकते हैं।

CronMaker.com सही ढंग से स्वरूपित क्रॉन अभिव्यक्ति उत्पन्न करने के लिए प्रयोग किया जाता है

मेरे नियम कहते हैं, 'हर सुबह 8 बजे, सप्ताह के हर दिन, व्यायाम गतिविधि शुरू करने के लिए मेरे हार्मनी अल्टीमेट सिस्टम को बताएं', जो बदले में टीवी, एक्सबॉक्स, एम्पलीफायर को सक्रिय करता है, और लॉन्च करने के लिए एक मिनट के बाद ए बटन दबाता है। ड्राइव में डिस्क।

अफसोस की बात है कि OpenHAB अभी तक मेरे लिए व्यायाम करने में सक्षम नहीं है।

एक और नियम जो मैं आपको दिखाना चाहता हूं वह कुछ ऐसा है जिसका उपयोग मैं अपने घर में नमी के स्तर को प्रबंधित करने के लिए करता हूं। मेरे पास एक एकल डीह्यूमिडिफ़ायर है जिसे मुझे जहाँ कहीं भी घूमने की ज़रूरत है, इसलिए मैंने अपने सभी आर्द्रता सेंसर को देखने का फैसला किया, जो सबसे अधिक है, और उसे एक चर में संग्रहीत करें। यह वर्तमान में हर मिनट चालू होता है, लेकिन इसे आसानी से कम किया जा सकता है। पहले देख लो:

आयात org.openhab.core.library.types.*

आयात org.openhab.model.script.actions.*

आयात java.lang.String

नियम 'आर्द्रता मॉनिटर'

जब समय क्रोन '0 * * * * ?'

फिर

वर पिछलाउच्च = 0

वर हाईहम = ''

आर्द्रता?.सदस्य।प्रत्येक के लिए[हम|

लॉगडिबग ('आर्द्रता। नियम', hum.name);

अगर (hum.state दशमलव प्रकार के रूप में> पिछला उच्च) {

पिछलाउच्च = hum.state

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

}

जार फ़ाइलें विंडोज़ 10 नहीं खोल सकते

]

logDebug('humidity.rules', highHum);

पोस्टअपडेट (Dehumidifier_Needed, HighHum);

समाप्त

नियम का मूल में है आर्द्रता?.सदस्य.foreach रेखा। आर्द्रता मेरे आर्द्रता सेंसर के लिए एक समूह का नाम है; सदस्य उस समूह की सभी वस्तुओं को पकड़ लेता है; प्रत्येक के लिए उन पर पुनरावृति (एक जिज्ञासु वर्ग ब्रैकेट प्रारूप के साथ आप शायद परिचित नहीं हैं)। नियमों का सिंटैक्स Xtend का व्युत्पन्न है, इसलिए आप इसे पढ़ सकते हैं Xtend दस्तावेज़ीकरण अगर आपको अनुकूलित करने के लिए कोई उदाहरण नहीं मिल रहा है।

आपको शायद इसकी आवश्यकता नहीं होगी - वहाँ सैकड़ों उदाहरण नियम हैं:

OpenHAB और इंटरनेट ऑफ थिंग्स के लिए MQTT

MQTT मशीन-टू-मशीन संचार के लिए एक हल्का संदेश प्रणाली है - आपके Arduinos या रास्पबेरी Pis के लिए एक दूसरे से बात करने के लिए एक प्रकार का ट्विटर (हालांकि निश्चित रूप से यह सिर्फ उन लोगों की तुलना में बहुत अधिक के साथ काम करता है)। यह तेजी से लोकप्रियता प्राप्त कर रहा है और इंटरनेट ऑफ थिंग्स उपकरणों के साथ खुद को एक घर ढूंढ रहा है, जो आमतौर पर कम संसाधन वाले माइक्रो-कंट्रोलर होते हैं जिन्हें सेंसर डेटा को आपके हब में वापस भेजने या रिमोट कमांड प्राप्त करने के लिए एक विश्वसनीय तरीके की आवश्यकता होती है। ठीक यही हम इसके साथ करेंगे।

लेकिन पहिया को फिर से क्यों लगाएं?

MQ टेलीमेट्री ट्रांसपोर्ट का आविष्कार 1999 में धीमी उपग्रह कनेक्शन के माध्यम से तेल पाइपलाइनों को जोड़ने के लिए किया गया था, विशेष रूप से बैटरी के उपयोग और बैंडविड्थ को कम करने के लिए डिज़ाइन किया गया था, जबकि अभी भी विश्वसनीय डेटा वितरण प्रदान करता है। वर्षों से डिजाइन सिद्धांत समान रहे हैं, लेकिन उपयोग के मामले विशेष एम्बेडेड सिस्टम से सामान्य इंटरनेट ऑफ थिंग्स उपकरणों में स्थानांतरित हो गए हैं। 2010 में प्रोटोकॉल को रॉयल्टी मुक्त जारी किया गया था, जो किसी के भी उपयोग और कार्यान्वयन के लिए खुला था। हमें मुफ्त पसंद है।

आप सोच रहे होंगे कि हम अभी तक एक और प्रोटोकॉल से परेशान क्यों हैं - हमारे पास पहले से ही HTTP है - जिसका उपयोग सभी तरह के वेब कनेक्टेड सिस्टम (जैसे OpenHAB और IFTTT, विशेष रूप से नए निर्माता चैनल के बीच त्वरित संदेश भेजने के लिए किया जा सकता है) ) और आप सही होंगे। हालाँकि, एक HTTP सर्वर का प्रोसेसिंग ओवरहेड काफी बड़ा है - इतना अधिक कि आप Arduino जैसे एम्बेडेड माइक्रोकंट्रोलर पर आसानी से नहीं चला सकते (कम से कम, आप कर सकते हैं, लेकिन आपके पास किसी और चीज़ के लिए अधिक मेमोरी नहीं बचेगी ) MQTT दूसरी ओर हल्का है, इसलिए आपके नेटवर्क के आसपास संदेश भेजने से पाइप बंद नहीं होंगे, और यह आसानी से हमारे छोटे Arduino मेमोरी स्पेस में फिट हो सकता है।

एमक्यूटीटी कैसे काम करता है?

MQTT को एक सर्वर (जिसे 'ब्रोकर' कहा जाता है) और एक या अधिक क्लाइंट दोनों की आवश्यकता होती है। सर्वर एक बिचौलिए के रूप में कार्य करता है, संदेश प्राप्त करता है और किसी भी इच्छुक ग्राहकों को उनका पुन: प्रसारण करता है।

आइए जारी रखें मशीनों के लिए ट्विटर हालांकि सादृश्य। जिस तरह ट्विटर उपयोगकर्ता अपने स्वयं के अर्थहीन 140 अक्षरों को ट्वीट कर सकते हैं, और उपयोगकर्ता अन्य उपयोगकर्ताओं को पोस्ट की एक क्यूरेटेड स्ट्रीम देखने के लिए 'अनुसरण' कर सकते हैं, एमक्यूटीटी क्लाइंट वहां से सभी संदेश प्राप्त करने के लिए एक विशेष चैनल की सदस्यता ले सकते हैं, साथ ही अपने संदेश प्रकाशित कर सकते हैं। उस चैनल को। इस प्रकाशन और सदस्यता पैटर्न को कहा जाता है पब / उप , परंपरा के विपरीत क्लाइंट सर्वर HTTP का मॉडल।

HTTP के लिए आवश्यक है कि आप उस मशीन तक पहुंचें जिससे आप संचार कर रहे हैं, जैसे हैलो, फिर डेटा प्राप्त करते या डालते समय लगातार एक-दूसरे को स्वीकार करते रहें। पब/सब के साथ, प्रकाशन करने वाले क्लाइंट को यह जानने की आवश्यकता नहीं है कि कौन से क्लाइंट सब्सक्राइब किए गए हैं: यह केवल संदेशों को पंप करता है, और ब्रोकर उन्हें किसी भी सब्सक्राइब किए गए क्लाइंट को पुनर्वितरित करता है। कोई भी क्लाइंट ट्विटर उपयोगकर्ता की तरह ही विषयों को प्रकाशित और सब्सक्राइब दोनों कर सकता है।

हालांकि ट्विटर के विपरीत, MQTT 140 वर्णों तक सीमित नहीं है। यह डेटा अज्ञेयवादी है, इसलिए आप छोटी संख्या या बड़े टेक्स्ट ब्लॉक, JSON-स्वरूपित डेटाग्राम, या यहां तक ​​कि चित्र और बाइनरी फ़ाइलें भेज सकते हैं।

ऐसा नहीं है कि MQTT हर चीज के लिए HTTP से बेहतर है - लेकिन यह है अधिक उपयुक्त है यदि हमारे पास घर के चारों ओर बहुत सारे सेंसर होने जा रहे हैं, लगातार रिपोर्टिंग कर रहे हैं।

यह जानना भी महत्वपूर्ण है कि OpenHAB आपके MQTT ब्रोकर के रूप में कार्य नहीं करेगा - हम इसे बाद में संबोधित करेंगे। हालाँकि, OpenHAB एक क्लाइंट के रूप में कार्य करेगा: यह आपके OpenHAB गतिविधि लॉग को प्रकाशित कर सकता है, साथ ही विशेष चैनलों को उपकरणों से बाँध सकता है, इसलिए उदाहरण के लिए आपके पास एक स्विच हो सकता है जो किसी विशेष चैनल पर MQTT संदेशों द्वारा नियंत्रित होता है। यह सेंसर से भरा घर बनाने के लिए आदर्श है।

अपने Pi . पर मच्छर स्थापित करें

हालांकि OpenHAB में एक MQTT क्लाइंट शामिल है ताकि आप किसी विषय की सदस्यता ले सकें और संदेश भी प्रकाशित कर सकें, यह सर्वर के रूप में कार्य नहीं करेगा। उसके लिए, आपको या तो वेब आधारित MQTT ब्रोकर (सशुल्क या मुफ्त) का उपयोग करना होगा, या अपने Pi पर मुफ्त सॉफ़्टवेयर इंस्टॉल करना होगा। मैं यह सब घर में रखना चाहता हूं, इसलिए मैंने पाई पर मच्छर स्थापित किया है।

दुर्भाग्य से, सामान्य उपयुक्त-प्राप्त के माध्यम से उपलब्ध संस्करण पूरी तरह से पुराना है। इसके बजाय, आइए नवीनतम स्रोत जोड़ें।

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

sudo apt-key mosquitto-repo.gpg.key जोड़ें

सीडी /etc/apt/sources.list.d/

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

sudo apt-मच्छर स्थापित करें

MQTT सर्वर को स्थानीय नेटवर्क पर चलाने और चलाने के लिए हमें बस इतना ही करना होगा। आपका ब्रोकर डिफ़ॉल्ट रूप से पोर्ट 1883 पर चल रहा है।

जांचें कि आपका MQTT सर्वर मुफ़्त MQTT.fx का उपयोग करके काम कर रहा है, जो क्रॉस-प्लेटफ़ॉर्म है। एक नया प्रोफ़ाइल बनाने के लिए सेटिंग्स आइकन पर क्लिक करें, और अपना रास्पबेरी पाई का आईपी पता या नाम दर्ज करें। सहेजें, और कनेक्ट हिट करें। यदि ऊपर दाईं ओर छोटी ट्रैफिक लाइट हरी हो जाती है, तो आप जाने के लिए अच्छे हैं।

एक त्वरित परीक्षण के लिए, 'सदस्यता लें' टैब पर क्लिक करें, और टाइप करें विषय में / टेक्स्ट बॉक्स में, फिर हिट करें सदस्यता लेने के बटन। अब आप विषय में विषय पर संदेश प्राप्त करने के लिए सदस्यता ले चुके हैं, हालांकि यह 0 संदेश दिखाएगा। प्रकाशित टैब पर वापस जाएं, छोटे बॉक्स में इनटॉपिक टाइप करें, और नीचे बड़े टेक्स्ट बॉक्स में एक छोटा संदेश टाइप करें। मार प्रकाशित करना कुछ बार और सदस्यता टैब पर वापस देखें। आपको उस विषय में कुछ संदेश दिखाई देने चाहिए।

इससे पहले कि हम अपने नेटवर्क में कुछ वास्तविक सेंसर जोड़ें, हमें विषय स्तरों के बारे में जानने की जरूरत है, जो हमें MQTT नेटवर्क की संरचना और फ़िल्टर करने में सक्षम बनाता है। विषय के नाम केस-संवेदी होते हैं, $ से शुरू नहीं होने चाहिए, या एक स्थान, या गैर-ASCII वर्ण शामिल नहीं होने चाहिए - चर नामों के लिए मानक प्रोग्रामिंग अभ्यास, वास्तव में।

/ विभाजक एक विषय स्तर को इंगित करता है, जो पदानुक्रमित है, उदाहरण के लिए निम्नलिखित सभी मान्य विषय स्तर हैं।

विषय में / छोटाउपखंड / यहां तक ​​कि छोटे उपखंड

myHome/लिविंगरूम/तापमान

मायहोम/लिविंग रूम/आर्द्रता

myHome/रसोई/तापमान

myHome/रसोई/आर्द्रता

पहले से ही, आप देख रहे होंगे कि कैसे यह वृक्ष संरचना सेंसर और उपकरणों से भरे स्मार्ट घर के लिए एकदम सही है। एक ही कमरे में कई सेंसर के साथ उपयोग के लिए सबसे अच्छा अभ्यास प्रत्येक सेंसर चर को अपने विषय स्तर के रूप में प्रकाशित करना है - अधिक विशिष्टता के लिए शाखा बनाना (जैसा कि ऊपर के उदाहरणों में है) - एक ही चैनल पर कई प्रकार के सेंसर प्रकाशित करने का प्रयास करने के बजाय .

ग्राहक तब किसी भी व्यक्तिगत विषय स्तर को प्रकाशित या सदस्यता ले सकते हैं, या ट्री में ऊपर से फ़िल्टर करने के लिए कुछ विशेष वाइल्डकार्ड वर्णों का उपयोग कर सकते हैं।

+ वाइल्डकार्ड किसी एक विषय स्तर के लिए स्थानापन्न करता है। उदाहरण के लिए:

मायहोम/+/तापमान

दोनों के लिए ग्राहक की सदस्यता लेंगे

myHome/लिविंगरूम/तापमान

myHome/रसोई/तापमान

... लेकिन नमी का स्तर नहीं।

# एक बहु-स्तरीय वाइल्डकार्ड है, इसलिए आप लिविंग रूम सेंसर सरणी से कुछ भी प्राप्त कर सकते हैं:

मायहोम/लिविंग रूम/#

तकनीकी रूप से, आप रूट लेवल # की सदस्यता भी ले सकते हैं, जो आपको ब्रोकर के माध्यम से गुजरने वाली हर चीज से मिलता है, लेकिन यह आपके चेहरे पर आग की नली चिपकाने जैसा हो सकता है: थोड़ा भारी। HiveMQ से सार्वजनिक MQTT ब्रोकर से जुड़ने का प्रयास करें और # की सदस्यता लें। मेरे क्लाइंट के दुर्घटनाग्रस्त होने से कुछ ही सेकंड में मुझे लगभग 300 संदेश मिले।

MQTT शुरुआती युक्ति: ' /मेरे घर/' एक अलग विषय है ' मेरे घर/' - शुरुआत में स्लैश सहित एक रिक्त विषय स्तर बनाता है, जो तकनीकी रूप से मान्य होते हुए भी अनुशंसित नहीं है क्योंकि यह भ्रमित करने वाला हो सकता है।

अब जब हम सिद्धांत को जानते हैं, तो चलिए एक Arduino, ईथरनेट शील्ड, और एक DHT11 तापमान और आर्द्रता सेंसर के साथ चलते हैं - आपको शायद अपने स्टार्टर किट में एक मिल गया है, लेकिन यदि नहीं, तो गति के लिए पर्यावरण सेंसर को स्वैप करें सेंसर (या एक बटन भी)।

ईथरनेट कनेक्शन के साथ एक Arduino से MQTT प्रकाशित करना

यदि आपके पास वाई-फाई या ईथरनेट बिल्ट-इन के साथ एक हाइब्रिड Arduino- संगत डिवाइस है, तो उसे भी काम करना चाहिए। आखिरकार हम संचार का एक बेहतर/सस्ता तरीका चाहते हैं कि हर कमरे में नेटवर्क कनेक्शन का उपयोग करना हो, लेकिन यह मूल बातें सीखने का काम करता है।

डाउनलोड करके शुरू करें गीथूब से पबसबक्लाइंट लाइब्रेरी . यदि आपने 'ज़िप के रूप में डाउनलोड करें' बटन का उपयोग किया है, तो संरचना थोड़ी गलत है। अनज़िप करें, फ़ोल्डर का नाम बदलकर Just . करें pubsubclient , फिर दो फाइलों को बाहर निकालें एसआरसी फ़ोल्डर और उन्हें डाउनलोड किए गए फ़ोल्डर की जड़ में एक स्तर ऊपर ले जाएं। फिर पूरे फोल्डर को अपने में ले जाएँ Arduino/पुस्तकालय निर्देशिका।

यहां मेरा नमूना कोड है जिसे आप अनुकूलित कर सकते हैं : DHT11 सिग्नल आउटपुट पिन 7 पर है। निम्न लाइन पर अपने Pi के सर्वर IP को बदलें:

क्लाइंट.सेटसर्वर ('192.168.1.99', 1883);

दुर्भाग्य से, हम इसके अनुकूल नाम का उपयोग नहीं कर सकते (मेरे मामले में OpenHAB.local) जैसा कि Arduino पर TCP/IP स्टैक बहुत सरल है और Bonjour नामकरण के लिए कोड जोड़ने से बहुत सारी मेमोरी होगी जिसे हम बर्बाद नहीं करना चाहते हैं। उन विषयों को बदलने के लिए जिन पर सेंसर डेटा प्रसारित किया जा रहा है, इन पंक्तियों तक नीचे स्क्रॉल करें:

चार बफर [10];

dtostrf (टी, 0, 0, बफर);

client.publish ('ओपनहैब/हिमित्सु/तापमान', बफर);

dtostrf (एच, 0, 0, बफर);

client.publish ('ओपनहैब/हिमित्सु/आर्द्रता', बफर);

कोड में एक कमांड चैनल की सदस्यता भी शामिल है। निम्न पंक्ति खोजें और समायोजित करें:

क्लाइंट.सब्सक्राइब ('ओपनहैब/हिमित्सु/कमांड');

वहां के आसपास के कोड की जांच करें और आप देखेंगे कि आप विशिष्ट चैनलों को कमांड भेजकर उदाहरण के लिए आसानी से एक एलईडी या रिले को नियंत्रित कर सकते हैं। उदाहरण कोड में, यह केवल आदेश की प्राप्ति को स्वीकार करते हुए एक संदेश वापस भेजता है।

अपना कोड अपलोड करें, अपने Arduino को नेटवर्क में प्लग करें, और MQTT.fx का उपयोग करके या तो सदस्यता लें # या ओपनहाब / हिमित्सु / # (या जो कुछ भी आपने कमरे का नाम बदल दिया है, लेकिन अंत में # शामिल करना न भूलें)। बहुत जल्द आप देखेंगे कि संदेश आ रहे हैं; और यदि आप कमांड विषय पर ON या OFF भेजते हैं, तो आप पावती भी वापस आते हुए देखेंगे।

OpenHAB के लिए MQTT बाइंडिंग

समीकरण का अंतिम चरण इसे OpenHAB में जोड़ना है। उसके लिए, निश्चित रूप से हमें एक बंधन की आवश्यकता है।

sudo apt-openhab-addon-binding-mqtt . स्थापित करें

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

और बाइंडिंग को सक्षम करने के लिए कॉन्फ़िग फ़ाइल को संपादित करें।

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

mqtt:broker.clientId=openhab

ओपनएचएबी को पुनरारंभ करें

सुडो सर्विस ओपनहैब रीस्टार्ट

तो चलिए एक या दो आइटम जोड़ते हैं:

/* एमक्यूटीटी सेंसर्स */

संख्या Himitsu_Temp 'हिमित्सु तापमान [%.1f °C]' (हिमित्सु, तापमान) {mqtt='<[broker:openhab/himitsu/temperature:state:default]'}

संख्या Himitsu_Humidity'Himitsu आर्द्रता [% .1f %%]' (हिमित्सु, आर्द्रता) {mqtt ='<[broker:openhab/himitsu/humidity:state:default]'}

अब तक आप फॉर्मेट को समझ चुके होंगे; यह हो रहा है नंबर आइटम MQTT बाइंडिंग से, एक निर्दिष्ट विषय पर। यह एक सरल उदाहरण है, आप विकी पृष्ठ का उल्लेख करना चाह सकते हैं जहां यह बहुत अधिक जटिल हो सकता है .

बधाई हो, अब आपके पास सस्ते Arduino- आधारित सेंसर सरणी का आधार है। हम भविष्य में इस पर फिर से विचार करेंगे और Arduino को अपने स्वयं के पूरी तरह से अलग RF नेटवर्क पर रखेंगे। मैंने एक समान संस्करण भी बनाया है विज़विकी ७५०० बोर्डों के लिए यदि आपके पास उनमें से एक है।

दृढ़ता और रेखांकन डेटा

अब तक आप शायद सेंसरों का एक गुच्छा स्थापित कर चुके हैं, चाहे Z-Wave या कस्टम Arduinos से MQTT चल रहा हो - ताकि आप किसी भी समय उन सेंसर की वर्तमान स्थिति देख सकें, और आपको नियमों में उनके मूल्य पर प्रतिक्रिया भी करनी चाहिए। लेकिन सेंसर मूल्यों के बारे में दिलचस्प बात यह है कि वे समय के साथ बदलते हैं: यही वह जगह है जहां दृढ़ता और रेखांकन आता है। अटलता OpenHAB में मतलब समय के साथ डेटा को सेव करना। आइए आगे बढ़ते हैं और RRD4J (जावा के लिए राउंड रॉबिन डेटाबेस) को सेटअप करते हैं, जिसे इसलिए कहा जाता है क्योंकि डेटा राउंड रॉबिन फैशन में सहेजा जाता है - डेटाबेस के आकार को संपीड़ित करने के लिए पुराने डेटा को छोड़ दिया जाता है।

निम्नलिखित कमांड के साथ rrd4j पैकेज स्थापित करें।

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

फिर एक नई फाइल बनाएं जिसका नाम है rrd4j.persist में विन्यास/दृढ़ता फ़ोल्डर। निम्नलिखित में चिपकाएँ:

रणनीतियाँ {

हर मिनट: '0 * * * *?'

हर घंटे: '0 0 * * *?'

हर दिन : '0 0 0 * *?'

डिफ़ॉल्ट = हर परिवर्तन

}

आइटम {

// मान अपडेट होने पर सब कुछ जारी रखें, बस एक डिफ़ॉल्ट, और स्टार्टअप पर डेटाबेस से उन्हें पुनर्स्थापित करें

* : रणनीति = हर बदलाव, रिस्टोरऑनस्टार्टअप

// आगे हम तापमान समूह में किसी भी चीज़ के लिए हर घंटे की विशिष्ट रणनीतियों को परिभाषित करते हैं, और आर्द्रता के लिए हर मिनट

टेलीग्राम में स्टिकर कैसे लगाएं

तापमान* : रणनीति = हर घंटे

आर्द्रता* : रणनीति = हर मिनट

// वैकल्पिक रूप से आप यहां विशिष्ट आइटम जोड़ सकते हैं, जैसे कि

//Bedroom_Humidity, JamesInOffice : रणनीति = हर मिनट

}

इस फ़ाइल के पहले भाग में, हम रणनीतियों को परिभाषित कर रहे हैं, जिसका अर्थ है CRON व्यंजक को एक नाम देना। यह वैसा ही है जैसा हमने पहले ही My.OpenHAB के साथ किया था, लेकिन इस बार हम कुछ नई रणनीतियाँ बना रहे हैं जिनका उपयोग हम हर दिन, हर घंटे और हर मिनट में कर सकते हैं। मैंने अभी तक उन सभी का उपयोग नहीं किया है, लेकिन मैं भविष्य में हो सकता हूं।

फ़ाइल के दूसरे भाग में, हम rr4dj को बताते हैं कि कौन से डेटा मानों को सहेजना है। डिफ़ॉल्ट रूप से, हम हर बार अपडेट होने पर सब कुछ सहेजने जा रहे हैं, लेकिन मैंने विशिष्ट सेंसर के लिए कुछ समय आधारित रणनीतियों को भी निर्दिष्ट किया है। तापमान मैं बहुत परेशान नहीं हूं, इसलिए मैंने इसे हर घंटे बचाने के लिए सेट किया है, लेकिन आर्द्रता मेरे लिए एक बड़ी चिंता है, इसलिए मैं देखना चाहता हूं कि यह हर मिनट कैसे बदल रहा है। यदि कोई अन्य डेटा है जिसे आप विशेष रूप से निर्धारित समय पर सहेजना चाहते हैं, तो उन्हें अभी यहां जोड़ें या आवश्यकतानुसार समायोजित करें।

नोट: यदि आप डेटा को भी ग्राफ़ करना चाहते हैं, तो आपको इसे एक मिनट में कम से कम एक बार स्टोर करना होगा। इससे कोई फर्क नहीं पड़ता कि आपका सेंसर डेटा भी इसे जल्दी से अपडेट कर दिया गया है, आपको बस rr4dj को इसे एक मिनट में एक बार स्टोर करने के लिए कहना होगा।

उस परिभाषित के साथ, आपको कुछ डीबग आउटपुट देखना शुरू करना चाहिए जो आपको बता रहा है कि मान संग्रहीत किए जा रहे हैं।

आगे, आइए इस सभी डेटा के कुछ सुंदर ग्राफ़ बनाते हैं। यह वास्तव में आसान है। व्यक्तिगत सेंसर का ग्राफ़ बनाने के लिए, अपने साइट मानचित्र में निम्नलिखित जोड़ें:

चार्ट आइटम=बेडरूम_आर्द्रता अवधि=एच

सचमुच आपको बस इतना ही चाहिए। अवधि के लिए मान्य मान हैं एच, 4 एच, 8 एच, 12 एच, डी, 3 डी, डब्ल्यू, 2 डब्ल्यू, एम, 2 एम, 4 एम, वाई ; यह स्पष्ट होना चाहिए कि इनका क्या अर्थ है। यदि निर्दिष्ट नहीं है तो यह डेटा के पूरे दिन के लिए डी पर डिफॉल्ट करता है।

एकाधिक मदों के साथ एक ग्राफ़ बनाने के लिए, इसके बजाय समूह के नाम को ग्राफ़ करें:

चार्ट आइटम=आर्द्रता अवधि=एच

आपको यह जानने में भी दिलचस्पी हो सकती है कि आप इस ग्राफ़ का उपयोग कहीं और कर सकते हैं; यह निम्न यूआरएल का उपयोग कर एक छवि उत्पन्न कर रहा है: http://YourOPENHABURL:8080/chart?groups=Humidity.period=h

कैसा है आपका OpenHAB सिस्टम आ रहा है?

गाइड की इस किस्त के लिए बस इतना ही, लेकिन उम्मीद न करें कि OpenHAB के बारे में आप हमसे आखिरी बार सुनेंगे। उम्मीद है कि यह और शुरुआती गाइड ने आपको अपना पूरा ओपनएचएबी सिस्टम विकसित करने के लिए एक ठोस आधार दिया है - लेकिन यह एक ऐसी प्रक्रिया है जो वास्तव में पूरी तरह से समाप्त नहीं हुई है।

शुक्र है, OpenHAB कुछ उपकरणों से सैकड़ों तक, सरल नियम जटिलता से लेकर होम ऑटोमेशन में अंतिम तक - तो आपका सिस्टम कैसा चल रहा है? आपने कौन से उपकरण चुने? आप किस अगली बड़ी परियोजना से निपटने जा रहे हैं?

आइए टिप्पणियों में बात करें - और कृपया, यदि आपको यह मार्गदर्शिका उपयोगी लगी हो, तो उन शेयर बटनों पर क्लिक करके अपने मित्रों को बताएं कि वे भी अपने स्वयं के OpenHAB सिस्टम को कैसे सेटअप कर सकते हैं।

हमें उम्मीद है कि आपको हमारे द्वारा सुझाई गई और चर्चा की गई चीजें पसंद आएंगी! MUO में संबद्ध और प्रायोजित साझेदारियाँ हैं, इसलिए हमें आपकी कुछ खरीदारी से होने वाली आय का एक हिस्सा प्राप्त होता है। यह आपके द्वारा भुगतान की जाने वाली कीमत को प्रभावित नहीं करेगा और सर्वोत्तम उत्पाद अनुशंसाओं की पेशकश करने में हमारी सहायता करता है।

साझा करना साझा करना कलरव ईमेल एनिमेटिंग स्पीच के लिए एक शुरुआती गाइड

एनिमेटिंग भाषण एक चुनौती हो सकती है। यदि आप अपने प्रोजेक्ट में संवाद जोड़ना शुरू करने के लिए तैयार हैं, तो हम आपके लिए प्रक्रिया को तोड़ देंगे।

आगे पढ़िए
संबंधित विषय
  • DIY
  • स्मार्ट घर
  • अरुडिनो
  • घर स्वचालन
  • लंबा प्रपत्र
  • लॉन्गफॉर्म गाइड
लेखक के बारे में जेम्स ब्रूस(707 लेख प्रकाशित)

James ने आर्टिफिशियल इंटेलिजेंस में बीएससी किया है और CompTIA A+ और Network+ प्रमाणित है। जब वह हार्डवेयर समीक्षा संपादक के रूप में व्यस्त नहीं होता है, तो वह लेगो, वीआर और बोर्ड गेम का आनंद लेता है। MakeUseOf में शामिल होने से पहले, वह एक प्रकाश तकनीशियन, अंग्रेजी शिक्षक और डेटा सेंटर इंजीनियर थे।

जेम्स ब्रूस की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें