विज्ञापन

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

यह गाइड एक मुफ्त पीडीएफ के रूप में डाउनलोड करने के लिए उपलब्ध है। OpenHAB शुरुआती गाइड भाग 2 डाउनलोड करें: ZWave, MQTT, नियम और चार्टिंग अब. इसे अपने दोस्तों और परिवार के साथ साझा करने के लिए स्वतंत्र महसूस करें।

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

  • ZWave उपकरणों को जोड़ना
  • instagram viewer
  • एक सद्भाव अंतिम नियंत्रक जोड़ना
  • पेश है नियम
  • MQTT का परिचय, और Arduino पर सेंसर के साथ, अपने Pi पर MQTT ब्रोकर स्थापित करना
  • डेटा रिकॉर्डिंग और इसे रेखांकन

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

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

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

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

गेटवे बनाने के लिए ऐओटेक जेड-स्टिक जेन 5, जेड-वेव प्लस यूएसबीगेटवे बनाने के लिए ऐओटेक जेड-स्टिक जेन 5, जेड-वेव प्लस यूएसबी अमेज़न पर अब खरीदें $44.95

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

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

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

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

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

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

नोट: वहाँ भी एक HABmin 2 सक्रिय विकास के तहत। स्थापना एक समान है, लेकिन एक अतिरिक्त .jar एडऑन के साथ। यह दोनों को देखने की कोशिश करने के लायक हो सकता है जिसे आप पसंद करते हैं।

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

ls / देव / tty *

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

devtty

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

sudo usermod -a -G डायलआउट ओपनहैब

अब, कार्रवाई में सब कुछ किक करने के लिए, OpenHAB को पुनरारंभ करें

sudo सेवा Openhab पुनरारंभ

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

zwave ओपनहैब लॉग में शुरू हो रहा है

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

डिवाइस का नाम संपादित करें

Z-Wave आइटम कॉन्फ़िगर करना

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

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

स्विच डीह्यूमिडिफ़ायर_स्विक "डीह्यूमिडिफ़ायर" {zwave = "3: कमांड = स्विच_बिनरी"} नंबर देहुमिडिफ़ायर_वाट्स "डीह्यूमिडिफ़ायर बिजली की खपत [% .1f W]" "ज़ेव =" 3: कमांड = मीटर "}।

उत्तम।

इसके बाद एक Aeotec Gen5 मल्टी-सेंसर है।

Aeon लैब्स Aeotec जेड-वेव Gen5 मल्टी-सेंसर (जेड-वेव प्लस)Aeon लैब्स Aeotec जेड-वेव Gen5 मल्टी-सेंसर (जेड-वेव प्लस) अमेज़न पर अब खरीदें $69.27

इस एक के लिए, मुझे एक नमूना विन्यास मिला iwasdot.com, और मेरी मल्टीसेंसर नोड 2 पर है।

नंबर हॉलवेस्टी नें "दालान का तापमान [% .1f ° C]" (दालान, तापमान) {zwave = "2: 0: कमांड = सेंसर_मूल्टाइल, सेंसर_टाइप = 1, सेंसर_स्केल = 0}} संख्या दालान_उच्चता "दालान की आर्द्रता [% .0f %%]" (दालान, नमी) {zwave = "2: 0: कमांड = सेंसर_मूल्टाइल, सेंसर_टाइप = 5"} नंबर दालान_उम्र "हॉलवे ल्यूमिनेन्स [% .0f लक्स]" (दालान) {zwave = "2: 0: command = sensor_multilevel, sensor_type = 3"} संपर्क दालान_मोशन "दालान मोशन [% s]" (दालान, मोशन) {zwave = "2: 0: कमांड = सेंसर_बिनरी, प्रतिसाद_तो_बेसिक = सच"}} नंबर सेंसर_1_बैटरी "बैटरी [% s %%]" (मोशन) {zwave = "2: 0: कमांड:" बैटरी "}

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

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

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

"सद्भाव" की खोज के लिए apt-cache का उपयोग करके आपके द्वारा पाई जाने वाली तीन बाइंडिंग फ़ाइलों को स्थापित करके शुरू करें:

ओपनहैप्ट एप-कैश सद्भाव बंधन के लिए खोज

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

sudo apt-get install ओपनहैब-एडऑन-एक्शन-हार्मोनीहब। sudo apt-get install ओपनहैब-एडऑन-बाइंडिंग-हार्मोनीहब। sudo apt-get install ओपनहैब-एडऑन- io-harmonyhub। sudo chown -hR openhab: openhab / usr / share / openhab

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

########## HARMONY रिमोट कंट्रोल ########## सद्भाव: मेजबान = 192.168.1.181या आपका आई.पी.
हार्मोनीहब: उपयोगकर्ता नाम =अपने-सद्भाव-ईमेल: -प्रवेश
harmonyhub: पासवर्ड =आपका पासवर्ड

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

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

json स्वरूपित Openhab आउटपुट

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

/ * सद्भाव हब * / स्ट्रिंग हार्मनी_एक्टिविटी "सद्भाव [% s]" (Living_Room) {harmonyhub = "* [वर्तमानता]"}

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

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

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

साइटमैप में ओपनहेड सद्भाव

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

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

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

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

नियम "कार्यालय प्रकाश जब जेम्स मौजूद" जब आइटम JamesInOffice OFF से ON में बदल गया। उसके बाद SendCommand (Office_Hue, ON) अंत नियम "कार्यालय प्रकाश बंद जब जेम्स छोड़ देता है" जब आइटम JamesInOffice ON से OFF में बदल गया। उसके बाद SendCommand (Office_Hue, OFF) समाप्त

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

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

अनुसूचित नियम बनाने के लिए एक और उदाहरण देखें।

नियम "हर सुबह व्यायाम करें" जब समय क्रोन "0 0 8 1/1 *? *" फिर सद्भावपूर्ण व्यवहार ("व्यायाम") समाप्त।

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

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

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

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

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

आयात org.openhab.core.library.types। * आयात org.openhab.model.script.actions। * आयात java.lang। स्ट्रिंग नियम "आर्द्रता मॉनिटर" जब समय क्रोन "0 * * * *?" इसके बाद var prevHigh = 0 var highHum = "" आर्द्रता; .members.forEach [hum | लॉगडबग ("आर्द्रता ।rules", hum.name); if (hum.state as DecimalType> prevHigh) {prevHigh = hum.state highHum = hum.name + ":" + hum.state + "%"}} logDebug ("आर्द्रता.ट्रूल्स, हाईह्यूम); पोस्टपेड (डीह्यूमिडिफ़ायर_एडेड, हाईह्यूम); समाप्त।

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

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

  • नियमों की विस्तृत व्याख्या आधिकारिक विकि पर
  • आधिकारिक नियम नमूने विकी पेज
  • नियमों को नई ऊंचाइयों पर ले जाना
  • IngeniousFool.net पर उन्नत नमूने

ओपनएचएबी और इंटरनेट ऑफ थिंग्स के लिए एमक्यूटीटी

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

लेकिन पहिया को क्यों मजबूत करें?

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

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

MQTT कैसे काम करता है?

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

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

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

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

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

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

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

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

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

wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key. sudo apt-key add mosquitto-repo.gpg.key cd /etc/apt/source.list.d/ सूदो विद्या http://repo.mosquitto.org/debian/mosquitto-wheezy.list. sudo apt-get install मच्छर।

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

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

mqttfx उदाहरण प्रोफ़ाइल

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

inTopic MQTT परीक्षण

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

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

inTopic / smallSubdivision / evenSmallerSubdivision। MyHome / livingroom / तापमान। MyHome / livingroom / नमी। MyHome / रसोई / तापमान। MyHome / रसोई / आर्द्रता

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

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

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

MyHome / + / तापमान

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

MyHome / livingroom / तापमान। MyHome / रसोई / तापमान

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

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

MyHome / livingroom / #

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

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

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

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

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

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

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

client.setServer ("192.168.1.99", 1883);

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

चार बफर [10]; dtostrf (टी, 0, 0, बफर); client.publish ( "openhab / Himitsu / तापमान", बफ़र); dtostrf (एच, 0, 0, बफर); client.publish ( "openhab / Himitsu / नमी", बफर);

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

client.subscribe ( "openhab / Himitsu / कमांड");

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

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

mqtt arduino संदेश वापस आ रहे हैं

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

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

sudo apt-get install ओपनहैब-एडऑन-बाइंडिंग-मिकट। sudo chown -hR openhab: openhab / usr / share / openhab

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

mqtt: ब्रोकर .url = tcp: // localhost: 1883। mqtt: दलाल.clientId = ओपेनहाब

OpenHAB को पुनरारंभ करें

sudo सेवा Openhab पुनरारंभ

फिर एक आइटम जोड़ें या दो:

/ * MQTT सेंसर * / संख्या Himitsu_Temp "Himitsu तापमान [% .1f ° C]"(Himitsu, तापमान) {mqtt = " (हिमित्सु, आर्द्रता) {mqtt = "

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

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

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

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

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

sudo apt-get install ओपनहैब-एडऑन-दृढ़ता-rrd4j। sudo chown -hR openhab: openhab / usr / share / openhab। 

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

रणनीतियाँ {everyMinute: "0 * * * *?" हर हौर: "0 0 * * *?" हर दिन: "0 0 0 * *?" डिफ़ॉल्ट = हर परिवर्तन। } आइटम {// सब कुछ जारी रहता है जब मूल्य अपडेट किया जाता है, बस एक डिफ़ॉल्ट है, और उन्हें स्टार्टअप पर डेटाबेस से पुनर्स्थापित करें *: रणनीति = हर परिवर्तन, रिस्टोरऑनस्टार्टअप // अगले हम तापमान समूह में किसी भी चीज के लिए हर घंटे की विशिष्ट रणनीतियों को परिभाषित करते हैं, और आर्द्रता मिनट के लिए हर मिनट *: strategy = everyHour Humidity *: strategy = everyMinute // वैकल्पिक रूप से आप यहां विशिष्ट आइटम जोड़ सकते हैं, जैसे कि // बेडरूम_हाइड्रेशन, JamesInOffice: strategy = हरमिनट }

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

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

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

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

डेटा भंडारण rrd4j

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

चार्ट आइटम = शयन कक्ष_हृदय अवधि = h

यह शाब्दिक रूप से आप सभी की जरूरत है अवधि के लिए मान्य मूल्य हैं h, 4h, 8h, 12h, D, 3D, W, 2W, M, 2M, 4M, Y; यह स्पष्ट होना चाहिए कि ये क्या मतलब है। यदि यह निर्दिष्ट नहीं है तो यह डेटा के एक पूरे दिन के लिए डी को डिफॉल्ट करता है।

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

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

आपको यह जानने में भी रुचि हो सकती है कि आप इस ग्राफ़ का उपयोग कहीं और कर सकते हैं; यह निम्न URL का उपयोग करके एक छवि तैयार कर रहा है: http://YOUROPENHABURL: 8080 / चार्ट? समूहों = आर्द्रता और अवधि = ज

कैसे की तुम्हारी OpenHAB सिस्टम आ रहा है?

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

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

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

जेम्स के पास आर्टिफिशियल इंटेलिजेंस में बीएससी है, और कॉम्पिटिया ए + और नेटवर्क + प्रमाणित है। वह MakeUseOf के प्रमुख डेवलपर हैं, और अपना खाली समय वीआर पेंटबॉल और बोर्डगेम खेलने में बिताते हैं। वह पीसी का निर्माण कर रहा है क्योंकि वह एक बच्चा था।