पिछले हफ्ते एक XDA लेख ने एक स्मार्ट होम के बारे में बताया जो एक रात में ध्वस्त हो गया। मालिक ने अपने डिवाइस के नाम साफ किए, सहेजें दबाया, और पुरानी आईडी का संदर्भ देने वाले सभी ऑटोमेशन चुप हो गए। रोशनी आंदोलन पर प्रतिक्रिया करना बंद कर दिया। अच्छी सुबह की दिनचर्या ने अपने आधे कदम छोड़ दिए। डैशबोर्ड लाल विस्मयादिबोधक चिन्हों से भर गया। Home Assistant में परिवर्तन से पहले कुछ भी सावधानी नहीं दी; परिवर्तन के बाद कुछ भी इसे वापस नहीं किया।
ऐसी कहानी काफी आम है कि Home Assistant एंटिटी नेमिंग अपने स्वयं के टूलचेन के योग्य है, न कि एक बारिश वाले दोपहर को सिर्फ एक नाम बदलना। नीचे दिए गए सात डेस्कटॉप ऐप्स उन सभी को कवर करते हैं जिनकी आपको एक भी आईडी को छूने से पहले आवश्यकता है: ड्राई-रन रीफैक्टर, YAML लिंटिंग, क्रॉस-फ़ाइल सर्च, उपनाम जो अनुकूल नाम को मशीन कुंजी से अलग रखते हैं, Zigbee और Z-Wave रीनेम फ्लोज़ जो एंटिटीज़ में वापस सिंक करते हैं, और संस्करण नियंत्रण ताकि गलतियां सेकंड में प्रतिवर्तनीय हों।
एंटिटी-नेमिंग सेटअप में क्या देखें
- ड्राई-रन रीफैक्टरिंग। एक पुनः नाम देने से पहले हर ऑटोमेशन, स्क्रिप्ट, दृश्य, डैशबोर्ड और ब्लूप्रिंट संदर्भ को प्रीव्यू करना चाहिए।
- YAML लिंटिंग। टूटा हुआ इंडेंटेशन या एक झूलता हुआ
entity_id:आपके संपादक में विफल होना चाहिए, आपकी सुबह की दिनचर्या में नहीं। - ऑटोमेशन, स्क्रिप्ट और दृश्यों में एंटिटी ID खोज। हर जगह खोजने के लिए एक शॉर्टकट जहां
light.living_room_lampदिखाई देता है, टेम्पलेट के अंदर सहित। - उपनाम समर्थन। अनुकूल नाम अंतर्निहित एंटिटी आईडी को छुए बिना परिवर्तन के लिए स्वतंत्र होना चाहिए जिस पर ऑटोमेशन निर्भर करता है।
- Zigbee और Z-Wave डिवाइस को फिर से नाम दें जो एंटिटीज़ में वापस सिंक करता है। ZHA या Z-Wave JS UI में डिवाइस का नाम बदलने से हर एंटिटी को प्रसारित करना चाहिए जो डिवाइस को उजागर करता है, अनाथों को छोड़ने के बजाय।
- संस्करण-नियंत्रित कॉन्फ़िगरेशन। Git या समतुल्य ताकि एक बुरा रीफैक्टर कुछ सेकंड में ठीक हो जाए।
त्वरित तुलना
| ऐप | सर्वश्रेष्ठ है | हैंडल पुनः नाम संदर्भ | लागत |
|---|---|---|---|
| Home Assistant | कोर पुनः नाम संवाद | हां, मूल रूप से | मुफ्त |
| Studio Code Server | YAML संपादन और खोज | हां, फ़ाइल-खोज के माध्यम से | मुफ्त |
| HACS | इस सूची के बाकी को स्थापित करना | नहीं, आवश्यकता | मुफ्त |
| ESPHome | DIY हार्डवेयर, एकल स्रोत सत्य | हां, संकलन समय पर | मुफ्त |
| Node-RED | जटिल दृश्य ऑटोमेशन | आंशिक, प्रति प्रवाह | मुफ्त |
| Automation Editor | UI-पहला एकल ऑटोमेशन संपादन | हां, मूल रूप से | मुफ्त |
| Custom Brand Icons | नामकरण सम्मेलनों का दृश्य ऑडिट | नहीं, दृश्य से बहाव को पकड़ता है | मुफ्त |
ऐप्स
1. Home Assistant
डाउनलोड करें: Home Assistant
यहाँ से शुरुआत करें, क्योंकि कोर इसमें बहुत बेहतर हो गया है। रिलीज़ 2023.4 के बाद से एंटिटी सेटिंग्स संवाद एक “Entity ID rename” टूल लाता है जो पुरानी ID के लिए ऑटोमेशन, स्क्रिप्ट, दृश्य, डैशबोर्ड और ब्लूप्रिंट को खोजता है और उन्हें एक पास में अपडेट करने की पेशकश करता है। यह पहले एक प्रीव्यू के रूप में चलता है, हर मिलान को इसकी फ़ाइल और पंक्ति के साथ सूचीबद्ध करता है, और केवल पुष्टि होने पर प्रतिबद्ध होता है।
वह प्रीव्यू ढेर में सबसे उपयोगी सुरक्षा जाल है। यह Jinja के अंदर टेम्पलेट किए गए संदर्भों को पकड़ता है जो सादा पाठ खोज को याद आएगा, और ऐसे मामलों को फ्लैग करता है जहां एक ID YAML एंकर के अंदर या एक पैकेज फ़ाइल के अंदर दिखाई देता है कि UI अन्यथा नहीं छूएगा। जब यह स्वचालित रूप से संदर्भ को हल नहीं कर सकता (उदाहरण के लिए, एक चर से रनटाइम पर बनाई गई एंटिटी ID), यह चुप रहने के बजाय ऐसा कहता है।
पकड़: यह केवल उन स्रोतों के बारे में जानता है जो देख सकते हैं। कस्टम इंटीग्रेशन जो एंटिटी ID को अपनी JSON फ़ाइलों में संग्रहीत करते हैं, या .storage के बाहर सहेजी गई NodeRED फ़्लो को इस सूची में नीचे के टूल के साथ दूसरे पास की आवश्यकता होती है।
2. Studio Code Server
डाउनलोड करें: Studio Code Server
HACS-स्थापित ऐड-ऑन जो ब्राउज़र टैब में पूर्ण VS Code रखता है, सीधे /config की ओर इंगित करता है। YAML लिंटिंग डिफ़ॉल्ट रूप से चालू है, Home Assistant एक्सटेंशन पूर्व-स्थापित शिप करता है, और Ctrl+Shift+F एक प्रोजेक्ट-व्यापी खोज करता है जो .gitignore को सम्मान करता है।
एंटिटी नेमिंग के लिए यह दूसरा पास ऑडिट होता है। कोर पुनः नाम संवाद चलने के बाद, Studio Code Server खोलें, पुरानी ID को खोजें, और पुष्टि करें कि शून्य हिट हैं। अगर कोई वापस आते हैं, तो वे आमतौर पर ऐसी फ़ाइलों में होते हैं जो संवाद की जांच नहीं कर सकते: शेल कमांड परिभाषाएं, REST सेंसर URLs, या state_attr() के साथ बनाए गए टेम्पलेट सेंसर। उन्हें वहां ठीक करें, प्रतिबद्ध करें, पुनः लोड करें।
ऑटोकंपलीट को अपना उल्लेख मिलता है। entity_id: टाइप करें और यह लाइव रजिस्ट्री का सुझाव देता है, इसलिए टाइपो कभी रनटाइम तक जीवित नहीं रहता है। कल एक डिवाइस का नाम बदलें और सुझाव अगले रीलोड पर ताज़ा हो जाएंगे।
3. HACS (Home Assistant Community Store)
डाउनलोड करें: HACS
नामकरण टूल नहीं, बल्कि एक आवश्यकता। HACS सामुदायिक पैकेज प्रबंधक है जो Studio Code Server, Custom Brand Icons को स्थापित करता है, और कुछ गुणवत्ता-का-जीवन एकीकरण जो इस वर्कफ़्लो के बाकी हिस्से को संभव बनाता है। सेटअप एक बार की बात है: अपनी प्रोफ़ाइल में उन्नत मोड सक्षम करें, शेल कमांड के माध्यम से HACS एकीकरण ड्रॉप करें, फिर से शुरू करें, और एकीकरण जोड़ें।
HACS के स्थान पर आने के बाद अपनाने के लायक दो आदतें। पहला, किसी भी चीज़ पर संस्करणों को पिन करें जो एंटिटीज़ को छूता है main को ट्रैक करने के बजाय, क्योंकि एक आश्चर्यजनक ब्रेकिंग परिवर्तन नामकरण पुनरीक्षण के दौरान सबसे खराब संभावित समय है। दूसरा, हर अपडेट से पहले HACS के अंतर्निहित चेंजलॉग दृश्य का उपयोग करें। यह अक्सर एकमात्र स्थान है जहां तोड़ने वाला नाम बदलने वाला व्यवहार समय से पहले कहा जाता है।
4. ESPHome
डाउनलोड करें: ESPHome
ESP32 या ESP8266 हार्डवेयर पर कुछ भी नामकरण परत है। डिवाइस YAML में name: living-room-lamp को एक बार सेट करें और हर एंटिटी जो उस बोर्ड पर फ्लैश करता है (light.living_room_lamp, sensor.living_room_lamp_temperature, जो भी) एक मेल खाने वाली ID मिलता है। name: फील्ड बदलें, पुनः फ्लैश करें, और Home Assistant अगले बूट पर नई ID देखता है।
यह एकल स्रोत सत्य वह है जो XDA टुकड़े में वर्णित बहाव के प्रकार को रोकता है। पुरानी पैटर्न थी: Home Assistant में डिवाइस का नाम बदलें, ESPHome में फिर से नाम बदलें, दोनों पक्ष सहमत हों। वर्तमान पैटर्न है: ESPHome में नाम बदलें, Home Assistant को अनुसरण करने दें। यह सामंजस्य बनाए रखने के लिए एक छोटा सा सतह क्षेत्र है, और संस्करण-नियंत्रित .yaml फाइलें मतलब हर पुनः नाम देने रेपो में एक अंतर है।
प्रारंभिक परिवर्तन के लिए इसे कोर पुनः नाम संवाद के साथ जोड़ी करें। ESPHome पहले बूट पर नई ID बनाता है; संवाद पुरानी लोगों के लिए संदर्भ को फिर से लिखता है। दो पास, कोई अनाथ नहीं।
5. Node-RED
डाउनलोड करें: Node-RED
जब ऑटोमेशन बीस या तीस से गुजरता है और YAML संपादक संकीर्ण महसूस करना शुरू करता है, तो Node-RED का दृश्य प्रवाह संपादक सामान्य अगला कदम होता है। एंटिटी ID कैनवास पर प्रथम-श्रेणी नागरिक बन जाते हैं: हर नोड जो एक को छूता है इसे लेबल में दिखाता है, और साइडबार में लाइव रजिस्ट्री खोज होती है ताकि गलत टाइप की गई ID असंभव हो सहेजी जाए।
एंटिटी नेमिंग विशेष रूप से, Node-RED की प्रति-प्रवाह खोज उपकरण है। एक प्रवाह खोलें, Ctrl+F दबाएं, पुरानी ID टाइप करें, और हर नोड जो इसे संदर्भित करता है प्रकाशित होता है। नोड कॉन्फ़िगरेशन पैनल के माध्यम से बल्क में नाम बदलें, तैनात करें, किया। प्रवाह JSON के रूप में निर्यात करते हैं, इसलिए वे कॉन्फ़िगरेशन के बाकी हिस्से के रूप में एक ही git रेपो में खुशी से रहते हैं।
व्यापार-बंद: Node-RED इसे प्रतिस्थापित करने के बजाय Home Assistant के स्वयं के ऑटोमेशन इंजन के साथ चलता है, इसलिए एंटिटी ID पुनः नाम देने को अब दो स्थानों पर लागू किया जाना चाहिए। एक चेकलिस्ट रखो।
6. Automation Editor (अंतर्निहित)
डाउनलोड करें: Automation Editor (Home Assistant के साथ शिप)
स्टॉक UI संपादक अक्सर कम आंका जाता है। एकल-ऑटोमेशन संपादन के लिए यह एंटिटी ID को खोजयोग्य संदर्भों के रूप में मानता है: ट्रिगर के एंटिटी पिकर को बदलें और संबंधित स्थिति और कार्रवाई फील्ड समान सहेजने पर अपडेट होते हैं। कोई हाथ-संपादन YAML नहीं, कोई खोया हुआ अल्पविराम जोखिम नहीं।
जहां यह इस सूची में अपनी जगह अर्जित करता है वह “Rename” प्रांप्ट है जो दिखाई देता है जब आप एक डिवाइस या एंटिटी को बदलते हैं कि ऑटोमेशन संदर्भ देता है। यह कोर संवाद जैसे ही अपडेट-संदर्भ-पार-कॉन्फ़िगरेशन प्रीव्यू प्रदान करता है, आपके पास खुले ऑटोमेशन को बल दिया। सामान्य मामले के लिए, एक एकल ऑटोमेशन संपादित करें, ध्यान दें कि जुड़ी एंटिटी को एक अनुकूल ID मिल गई है, पुनः नाम दें को स्वीकार करें, सहेजें और जारी रखें।
कुछ भी जो एकाधिक ऑटोमेशन को कवर करता है के लिए, इसके बजाय कोर पुनः नाम संवाद का उपयोग करें। यह चिकित्सा एकल-फ़ाइल परिवर्तन के लिए है।
7. Custom Brand Icons
डाउनलोड करें: Custom Brand Icons
अजीब, और जो खुद को सबसे तेजी से भुगतान करता है। Custom Brand Icons एक HACS एकीकरण है जो आपको पैटर्न द्वारा विक्रेता और उत्पाद आइकन को एंटिटीज़ में संलग्न करने देता है। हर light.living_* एंटिटी को एक ही दीपक आइकन दें, हर sensor.*_battery को एक ही बैटरी आइकन, हर switch.plug_* को एक ही सॉकेट।
नामकरण-पुनरीक्षण लाभ दृश्य है। पुनः नाम देने के बाद डैशबोर्ड खोलें और कोई भी एंटिटी जो पैटर्न के बाहर गिर गई (एक टाइपो, एक पुरानी उपनाम, एक डिवाइस जो नाम बदल दी गई लेकिन संबंधित सहायक नहीं) डिफ़ॉल्ट फ़ॉलबैक आइकन परिवार आइकन के बजाय दिखाता है। एक गलत पुनः नाम देने एक दृश्य आउटलायर के रूप में प्रकट होता है इससे पहले कि यह एक टूटे हुए ऑटोमेशन के रूप में दिखाई दे।
आपके नामकरण सम्मेलन के विरुद्ध पैटर्न को एक बार सेट करें, उन्हें configuration.yaml में रखें, और हर भविष्य पुनः नाम या तो पैटर्न से मेल खाता है या खुद की घोषणा करता है।
सही ढेर कैसे चुनें
आधार परत, हर सेटअप के लिए: Home Assistant प्लस HACS प्लस Studio Code Server प्लस git। वह संयोजन आपको कोर पुनः नाम संवाद, दूसरे पास खोज, सामुदायिक पैकेज चैनल कुछ भी और पूर्ववत बटन देता है।
ESPHome जोड़ें यदि आपकी कोई एंटिटीज़ DIY हार्डवेयर से आते हैं। यह उन नामों के लिए सत्य के स्रोत को Home Assistant UI के बाहर और संस्करण-नियंत्रित YAML में ले जाता है, और बहाव बग का एक पूरा वर्ग हटा देता है।
Node-RED जोड़ें यदि आपके पास कुछ दर्जन से अधिक ऑटोमेशन हैं या यदि कोई तीन या चार कदम से अधिक अवधि है। दृश्य संपादक पैमाने पर लेखापरीक्षा के लिए आसान है, और प्रति-प्रवाह खोज है कि आप जटिल प्रवाह में अनाथ ID को कैसे पकड़ते हैं।
Custom Brand Icons जल्दी जोड़ें बजाय देर से। एक पुनः नाम देने से पहले पैटर्न निर्धारित करना मतलब डैशबोर्ड परिवर्तन-पहचान उपकरण बन जाता है, सिर्फ एक प्रदर्शन नहीं।
Automation Editor हमेशा उपलब्ध है और एकल-फ़ाइल संपादन के लिए इस्तेमाल करने के लायक है। जब परिवर्तन कई ऑटोमेशन को स्पर्श करते हैं तो यह कोर पुनः नाम संवाद के लिए प्रतिस्थापन नहीं है, लेकिन यह दैनिक सफाई के लिए सबसे तेजी से पथ है।
अक्सर पूछे जाने वाले प्रश्न
क्या Home Assistant में एक एंटिटी का नाम बदलना अपने-आप ही हर ऑटोमेशन को अपडेट करता है जो इसका उपयोग करता है?
रिलीज़ 2023.4 के बाद से एंटिटी ID पुनः नाम संवाद ऑटोमेशन, स्क्रिप्ट, दृश्य, डैशबोर्ड और पुरानी ID के लिए संदर्भ के लिए ब्लूप्रिंट खोजता है और उन्हें एक पास में अपडेट करने की पेशकश करता है। यह पहले प्रीव्यू दिखाता है। यह कस्टम एकीकरण के अंदर संदर्भों को नहीं देख सकता जो अपनी फ़ाइलों में ID संग्रहीत करते हैं या Node-RED फ्लोज़ के अंदर, इसलिए Studio Code Server में दूसरे पास खोज हर पुनः नाम के बाद चलाने के लायक है।
अनुकूल नाम और एंटिटी ID के बीच क्या अंतर है?
एंटिटी ID (light.living_room_lamp) मशीन कुंजी है जो ऑटोमेशन, स्क्रिप्ट और टेम्पलेट एंटिटी को संबोधित करने के लिए उपयोग करते हैं। अनुकूल नाम (“Living room lamp”) लेबल है जो डैशबोर्ड, वॉयस सहायक और सूचनाओं में दिखाई देता है। अनुकूल नाम को स्वतंत्र रूप से बदलें; एंटिटी ID स्थिर रहता है और कोई ऑटोमेशन नहीं टूटता। एंटिटी ID को केवल पुनः नाम संवाद के माध्यम से बदलें ताकि संदर्भ अपडेट हों।
क्या डिवाइस को एकीकरण UI से या एंटिटी सेटिंग्स से पुनः नाम दिया जाना चाहिए?
एकीकरण UI (ZHA, Z-Wave JS, ESPHome, आदि) से डिवाइस का नाम बदलें जब लक्ष्य उस डिवाइस को एक बार में उजागर करने वाले हर एंटिटी को बदलना है। व्यक्तिगत एंटिटी का नाम बदलें जब डिवाइस की एंटिटीज़ में से केवल एक को एक अलग ID की आवश्यकता होती है। दोनों प्रवाह अब समान अपडेट-संदर्भ प्रीव्यू ट्रिगर करते हैं, इसलिए सुरक्षा जाल दोनों तरीकों से समान है।
आप एक Home Assistant कॉन्फ़िगरेशन को एंटिटी ID टाइपो के लिए कैसे ऑडिट करते हैं इससे पहले कि वे आउटेज का कारण बनें?
Home Assistant एक्सटेंशन के साथ Studio Code Server सबसे तेजी से ऑडिट है। entity_id: के लिए एक प्रोजेक्ट-व्यापी खोज खोलें और कुछ भी स्कैन करें जो लाइव रजिस्ट्री के विरुद्ध ऑटोकंपलीट नहीं करता है। एक स्क्रिप्ट किए गए चेक के लिए, hassio ha check (अंतर्निहित कॉन्फ़िगरेशन सत्यापक की CLI समकक्ष) उन एंटिटीज़ के संदर्भों को फ्लैग करेगा जो मौजूद नहीं हैं, और हर परिवर्तन के बाद git diff समीक्षा को एक-कमांड आदत बनाता है।
क्या उत्पादन Home Assistant उदाहरण पर एंटिटीज़ का नाम बदलना सुरक्षित है?
यह पहले से अधिक सुरक्षित है, अगर पुनः नाम एंटिटी सेटिंग्स संवाद या जुड़े ऑटोमेशन संपादक प्रांप्ट के माध्यम से जाता है। पहले UI से बैकअप लें, शांत विंडो के दौरान पुनः नाम करें, और प्रभावित एकीकरण को फिर से लोड करें या परिवर्तन के बाद Home Assistant को फिर से शुरू करें। अगर कुछ गलत दिखता है, तो git रेपो कि बाकी यह ढेर आपको रखने के लिए प्रोत्साहित करता है पिछली स्थिति में वापसी का सबसे तेजी तरीका है।