Skip to content

मुख्य अवधारणाएँ

सब कुछ कैसे जुड़ता है

किसी ऑटोमेशन से भेजी गई एक ही सूचना कई अलग-अलग सूचनाओं में बदल सकती है, और हर सूचना उसी तरीके के अनुसार ढलती है जिससे वह भेजी जाती है।

एक ऑटोमेशन की सूचना एक ई-मेल, दो पुश अलर्ट, एक SMS और एक स्पीकर घोषणा बन जाती है

  1. लक्ष्य - लोगों को उनके Recipient विवरण के आधार पर उन तरीकों में बदला जाता है जिनसे उन तक पहुँचा जा सकता है
  2. Deliveries - लागू होने वाली Deliveries चुनी जाती हैं, डिफ़ॉल्ट रूप से या Scenarios के ज़रिए
  3. सूचनाएँ - हर delivery उन लक्ष्यों को लेती है जिनका वह उपयोग कर सकती है, और उनके अनुरूप सूचना भेजती है, ताकि ई-मेल में चित्रों के साथ पूरा HTML लेआउट हो सके, जबकि रसोई के स्पीकर को एक छोटा बोला गया संदेश मिले

लक्ष्य (Target)

  • किसे या किस चीज़ को सूचना मिलेगी और कैसे
  • प्रत्यक्ष लक्ष्य
    • ई-मेल पता
    • फ़ोन नंबर
    • entity_id या device_id, उदाहरण के लिए Alexa डिवाइस पर घोषणा करने के लिए
    • Telegram जैसे विशेष transport के लिए कस्टम ID
  • अप्रत्यक्ष लक्ष्य, जिन्हें प्रत्यक्ष लक्ष्यों में बदला जा सकता है
    • Recipient सुविधाओं के उपयोग के लिए person_id
    • Home Assistant के मानक लक्ष्य चयनकर्ता, label_id, floor_id और area_id
    • समूह लक्ष्य (Home Assistant के नए और पुराने, दोनों प्रकार के समूह)
  • लक्ष्यों को किसी विशेष लक्ष्य श्रेणी से चिह्नित किया जा सकता है, जैसे discord_channel:839439434; देखें श्रेणी उपसर्ग
  • हर लक्ष्य को सूची से वही इंटीग्रेशन उठाता है जो उसे सबसे अच्छी तरह संभाल सके
  • उदाहरण के लिए, Alexa Devices की Notify एंटिटी को Alexa Devices transport संभालता है, जबकि सामान्य Notify एंटिटी कम सक्षम Notify Entity transport पर जाती है
  • अधिक जानकारी के लिए Targets देखें

प्राप्तकर्ता (Recipient)

  • एक व्यक्ति, वैकल्पिक ई-मेल पता, फ़ोन नंबर, मोबाइल डिवाइस या कस्टम लक्ष्यों के साथ
  • डिफ़ॉल्ट रूप से Home Assistant में पहले से मौजूद उपयोगकर्ता खातों और Person एंटिटी से अपने आप खोजे जाते हैं
  • इससे ऑटोमेशन में लोगों का उल्लेख करना आसान हो जाता है: हर सूचना में Joe का ई-मेल पता याद रखने के बजाय person.joe_mctest का उपयोग करें। संगत SMS इंटीग्रेशन होने पर फ़ोन नंबरों के लिए, या Telegram और Discord जैसे कस्टम पहचानकर्ताओं के लिए भी काम करता है
  • हर प्राप्तकर्ता की एक Home Assistant switch एंटिटी भी होती है, ताकि किसी को सूचनाओं से परेशान होने से आसानी से बचाया जा सके
  • अधिक विवरण के लिए People और Recipes देखें

ट्रांसपोर्ट (Transport)

  • Transport सूचना भेजने का तकनीकी माध्यम है, आमतौर पर Home Assistant के पहले से इंस्टॉल किसी इंटीग्रेशन के ज़रिए
  • Transport अडैप्टर ही सामान्य Notify समूहों और Supernotify के बीच का अंतर बनाते हैं
  • Notify समूह आसानी से कई चैनलों पर सूचना भेजने की सुविधा देता लगता है, लेकिन व्यवहार में हर transport की data संरचना (और data के अंदर data!), पता-व्यवस्था आदि अलग होती है, इसलिए अंत में सूचनाओं को सबसे कम साझा गुणों तक सीमित करना पड़ता है, जैसे केवल message!
  • Supernotify में ई-मेल, मोबाइल पुश, SMS और Alexa जैसे आम transports के लिए अडैप्टर पहले से मौजूद हैं, साथ ही एक Generic अडैप्टर भी है जिससे Home Assistant की किसी भी अन्य action को जोड़ा जा सकता है
  • Transport अडैप्टर एक ही सूचना को कई प्लेटफ़ॉर्म पर भेजने देता है, भले ही उनके इंटरफ़ेस अलग-अलग और आपस में असंगत हों
  • यह सूचनाओं को transport के अनुसार ढालता है: जिन गुणों को transport स्वीकार नहीं करता उन्हें हटाता है, data संरचनाओं को बदलता है, केवल उपयुक्त लक्ष्य चुनता है, और जहाँ संभव हो वहाँ अतिरिक्त समायोजन की सुविधा देता है
  • हर transport का एक डिफ़ॉल्ट कॉन्फ़िगरेशन होता है, जिससे कई समायोजन और डिफ़ॉल्ट मान तय किए जा सकते हैं और हर सूचना में वही मान दोहराने की ज़रूरत नहीं पड़ती
  • अधिक विवरण के लिए Transports देखें

डिलीवरी (Delivery)

  • एक Delivery हर उस सूचना चैनल को परिभाषित करती है जिसका आप उपयोग करना चाहते हैं
  • शुरुआत से ही हर transport की उसी नाम की एक delivery होती है, जैसे email या mobile_push
  • कुछ transports अपने आप अतिरिक्त deliveries बनाते हैं, जैसे alexa_devices_announce_all या chime_siren_all
  • YAML से और deliveries बनाई जा सकती हैं, जैसे सादे टेक्स्ट email के अलावा html_email, या विशेष वॉइस असिस्टेंट के लिए अलग deliveries
  • जो transports लक्ष्यों को स्पष्ट रूप से चुन सकते हैं, जैसे ई-मेल, मोबाइल पुश, SMS, Alexa Devices और Notify Entity, वे लक्ष्यों को संभालने में डिफ़ॉल्ट रूप से शामिल होते हैं
  • अन्य को कॉन्फ़िगरेशन, Scenarios या किसी सूचना में माँगकर शामिल किया जा सकता है
  • आप अपने चुने हुए नाम से अपनी deliveries बना सकते हैं, और एक ही transport के लिए कई deliveries रख सकते हैं, जैसे plain_email और html_email
  • Generic Transport एक टूलबॉक्स की तरह काम करता है, जिससे Home Assistant की लगभग किसी भी क्षमता के लिए delivery बनाई जा सकती है जो किसी मानक transport में पहले से शामिल नहीं है
  • अधिक विवरण के लिए Deliveries और Recipes देखें

परिदृश्य (Scenario)

  • सेटिंग्स का एक पैकेज, जिसे नाम से या Home Assistant शर्तों के ज़रिए अपने आप चालू किया जा सकता है
  • Scenarios को सूचना के data ब्लॉक में apply_scenarios मान से मैन्युअल रूप से, या Home Assistant के मानक conditions ब्लॉक से अपने आप चुना जा सकता है
  • शर्तों में संदेश का टेक्स्ट भी शामिल होता है, इसलिए आँगन में पक्षियों के बारे में Frigate सूचना को खिड़की पर घुसपैठिए से अलग तरीके से संभाला जा सकता है
  • Scenarios से रात में सूचनाएँ कम परेशान करने वाली, छुट्टियों में अधिक उत्सवपूर्ण, या कुछ संदेशों को प्राथमिकता दी जा सकती है
  • इनसे कई deliveries या सूचनाओं पर एक ही जगह से बदलाव लागू करना आसान हो जाता है, और ये आपके ऑटोमेशन में सूचना कॉल को बहुत सरल बनाने की कुंजी हैं
  • अधिक विवरण के लिए Scenarios और Recipes देखें

प्राथमिकता (Priority)

  • सूचनाओं के लिए तात्कालिकता का स्तर
  • Home Assistant के भीतर या बाहर, सूचनाओं को प्राथमिकता देने का कोई मानक तरीका नहीं है
  • Supernotify की अपनी 5-स्तरीय योजना है, जो सबसे आम प्रथाओं का पालन करती है, minimum से critical तक
  • प्राथमिकता का उपयोग scenario और delivery नियमों में किया जा सकता है, और इसे समर्थन करने वाले notify इंटीग्रेशन को भी भेजा जा सकता है
  • Supernotify का अपना ई-मेल इंटीग्रेशन है, जो प्राथमिकता को ऐसे रूप में बदलता है जिसे Outlook, Apple Mail आदि समझ सकें

Info

तकनीकी रुचि रखने वालों के लिए, इन अवधारणाओं से जुड़ी मुख्य classes का एक Class Diagram उपलब्ध है।

मुख्य सिद्धांत

  1. किसी सूचना को केवल एक संदेश चाहिए; बाकी सब कुछ डिफ़ॉल्ट हो सकता है, सभी लक्ष्यों सहित
  2. आप action कॉल में जो भी तय करते हैं, वह डिफ़ॉल्ट मानों से ऊपर होता है - इसे target_usage जैसे विकल्पों से समायोजित किया जा सकता है - लोगों की रजिस्ट्री का उपयोग लक्ष्य बनाने के लिए केवल तभी होता है जब कोई लक्ष्य न दिया गया हो
  3. कॉन्फ़िगरेशन और डिफ़ॉल्ट के लिए Action > Scenario > Delivery > Transport
  4. कॉन्फ़िगर करने और कॉल करने के तरीके में यथासंभव लचीला - लक्ष्यों को उप-श्रेणियों में बाँटा जा सकता है, या वे एंटिटी ID, डिवाइस ID, ई-मेल और फ़ोन नंबरों की एक बड़ी सूची हो सकते हैं - Action data के विकल्प, जैसे delivery, एकल मान, सूची या dictionary mapping हो सकते हैं

डेवलपर

सूचनाएँ deliveries, लक्ष्यों और Envelopes से कैसे गुज़रती हैं, यह जानने के लिए Developer Concepts देखें, और Design Principles भी।