इस प्रोजेक्ट के बारे में

Home Assistant के लिए Priority Command Arbitration एक कस्टम इंटीग्रेशन है जो एंटिटीज़ को नियंत्रित करने के लिए पाँच-स्तरीय प्राथमिकता प्रणाली पेश करता है। यह उस आम समस्या का समाधान करता है जहाँ एक ऑटोमेशन और एक मैनुअल क्रिया एक ही डिवाइस पर नियंत्रण के लिए टकराते हैं, और अंतिम कमांड हमेशा जीतती है। इसके बजाय, प्रत्येक कमांड एक प्राथमिकता स्तर (1 से 5) ले सकती है, और सबसे कम-संख्या वाला भरा हुआ स्तर डिवाइस को चलाता है। स्तरों में Manual Emergency, Automatic Emergency, Manual, Automatic, और Default शामिल हैं। एक ही स्तर पर कमांड एक-दूसरे को प्रतिस्थापित करती हैं; जब उच्च स्तर जारी किया जाता है, तो नियंत्रण अगले भरे हुए स्तर पर चला जाता है और उस समय उस कमांड को जैसा वह उस क्षण है, वैसा ही फिर से जारी किया जाता है, न कि किसी पुराने स्नैपशॉट के रूप में। यह इंटीग्रेशन समर्थित डोमेन सेवाओं (light, switch, fan, cover, climate, water_heater, humidifier, lock, valve, media_player, input_boolean, input_number) को रैप करता है और सेवा कॉल में वैकल्पिक `priority` और `priority_ttl` फ़ील्ड जोड़ता है। ये फ़ील्ड ऑटोमेशन एडिटर, स्क्रिप्ट एडिटर, Developer Tools, और बटन टैप क्रियाओं में वास्तविक फ़ॉर्म फ़ील्ड के रूप में दिखाई देते हैं। यह चार समर्पित सेवाएँ भी प्रदान करता है: `priority.set`, `priority.relinquish`, `priority.relinquish_all`, और `priority.get` (एक प्रतिक्रिया सेवा)। अस्थायी ओवरराइड को एक लीज़ (`priority_ttl`) के साथ सेट किया जा सकता है, जो पुनः आरंभ के बाद भी बना रहता है और साफ़-सुथरे ढंग से समाप्त होता है, और जो भी Default उस समय चाहता है उस पर आ जाता है। भौतिक स्विच परिवर्तनों का पता लगाया जाता है और ओवरराइड को फिर से लागू किए बिना Default पर दर्ज किया जाता है। UI सतहों में एक more-info डायलॉग पंक्ति, एक tile कार्ड सुविधा (`custom:priority-feature`), एक ओवरराइड कार्ड (`custom:priority-overrides-card`), और एक नियंत्रण कार्ड (`custom:priority-control-card`) शामिल हैं। एक `Active overrides` सेंसर धारित स्तरों की संख्या बताता है। कॉन्फ़िगरेशन विकल्प मध्यस्थता को चयनित एंटिटीज़ तक सीमित करने, एंटिटीज़ को बाहर रखने, और उपयोगकर्ताओं तथा ऑटोमेशन के लिए डिफ़ॉल्ट प्राथमिकताएँ सेट करने की अनुमति देते हैं (दोनों डिफ़ॉल्ट रूप से 5 हैं, जो मौजूदा व्यवहार को बनाए रखता है)। यह इंटीग्रेशन HACS या मैनुअल कॉपी के माध्यम से इंस्टॉल किया जाता है, इसके लिए Home Assistant 2026.8.1 या नया आवश्यक है, और यह Apache 2.0 के अंतर्गत लाइसेंस प्राप्त है। चेतावनियाँ: यह आंतरिक APIs का उपयोग करके सेवा रजिस्ट्री को फिर से लिखता है, जो कोर अपडेट पर टूट सकता है (कॉन्ट्रैक्ट टेस्ट और साप्ताहिक CI द्वारा कम किया गया)। दबाई गई कमांड भेजे न जाने पर भी सफलता रिपोर्ट करती हैं, जो लॉक और वाल्व के लिए महत्वपूर्ण है। स्तर 1–4 पर ओवरराइड पुनः आरंभ के बाद बहाल किए जाते हैं, और स्तर 1–2 स्टार्टअप के बाद एक बार फिर से जारी किए जाते हैं। यह प्रोजेक्ट नया है लेकिन टेस्ट सूट के साथ दैनिक उत्पादन उपयोग में है।