विज्ञापन
किसी भी स्मार्ट होम उत्साही का सपना एक ऐसा घर है जिससे आप बात कर सकते हैं, लेकिन वास्तविकता इससे बहुत दूर है।
उदाहरण के लिए, अमेज़ॅन इको आपको किसी भी प्रकार की वॉयस नियंत्रित सुविधाओं का उपयोग करने की अनुमति देता है, लेकिन संवाद आपके द्वारा एक प्रश्न के साथ शुरू किया जाना चाहिए - आपके पास केवल एक महत्वपूर्ण संदेश की घोषणा नहीं हो सकती है।
आप कर सकते हैं हालांकि यह एक सोनोस प्रणाली के साथ है, और DIY रास्पबेरी पाई जादू का एक सा। आज मैं आपको सूचना सुविधा का उपयोग करने के लिए उपयोगी IFTTT व्यंजनों की एक जोड़ी, ओपनएचएबी एकीकरण, और कुछ को प्रस्तुत करते हुए अपने सोनोस सिस्टम पर वॉइस नोटिफिकेशन सेट करने का तरीका दिखाऊंगा।
ध्यान दें कि ओपनएचएबी के लिए एक देशी सोनोस बाइंडिंग उपलब्ध है, लेकिन यह एक गलत यूपीपी लाइब्रेरी के कारण मेमोरी मुद्दों का कारण बनता है। मैं सुझाव देता हूं कि अभी के लिए, और इसके बजाय इस ट्यूटोरियल में विधि का उपयोग करें।
एक रास्पबेरी पाई रनिंग रास्पियन लिनक्स इस ट्यूटोरियल के लिए आदर्श है, लेकिन यह आपके द्वारा चलाए जा रहे किसी भी लिनक्स-आधारित होम सर्वर पर भी काम करना चाहिए। इस स्थिति में, मैं उसी रास्पबेरी पाई का उपयोग कर रहा हूं जो चलती है
OpenHAB, ओपन सोर्स होम ऑटोमेशन सिस्टम रास्पबेरी पाई पर ओपनएचएबी होम ऑटोमेशन के साथ शुरुआत करनाओपनएचएबी एक परिपक्व, ओपन सोर्स होम ऑटोमेशन प्लेटफॉर्म है जो विभिन्न प्रकार के हार्डवेयर पर चलता है और है प्रोटोकॉल अज्ञेयवाद, जिसका अर्थ है कि यह बाजार पर लगभग किसी भी होम ऑटोमेशन हार्डवेयर से जुड़ सकता है आज। अधिक पढ़ें . इस ट्यूटोरियल के बाकी लोगों का मानना है कि आप इसे रास्पबेरी पाई पर भी चला रहे हैं, और या तो डेस्कटॉप पर एक स्थानीय टर्मिनल विंडो खुली है, या हैं SSH का उपयोग करके दूरस्थ रूप से लॉग-इन करें SSH के साथ प्रमुख उपयोग के लिए अपने रास्पबेरी पाई की स्थापनारास्पबेरी पाई एसएसएच कमांड को स्वीकार कर सकती है जब एक स्थानीय नेटवर्क (ईथरनेट या वाई-फाई द्वारा) से जुड़ा होता है, जिससे आप आसानी से सेट अप कर सकते हैं। SSH के लाभ दैनिक स्क्रीनिंग को परेशान करने से परे हैं ... अधिक पढ़ें .आपको ज़रूरत होगी
- रसभरी पाई २ (पुराने मॉडल काम करने चाहिए, लेकिन निर्देशों में विशिष्ट परिवर्तन के लिए जाँच करें)
- कम से कम एक सोनोस स्पीकर (अन्य ऑडियो सिस्टम समर्थित नहीं हैं, यह केवल सोनोस के लिए एक ट्यूटोरियल है)
- VoiceRSS.org पर मुफ्त खाता [अब तक उपलब्ध नहीं]। फिर रजिस्टर करें अपनी एपीआई कुंजी खोजें, जिसे हमें बाद में ध्वनि संदेश उत्पन्न करने की आवश्यकता होगी।
नवीनतम स्थापित करें
टाइप करके नोड का कौन सा संस्करण देखें:
नोड -v
ध्यान दें कि संस्करण 6 समर्थित नहीं है। यदि आपके पास नोड 6 है, तो आप पहले इसे हटा देंगे, फिर v5.5 को स्थापित करने के लिए नीचे दिए गए निर्देशों का पालन करें।
यदि आपके पास v5 नहीं है या यदि आपको कोई त्रुटि नहीं मिली है, तो नोड स्थापित करने के लिए इन निर्देशों का पालन करें। निम्न आदेश एक रास्पबेरी पाई 2 मानता है; पुराने मॉडल के लिए, का उपयोग करें armv6l के बजाय armv7l.
wget https://nodejs.org/download/release/latest-v5.x/node-v5.12.0-linux-armv7l.tar.gz. tar -xvf नोड- v5.12.0-linux-armv7l.tar.gz सीडी नोड- v5.12.0-linux-armv7l सुडो cp -R * / usr / लोकल।
टाइप करके फिर से पुष्टि करें:
नोड -v
और आपको v5.12 (या नवीनतम जो भी आपने डाउनलोड किया था) देखना चाहिए।
अगला, हमारे पास स्थापित करने के लिए कुछ नोड मॉड्यूल हैं। हम नोड पैकेज मैनेजर भी चाहते हैं।
sudo apt-get install एनपीएम। sudo npm स्थापित -g npm। sudo npm स्थापित -g नोड-जिप।
यह पहले से आवश्यक है, अब मज़े की चीज़ों पर।
सोनोस HTTP एपीआई
सोनोस HTTP एपीआई स्थानीय नेटवर्क पर एक वेब सर्वर बनाता है, जो हमें एक पर घोषणा करने के लिए एक संदेश के साथ एक यूआरएल पिंग करने की अनुमति देता है सोनोस (और यदि आप चाहें तो इसे दूर से नियंत्रित करने के लिए, हालांकि यह ट्यूटोरियल केवल आवाज अधिसूचना पर केंद्रित है पहलू)।
गिट क्लोन https://github.com/jishi/node-sonos-http-api.git SONOS। सीडी सोनोस npm स्थापित - अनुत्पादक। npm शुरू।
यदि आपको ऐसे-ऐसे मॉड्यूल के बारे में संदेश दिखाई देता है जो नहीं मिला है, तो बस एक और करें npm स्थापित करें और मॉड्यूल का नाम, फिर प्रयास करें npm शुरू फिर। यदि आप संबंधित त्रुटियों का अनुभव करते हैं "एक सी ++ 11 संकलक की आवश्यकता है", निम्न आदेशों के साथ ठीक करें:
sudo apt-get install gcc-4.8 g ++ - 4.8। सुडो अपडेट-विकल्प - स्थापना / usr / bin / gccgcc / usr / bin / gcc-4.6 20। सुडो अपडेट-विकल्प - स्थापना / usr / bin / gcc gcc /usr/bin/gcc-4.8 50। सूडो अद्यतन-विकल्प - स्थापना / usr / bin / g ++ g ++ /usr/bin/g++-4.6 20। सूडो अद्यतन-विकल्प - स्थापना / usr / bin / g ++ g ++ /usr/bin/g++-4.8 50।
आखिरकार आपको कुछ इस तरह से देखना चाहिए:
सर्वर अब चल रहा है, सोनोस के साथ इंटरफेस कर रहा है। इस एपीआई का प्रारूप आसान है:
http://[SERVER आईपी]: ५००५ / [नाम] / [कार्रवाई]
या एक विशिष्ट उदाहरण के रूप में:
http://192.168.1.99:5005/kitchen/playlist/chillout
हम जिस कार्य में रुचि रखते हैं, वह "कहो" कमांड है, जिसका उपयोग निम्न प्रकार से किया जाता है:
http://192.168.1.99:5005/kitchen/say/make%20use%20of%20is%20awesome/en-gb
VoiceRSS.org पर API कुंजी में पंजीकरण करने के बारे में आपको एक त्रुटि संदेश सुनाई देगा। आपको पहले से ही ऐसा करना चाहिए था, इसलिए अपने एपीआई कुंजी में निम्नलिखित और पेस्ट को एप्रोपिरेट के रूप में लिखें:
नैनो सेटिंग्स। Json
{
"Voicerss": "YOURAPIKEY" }
(फाइल को बचाने के लिए CTRL-X, Y को हिट करें)
सर्वर को पुनरारंभ करें, और URL को फिर से पिंग करें। कुछ सेकंड के बाद, आपको एक रमणीय अंग्रेजी आवाज सुननी चाहिए (हालांकि आप URL के अंत को बदलते हैं en-us यदि आप इसके बजाय) जब पुन: प्रारंभ किया जाता है तो सोनोस HTTP एपीआई सर्वर फिर से शुरू करने के लिए:
सुडो नैनो /etc/rc.local
से पहले एक लाइन जोड़ें बाहर निकलें 0:
सुडो नोड / हॉम / sonपी / सोनोस / सेवर.जेएस देव / अशक्त और
अब आपके पास स्थानीय नेटवर्क पर कहीं से भी एक URL को पिंग करके वॉयस मैसेज बनाने की क्षमता है, इसलिए इस बिंदु पर संभावनाएं व्यापक हैं। यदि आप विचारों के लिए संघर्ष कर रहे हैं, तो कुछ उपयोगी सूचनाओं के लिए पढ़िए जिनकी मैंने स्थापना की है।
OpenHAB घटनाओं पर सूचनाएं
आइए पहले एक सरल उदाहरण लें: गति का पता लगाना। रोशनी को सक्रिय करने के लिए यह एक सामान्य उपयोग का मामला है, लेकिन आप एक ध्वनि सूचना चाहते हैं, भले ही यह एक हो कम-ट्रैफ़िक क्षेत्र में गति संवेदक, या शायद आगे चेतावनी के रूप में कि कोई बगीचे में आ रहा है पथ।
नियम "गार्डन मोशन का पता चला" जब आइटम गार्डन_मोशन बदल गया तो var स्ट्रिंग संदेश = "आपके पास एक आगंतुक है" sendHttpGetRequest (" http://localhost: 5005 / रसोई / कहते हैं / "+ message.encode (" UTF-8 ") + '/ en-gb") समाप्त।
आपको यह देखना चाहिए कि आप अपने किसी भी नियम में इन सरल वॉयस नोटिफिकेशन को कैसे एकीकृत कर सकते हैं, लेकिन कुछ और जटिल होने दें।
IFTTT से ओपनहैब से सोनोस तक दैनिक मौसम की रिपोर्ट
इस रेसिपी में, हमारे पास आपके पसंदीदा समय पर दैनिक मौसम रिपोर्ट की घोषणा करने की आवश्यकता है।
आपको मेरी आवश्यकता होगी OpenHAB बाइंडिंग सक्षम है, क्योंकि यह आपके आंतरिक OpenHAB सर्वर और बाहरी IFTTT सेवा के बीच एक सुरक्षित संबंध बनाता है। यदि आप पहले से ही नहीं हैं, तो सेट करें - आप इसका उल्लेख कर सकते हैं हमारे OpenHAB गाइड के भाग 1 रास्पबेरी पाई पर ओपनएचएबी होम ऑटोमेशन के साथ शुरुआत करनाओपनएचएबी एक परिपक्व, ओपन सोर्स होम ऑटोमेशन प्लेटफॉर्म है जो विभिन्न प्रकार के हार्डवेयर पर चलता है और है प्रोटोकॉल अज्ञेयवाद, जिसका अर्थ है कि यह बाजार पर लगभग किसी भी होम ऑटोमेशन हार्डवेयर से जुड़ सकता है आज। अधिक पढ़ें पूर्ण निर्देशों के लिए, अन्यथा मुझे लगता है कि आपने पहले ही इसे सभी वस्तुओं के लिए सक्षमता के साथ सेटअप कर लिया है।
इसके बाद, अपने OpenHAB इंस्टॉल में एक नया स्ट्रिंग आइटम बनाएं, जो दैनिक मौसम रिपोर्ट को संग्रहीत करेगा। इससे पहले माई में दिखाई देता है। OpenHAB चैनल, हमें इसे कुछ डिफ़ॉल्ट चर के साथ आरंभ करने की आवश्यकता होगी। निम्न URL पिंग करें (बदलें) raspberrypi.local अपने OpenHAB सर्वर पर, या बस इसका IP पता और आज का मौसम जिसे आपने स्ट्रिंग का नाम दिया है):
http://raspberrypi.local: 8080 / सीएमडी? Todays_Weather सनी =
लॉग इन माय। OpenHAB [टूटा हुआ URL हटाया गया] और जाँच करें आइटम चर सुनिश्चित करने के लिए सूची अब निर्यात की गई है।
IFTTT पर वापस, एक नया नुस्खा बनाएं, और उपयोग करें मौसम का चैनल दिन के अपने पसंदीदा समय पर ट्रिगर के रूप में। यदि आपने पहले कभी इसका उपयोग नहीं किया है तो आपको अपना स्थान पहले सेट करना होगा।
मेरा चयन करें। OpenHAB कार्रवाई के रूप में, और अद्यतन करने के लिए चर के रूप में Todays_Weather चुनें।
अभी के लिए, परीक्षण के लिए अगले आधे घंटे का स्लॉट चुनें - आप इसे काम करने से पहले ही बाद में नुस्खा अपडेट कर सकते हैं।
निश्चित रूप से पर्याप्त, परीक्षण के समय (वास्तव में, थोड़ा पहले), मुझे आज का पूर्वानुमान सफलतापूर्वक अपडेट मिला।
2016-02-27 10: 28: 01.689 [DEBUG] [o.o.i.m.i. MyOpenHABServiceImpl] - आज अधिकतर बादल प्राप्त कमांड! 7 सी के उच्च और 1 सी के कम के साथ। दोहराएँ। आज के समय में अधिकतर बादल छाए रहेंगे, जिनमें उच्च 7C और निम्न 1C रहेगा। आइटम के लिए Todays_Weather। 2016-02-27 10: 28: 01.697 [DEBUG] [o.o.i.m.i. MyOpenHABServiceImpl] - स्टोर (Todays_Weather), राज्य = आज ज्यादातर बादल छाए रहेंगे! 7 सी के उच्च और 1 सी के कम के साथ। दोहराएँ। आज के समय में अधिकतर बादल छाए रहेंगे, जिनमें उच्च 7C और निम्न 1C रहेगा।
अगला, हमें इस वेरिएबल को सोनोस "कहना" URL पर भेजने के लिए एक OpenHAB नियम की आवश्यकता है। निम्नलिखित इसे करना चाहिए:
नियम "दैनिक मौसम रिपोर्ट की घोषणा" जब आइटम Todays_Weather को अपडेट प्राप्त हुआ। उसके बाद SendHttpGetRequest (" http://localhost: 5005 / रसोई / कहते हैं / "+ Todays_Weather.state.toString.encode (" UTF-8 ") + '/ en-gb") समाप्त।
यह काफी सरल है: जब भी Todays_Weather चर अपडेट किया जाता है (जो कि यह स्वचालित रूप से, हर दिन सुबह 8 बजे होगा), URL को पिंग करना। हम प्रयोग करते हैं एनकोड ( "UTF-8") एक URL में उपयोग के लिए IFTTT से वाक्य बनाने के लिए स्ट्रिंग फ़ंक्शन। सिस्टम के इस भाग को मैन्युअल रूप से जांचने के लिए, बस OpenHAB HTTP API का फिर से उपयोग करें:
http://raspberrypi.local: 8080 / सीएमडी? मीटबॉल के एक अवसर के साथ Todays_Weather = बादल।
अगर-यह-तो-नोड का उपयोग करके, OpenHAB के बिना IFTTT से कनेक्ट करें
अंत में, आइए OpenHAB मध्यस्थ के बिना किसी भी IFTTT नुस्खा से कनेक्ट करने का तरीका देखें। इसके बजाय, हम एक अन्य वेब सर्वर स्थापित करेंगे, और उसे खुले इंटरनेट पर उजागर करेंगे। यह जोखिम के बिना नहीं है: किसी भी तरह का खुला सर्वर एक सुरक्षा जोखिम है, लेकिन हम इसे पूर्ण सर्वर स्टैक नहीं चलाकर कम कर रहे हैं, बस एक छोटा सा विशिष्ट सेवा जो केवल एक निश्चित JSON डेटा पैकेट प्रारूप में कुछ आदेशों को स्वीकार करती है (इसलिए कोई SQL इंजेक्शन या प्रमाणीकरण हमले नहीं होंगे मुमकिन)। एक बार जब हम काम कर लेते हैं, तो आपके पास एक सार्वजनिक URL होता है, जिसमें आप IFTTT निर्माता चैनल से संदेश भेज सकते हैं।
कई में से एक को स्थापित करके शुरू करें मुफ्त गतिशील DNS सेवाएं 5 सर्वश्रेष्ठ मुफ्त डायनामिक डीएनएस प्रदाताडीडीएनएस सेवा इस कदम के दौरान आपको अपने घर के पीसी से जुड़ने में मदद कर सकती है। यहाँ सबसे अच्छा मुफ्त गतिशील डीएनएस प्रदाता पर विचार करना है। अधिक पढ़ें वहाँ से बाहर - मैं विशेष रूप से क्योंकि यह एक सरल सेट देता है, DuckDNS की सलाह देते हैं रास्पबेरी पाई के लिए निर्देश, यह स्वचालित रूप से अपने आईपी Adddress अद्यतन करने के लिए सक्षम है। इनके साथ पालन करें, और अगले चरणों के लिए अपने URL को याद रखें। आपके राउटर में एक डायनेमिक DNS फ़ंक्शन अंतर्निहित हो सकता है, इसलिए पहले वहां जांचें। मेरे मामले में, मैं एक प्राप्त कर सकते हैं * .mynetgear.com URL निःशुल्क है, इसलिए मैंने इसका उपयोग किया है
इसके बाद, अपना राउटर खोजें पोर्ट फॉरवार्डिंग पोर्ट अग्रेषण क्या है और यह मुझे कैसे मदद कर सकता है? [MakeUseOf बताते हैं]क्या आप थोड़ा अंदर रोते हैं जब कोई आपको बताता है कि पोर्ट अग्रेषण समस्या है और इसीलिए आपका चमकदार नया ऐप काम नहीं कर रहा है? आपके Xbox ने आपको गेम नहीं खेलने दिया, आपके टोरेंट डाउनलोड को मना कर देते हैं ... अधिक पढ़ें कॉन्फ़िगरेशन पृष्ठ; यह वह जगह है जहां हम यह बताएंगे कि आने वाले अनुरोधों के साथ क्या करना है। अपने रास्पबेरी पाई सर्वर पर 1337 पोर्ट करने के लिए सभी HTTP अनुरोध (पोर्ट 80) को अग्रेषित करें। मैं मान रहा हूं कि आपके रास्पबेरी पाई के लिए आपको पहले से ही एक आईपी पता आरक्षित है - यदि आप नहीं चाहते हैं, तो अपने राउटर या डिस्क की जांच करें जब आप वहां हों तब आरक्षित आईपी के लिए पृष्ठ, जैसा कि आप इसे अगले सप्ताह बदलने के लिए और सर्वर को अचानक बंद करने के लिए नहीं करते हैं काम कर रहे।
अब सर्वर के अंतिम बिट को स्थापित करने के लिए।
https://github.com/sebauer/if-this-then-node.git. cd if-this-then-node / npm स्थापित करें। नोड server.js।
आपको निम्नलिखित देखना चाहिए।
यह ठीक है, इसका मतलब है कि हमें अपने विवरण को अपडेट करने की आवश्यकता है। खुलना config.js नैनो में और उन डिटेल्स को डिफॉल्ट के अलावा किसी और चीज में एडिट करें, फिर सेव करें। जब आप सर्वर को फिर से चलाते हैं, तो आपको यह देखना चाहिए:
महान। अपने गतिशील DNS होस्टनाम, और परिशिष्ट / में टाइप करके अपनी मशीन को बाहरी दुनिया से एक्सेस करेंifttn / URL के अंत में। अगर सब कुछ काम करता है, संदेश "IFTTN - if-it-then-node संस्करण 2.0.1 ऊपर और चल रहा है!" आपको ब्राउज़र में प्रदर्शित किया जाएगा। फिर से, इस स्क्रिप्ट को स्टार्ट-अप पर चलाने के लिए, संपादित करें /etc/rc.local फ़ाइल और जोड़ें:
सूद नोड
तो-यह-तब-नोड प्लगइन्स के माध्यम से काम करता है - वहाँ कुछ डिफ़ॉल्ट आपूर्ति की जाती हैं, लेकिन हमारे लिए कोई दिलचस्पी नहीं है। इसके बजाय, इस कस्टम प्लगइन को डाउनलोड करें जो मैंने आपके लिए निम्न आदेशों के साथ लिखा है।
सीडी प्लगइन्स। wget https://gist.githubusercontent.com/jamesabruce/4af8db24ba3452b94877/raw/d11c1cff3aa44dbb6a738eeb15202f3db461de75/sonos.js
आपको भी स्थापित करने की आवश्यकता होगी निवेदन मापांक।
npm स्थापित अनुरोध।
फिर सर्वर को पुनरारंभ करें। प्लगइन काफी सरल है, लेकिन हमारे द्वारा अब तक उपयोग किए गए URL से थोड़ा अलग है। इस मामले में, मैंने विशेष "Sayall" कार्रवाई का उपयोग किया है, जो हर सोनोस डिवाइस को संदेश भेजता है।
निवेदन(' http://localhost: 5005 / Sayall / '+ params.message +' / en-gb ', फ़ंक्शन (त्रुटि, प्रतिक्रिया, निकाय)
यदि आप विशिष्ट उपकरणों को लक्षित करने में सक्षम हैं, तो उस पंक्ति को इसके साथ बदलें:
निवेदन(' http://localhost: 5005 / '+ params.device +' / say / '+ params.message +' / en-gb ', फ़ंक्शन (त्रुटि, प्रतिक्रिया, निकाय)
नामक एक और लाइन पैरामीटर जोड़ें युक्ति नीचे JSON अनुरोध जिसमें सोनोस डिवाइस नाम निर्दिष्ट करना है।
इसका परीक्षण करने के लिए, मैं IFTTT "डू" बटन ऐप का उपयोग कर रहा हूं। एक नया नुस्खा बनाएं, चैनलों को ब्राउज़ करें और चुनें निर्माता चैनल।
एक नया नुस्खा बनाएँ। उस URL में दर्ज करें जिसे आपने पहले मुक्त डायनेमिक DNS प्रदाता (सहित) से कॉन्फ़िगर किया था /ifttn/ URL के अंत में। उन स्लैश को मत भूलना)। चुनते हैं पद निवेदन, आवेदन / json सामग्री, और संदेश का मुख्य भाग निम्नानुसार, उन सभी चर को बदलना जो आप पहले कॉन्फ़िगर किए गए थे:
{"क्रिया": "सोनोस", "उपयोगकर्ता": "आपका", "pw": "आपका संदेश", "संदेश": "सभी के लिए आने वाला संदेश: रात का खाना तैयार है! दोहराएँ। रात का खाना तैयार है। अब अपने गधों को ऊपर ले आओ। ""
अब मेरे पास एक आसानी से सुलभ बटन है जो घर में हर सोनोस डिवाइस पर संदेश की घोषणा करेगा। आप इसे किसी भी IFTTT चैनल के साथ जोड़ सकते हैं जो आप उस चैनल से चर का उपयोग करके एक कस्टम संदेश बनाना चाहते हैं। आपको अब भी OpenHAB का उपयोग किए बिना ऊपर से मौसम की रिपोर्ट को दोहराने में सक्षम होना चाहिए, हालांकि इसने दूसरे सर्वर को स्थापित करने का अतिरिक्त प्रयास किया।
नोट: हैकर्स स्वचालित रूप से आपको स्कैन करेंगे. यह हर समय होता है, लेकिन यदि आप लॉग देख रहे हैं, तो यह खतरनाक लग सकता है। नीचे आप देख सकते हैं कि किसी ने व्यवस्थित रूप से यह पता लगाने की कोशिश की कि कोई भी मानक PHPMyAdmin इंटरफेस सुलभ है या नहीं। जो वे नहीं कर रहे थे। यदि आपको कुछ समान दिखाई देता है, तो आप चिंतित न हों। यह देखने के लिए कि किसी के भी फोन पर रैंडम फोन नंबरों के बराबर इंटरनेट है।
आप क्या घोषणा करेंगे?
अब आपके पास उपकरण होने चाहिए और अपने पूरे घर को लगातार आवाज की सूचनाओं में स्नान करने के लिए kwowledge करना चाहिए जो आप संभवतः सोच सकते हैं। संगीत की जरूरत किसे है? VoiceRSS.org से आपकी एकमात्र सीमा 350 दैनिक अनुरोध है - लेकिन यह हर 4 मिनट में लगभग एक है, इसलिए आपको ठीक होना चाहिए।
तो इससे आप क्या करेंगे? अपने विचार या IFTTT रेसिपी कमेंट में शेयर करें!
छवि क्रेडिट:कॉफी और औरत S_Photo द्वारा Shutterstock द्वारा
जेम्स के पास आर्टिफिशियल इंटेलिजेंस में बीएससी है, और कॉम्पिटिया ए + और नेटवर्क + प्रमाणित है। वह MakeUseOf के प्रमुख डेवलपर हैं, और अपना खाली समय वीआर पेंटबॉल और बोर्डगेम खेलने में बिताते हैं। वह पीसी का निर्माण कर रहा है क्योंकि वह एक बच्चा था।