Sync करने पर ऐप आपके लिए पहले से ही एक चालू डैशबोर्ड बना देता है - यह पेज उसका डीलक्स, हाथ से बना वर्शन है। दस कदम, हर कार्ड का YAML, और एक पूरा व्यू जिसे आप एक बार में पेस्ट कर सकते हैं। ग्रीन ग्लास टाइलें, लाइव पिक्चर रीडआउट, आपके सीन, और लेज़र-घंटों का ग्राफ़, सब एक ही प्रोजेक्टर सेंसर से। दो स्ट्रिंग बदलिए और यह आपका हो गया।
configuration.yaml में पेस्ट करने और Home Assistant रीस्टार्ट करने के बाद। इसी से वे स्क्रिप्ट बनती हैं जिन्हें नीचे का हर कंट्रोल बटन कॉल करता है।इस डैशबोर्ड को दो चीज़ों से जानकारी मिलती है, और नीचे हर चरण में यह फ़र्क मायने रखता है।
| स्रोत | आपको मिलता है |
|---|---|
प्रोजेक्टर सेंसर, sensor.YOUR_PROJECTOR | हर रीडिंग। पावर, इनपुट, कलर मोड, पिक्चर के सारे आंकड़े, HDR और सिग्नल, लेंस और ज्यामिति, लैंप घंटे। साइन इन और सिंक करते ही लाइव, किसी Copy block की ज़रूरत नहीं। |
ऐप की सिंक की हुई स्क्रिप्ट, script.projpilot_YOURSERIAL_... | हर कंट्रोल। पावर, इनपुट, कलर मोड, लेंस मेमोरी और आपके सीन। ये तभी बनती हैं जब Copy block पेस्ट हो चुका हो, Home Assistant रीस्टार्ट हो चुका हो और आपने Sync With HA पर टैप किया हो। |
चारों डिफ़ॉल्ट HACS स्टोर में उपलब्ध हैं। Home Assistant में: HACS › Frontend › Explore & Download Repositories, नाम खोजें, Download करें, फिर अपना ब्राउज़र रीलोड करें।
| खोजें | किस काम के लिए | इसे छोड़ने पर |
|---|---|---|
| Mushroom | हर इन्फ़ो टाइल, कंट्रोल बटन और सीन टाइल | सादा button कार्ड इस्तेमाल करें। काम करेगा, पर थोड़ा चौकोर दिखेगा। |
| button-card | हीरो कार्ड, अपने लाइव लेबल के साथ | entity कार्ड इस्तेमाल करें, या कम ब्योरे वाला Mushroom टेम्पलेट कार्ड। |
| card-mod | ग्रीन ग्लास बैकग्राउंड, बॉर्डर और ग्रेडिएंट | सब कुछ फिर भी काम करता है। बस किसी को चमक नहीं मिलती। |
| mini-graph-card | मेंटेनेंस के नीचे लेज़र-घंटों का इतिहास | बिल्ट-इन history-graph कार्ड इस्तेमाल करें। |
इस पेज के हर स्निपेट में दो प्लेसहोल्डर इस्तेमाल हुए हैं। अपनी ID एक बार ढूँढ लें, बाकी सब कॉपी और पेस्ट है।
sensor.YOUR_PROJECTOR → Home Assistant में Developer Tools › States, और projector_pilot पर फ़िल्टर करें। कुछ ऐसा दिखेगा: sensor.projector_pilot_epson_qb1000b_qb1000w।YOURSERIAL → ऐप खोलें, सेटिंग › होम ऑटोमेशन › Home Assistant। सीरियल से बनी id वहीं दिखती है, और यही हर सिंक की हुई स्क्रिप्ट के नाम का बीच का हिस्सा है: script.projpilot_YOURSERIAL_power_on, script.projpilot_YOURSERIAL_input_hdmi1, वगैरह।आप Developer Tools › States को projpilot पर फ़िल्टर करके अपनी पूरी सिंक की हुई कंट्रोल सूची एक साथ भी देख सकते हैं, जब कदम 1 का Copy block और Sync हो चुके हों।
व्यू की अपनी सेटिंग, अगर आप उन्हें टाइप करना चाहें:
title: Projector Pilot views: - title: Projector Pilot path: projector-pilot icon: mdi:projector cards: []
किसी ऐसी चीज़ से शुरू करें जो सिर्फ़ पढ़ती है, ताकि कोई कमांड भेजने वाली चीज़ को छूने से पहले आपको पता चल जाए कि आपकी एंटिटी ID सही है। यह प्रोजेक्टर सेंसर के मौजूद होते ही लाइव हो जाती है, न Copy block, न सिंक। एक कार्ड जोड़ें, Edit in YAML दबाएं, पेस्ट करें:
type: custom:mushroom-template-card
primary: Brightness
secondary: '{{ state_attr(''sensor.YOUR_PROJECTOR'',''brightness'') }}'
icon: mdi:brightness-6
icon_color: green
layout: vertical
fill_container: true
card_mod:
style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px);
min-height: 104px; }'
यही ढांचा सेंसर के ~80 एट्रिब्यूट में से किसी को भी पढ़ता है: brightness की जगह contrast, gamma, color_temp, hdr_pq, lamp_hours, या जो भी आप टाइल पर चाहें, डाल दें।
इसे सेव करें। अगर कोई असली संख्या या शब्द दिखे, तो आपकी एंटिटी ID सही है और नीचे का सब कुछ काम करेगा। अगर खाली दिखे, तो कदम 2 पर लौटें।
सादा शीर्षक बेकार जगह है। यह card-mod के ग्रेडिएंट बैकग्राउंड वाला markdown कार्ड है, और यही टाइलों के ढेर को नाम वाले सेक्शनों में बदलता है। बोर्ड का हर सेक्शन ऐसे ही एक कार्ड से शुरू होता है, बस लेबल और इमोजी अलग होते हैं।
type: markdown
content: '🔌 **POWER & SOURCE**'
card_mod:
style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.30), rgba(16,120,60,0.30));
border: 1px solid rgba(61,220,107,0.45); border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
ha-markdown { padding: 12px 20px !important; } ha-markdown p { margin: 0 !important;
letter-spacing: 3px; color: #eafff0; font-size: 14px; font-weight: 700; }'
इमोजी कोड और लेबल का टेक्स्ट बदलें; card-mod ब्लॉक हर सेक्शन पर वही रहता है।
यह सिर्फ़ वैल्यू पढ़ने की बजाय कमांड भेजता है, इसलिए इसके लिए पहले स्क्रिप्ट मौजूद होनी चाहिए। यह script.projpilot_YOURSERIAL_power_on को कॉल करता है, जिसे ऐप तभी लिखता है जब आप उसका Copy block configuration.yaml में पेस्ट करें, Home Assistant रीस्टार्ट करें और Sync With HA पर टैप करें।
type: custom:mushroom-template-card
primary: Power On
icon: mdi:power
icon_color: green
layout: vertical
fill_container: true
tap_action:
action: call-service
service: script.projpilot_YOURSERIAL_power_on
card_mod:
style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
min-height: 92px; }'
Power Off, Screen Blank, HDMI 1, HDMI 2, A/V Mute, किसी कलर मोड या लेंस मेमोरी के लिए भी यही कार्ड चलता है: सिर्फ़ लेबल, आइकन और service बदलते हैं।
बोर्ड के ऊपर का हीरो एक button-card है: बड़ी पावर स्थिति, कई एट्रिब्यूट से एक साथ बनी एक-लाइन की समरी, और सिर्फ़ बॉर्डर की बजाय पूरे कार्ड पर ग्रीन ग्लास का ट्रीटमेंट।
type: custom:button-card entity: sensor.YOUR_PROJECTOR name: Epson QB1000 show_state: true show_label: true size: 48px state_display: '[[[ return entity.state==''on'' ? ''Powered on'' : ''Standby''; ]]]' label: '[[[ var a=entity.attributes; return (a.input||''-'')+'' • ''+(a.color_mode||''-'')+ '' • ''+(a.video_range||''-'')+'' • ''+(a.lamp_hours||0)+'' h''; ]]]' styles: card: - height: 176px - background: linear-gradient(135deg, rgba(61,220,107,0.32), rgba(11,64,34,0.6)) - border: 1px solid rgba(61,220,107,0.5) - border-radius: 22px - box-shadow: 0 12px 36px rgba(0,0,0,0.42) - padding: 20px state: - color: '[[[ return entity.state==''on'' ? ''#3ddc6b'' : ''#8a9'' ]]]'
सिर्फ़ वे हिस्से रखे गए हैं जो हर इंस्टॉल पर बदलते हैं। पूरा कार्ड आइकन, नाम और लेबल ग्रिड की स्थिति भी सेट करता है; पूरी जानकारी के लिए कदम 10 का डाउनलोड देखें।
पतली पट्टी पसंद है? mushroom-chips-card उसी काम को छोटे चिप्स की एक पंक्ति में करता है: पावर स्थिति, इनपुट, कलर मोड, वीडियो रेंज और लैंप घंटे, हर एक state_attr('sensor.YOUR_PROJECTOR', ...) पढ़ने वाला टेम्पलेट। बोर्ड के ऊपर इनमें से एक ही रखें, दोनों नहीं।
ऐप में आपका सेव किया हर सीन, सिंक के बाद script.projpilot_YOURSERIAL_scene_<id> नाम की स्क्रिप्ट बन जाता है, और उसकी टाइल वही कदम 6 वाला कंट्रोल-बटन कार्ड है, बस सीन का नाम और आइकन अलग।
type: custom:mushroom-template-card
primary: Movie Night
icon: mdi:movie-open
icon_color: green
layout: vertical
fill_container: true
tap_action:
action: call-service
service: script.projpilot_YOURSERIAL_scene_YOURSCENE1
card_mod:
style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
min-height: 92px; }'
YOURSCENE1 की जगह वह id डालें जो ऐप की सिंक की हुई कंट्रोल सूची में उस सीन के लिए दिखती है। हर सीन के लिए एक टाइल, horizontal-stack में।
प्रोजेक्टर सेंसर Home Assistant में किसी भी दूसरे सेंसर की तरह रिकॉर्ड होता है, इसलिए lamp_hours के पास मुफ़्त में इतिहास होता है। कोई अतिरिक्त सेंसर नहीं, कोई हेल्पर नहीं, पहले कुछ भी कॉन्फ़िगर करने की ज़रूरत नहीं, मेंटेनेंस सेक्शन के नीचे।
type: custom:mini-graph-card
entities:
- entity: sensor.YOUR_PROJECTOR
attribute: lamp_hours
name: Laser hours
name: Laser hours
icon: mdi:lightbulb-on-outline
line_color: '#3ddc6b'
line_width: 4
hours_to_show: 336
points_per_hour: 0.5
height: 96
animate: true
card_mod:
style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px); }'
336 घंटे यानी दो हफ़्ते। लेज़र और लैंप के घंटे इधर-उधर उछलने की बजाय लगातार बढ़ते हैं, इसलिए दो हफ़्ते की विंडो आमतौर पर रुझान देखने के लिए काफ़ी होती है, और ग्राफ़ सपाट भी नहीं लगता।
पूरा व्यू, इस पेज के ऊपर के स्क्रीनशॉट का हर सेक्शन और हर कार्ड, एंटिटी ID की जगह प्लेसहोल्डर के साथ।
YOUR_PROJECTOR की जगह कदम 2 से अपने प्रोजेक्टर सेंसर की एंटिटी id, और YOURSERIAL की जगह कदम 2 से सीरियल से बनी अपनी id।YOURSCENE1, YOURSCENE2 और YOURSCENE3 की जगह अपनी तीन सीन id डालें, या टाइलें जोड़ें और हटाएं ताकि वे आपके असली सीनों की गिनती से मेल खाएं।configuration.yaml में पेस्ट न हो, Home Assistant रीस्टार्ट न हो और आप Sync With HA पर टैप न कर लें।एट्रिब्यूट का नाम उससे मिलाएं जो सेंसर असल में रखता है: Developer Tools › States, आपकी sensor.YOUR_PROJECTOR एंटिटी, और उसकी एट्रिब्यूट सूची पढ़ें। HDR PQ या HDR HLG जैसी कुछ रीडिंग तभी भरती हैं जब प्रोजेक्टर उस तरह का सिग्नल सचमुच पा रहा हो, इसलिए उन दोनों पर Unknown खराबी की बजाय सही भी हो सकता है। अगर पूरा सेंसर खाली-खाली लगे, तो प्रोजेक्टर को जगाएं: स्टैंडबाय में रखा यूनिट बहुत कम पब्लिश करता है।
आपने अभी Copy block पेस्ट नहीं किया है, या पेस्ट करने के बाद Home Assistant रीस्टार्ट नहीं हुआ। कंट्रोल और सीन बटन ऐप की लिखी स्क्रिप्ट कॉल करते हैं, और वे स्क्रिप्ट तब तक नहीं होतीं जब तक ऐप में सेटिंग › होम ऑटोमेशन › Home Assistant के Copy block को configuration.yaml में पेस्ट न किया जाए, Home Assistant एक बार रीस्टार्ट न हो और Sync With HA पर टैप न किया जाए। पहले ऐप में Test Connection चलाएं - यह बताता है कि ब्लॉक मौजूद है या नहीं, इससे पहले कि आप डैशबोर्ड में गलती ढूंढने लगें।
पूरे सीरियल की बजाय projpilot पर फ़िल्टर करें - पूरी सूची देखना आसान होता है। अगर हाल में जोड़ा कोई कंट्रोल या सीन गायब है, तो Sync With HA पर फिर टैप करें; वह नए सेटअप की मांग करने की बजाय उसी जगह अपडेट हो जाता है। अगर सीन हटाने के बाद पुरानी, बेकार स्क्रिप्ट सूची में पड़ी हैं, तो ऐप में Remove orphaned scripts इस्तेमाल करें।
पैटर्न तय है, बीच का हिस्सा नहीं। आपका सेंसर आपके अपने प्रोजेक्टर के मॉडल के नाम पर होता है, और हर स्क्रिप्ट में आपके अपने प्रोजेक्टर का सीरियल होता है, इस पेज के प्लेसहोल्डर नहीं। दोनों Developer Tools › States और ऐप की Home Assistant स्क्रीन से लें, जैसा कदम 2 में है, और उदाहरण का टेक्स्ट टाइप करने की बजाय वही इस्तेमाल करें।
होम ऑटोमेशन एक बार का ऐड-ऑन है। न सब्सक्रिप्शन, न अकाउंट, न क्लाउड। एक खरीद आपके हर प्लेटफ़ॉर्म पर इसे अनलॉक कर देती है।
नहीं। जब आप ऐप में Sync With HA पर टैप करते हैं, तो वह सीधे Home Assistant में आपके लिए बना-बनाया Projector Pilot डैशबोर्ड तैयार कर देता है - लाइव प्रोजेक्टर सेंसर और हर कंट्रोल व सीन के लिए एक बटन - और वह आपके साइडबार में Projector Pilot नाम से दिखता है। यह पेज ज़्यादा समृद्ध ग्रीन-ग्लास वर्शन को हाथ से बनाने, या Sync के बनाए डैशबोर्ड को अपने हिसाब से ढालने के लिए है।
स्क्रीनशॉट जैसा लुक चाहिए तो हाँ: Mushroom, button-card, card-mod और mini-graph-card। इनमें से कोई भी बुनियादी कंट्रोल चलाने के लिए ज़रूरी नहीं है - हर बटन एक सादी स्क्रिप्ट कॉल है, और कस्टम कार्ड उसके ऊपर की स्टाइलिंग हैं।
प्रोजेक्टर सेंसर आपके ऐप में साइन इन और सिंक करते ही अपनी रीडिंग पब्लिश कर देता है, इसलिए इन्फ़ो टाइल तुरंत लाइव होती हैं। कंट्रोल और सीन बटन ऐसी स्क्रिप्ट कॉल करते हैं जो Home Assistant में तभी बनती हैं जब आप ऐप का Copy block configuration.yaml में पेस्ट करें, Home Assistant रीस्टार्ट करें और एक बार Sync With HA पर टैप करें।
पैटर्न रहेगा, सटीक अक्षर नहीं। आपका प्रोजेक्टर सेंसर आपके प्रोजेक्टर के मॉडल के नाम पर होता है, और हर स्क्रिप्ट आपके प्रोजेक्टर के सीरियल के नाम पर। इस पेज पर जहाँ YOUR_PROJECTOR लिखा है, वहाँ अपने सेंसर की एंटिटी id डालें; जहाँ YOURSERIAL लिखा है, वहाँ ऐप की Home Assistant स्क्रीन पर दिखी सीरियल से बनी id डालें।