DIY स्मार्ट होम फैमिली कैलेंडर (स्काईलाइट क्लोन)

📖 परिचय
हाल ही में मेरी पत्नी को सोशल मीडिया पर स्मार्ट होम कैलेंडर (स्काईलाइट, कोजिला, हेर्थ) के विज्ञापनों से भरपूर बमबारी का सामना करना पड़ा और वह एक पर $300 से अधिक खर्च करने को तैयार थीं। उन्हें हरी झंडी देने से पहले, मैंने उनसे इन्हें शोधने का एक मौका मांगा।
मैंने देखा कि अधिकांश में समान कार्यक्षमता थी लेकिन कीमत में काफी अंतर था। सबसे महत्वपूर्ण बात, मुझे कोई ऐसी विशेषता नहीं दिखी जिसे मैं Home Assistant में लागू न कर सकूं।
लक्ष्य: एक WAF-स्वीकृत (Wife Acceptance Factor), काउंटरटॉप-फ्रेंडली टचस्क्रीन कैलेंडर जो हमारे स्मार्ट होम में गहराई से एकीकृत हो और मासिक शुल्क न ले।
💡 DIY क्यों?
Home Assistant के साथ DIY मार्ग चुनने से Skylight/Hearth डिस्प्ले खरीदने की तुलना में कई लाभ मिले:
- कोई मासिक शुल्क नहीं: "प्रीमियम" फीचर्स के लिए सब्सक्रिप्शन से बचाता है।
- सुव्यवस्थित एकीकरण: यह हमारे लाइट्स, काम (Grocy), और प्रेजेंस सेंसर से बात करता है।
- पुराना हार्डवेयर: एक Mini PC और सामान्य मॉनिटर का पुनः उपयोग किया गया।
- गोपनीयता: कोई विक्रेता लॉक-इन या कंपनी के बंद होने का जोखिम नहीं।
🛠 हार्डवेयर चयन
यह वर्तमान में किसी भी HD (1920x1080) डिस्प्ले पर डैशबोर्ड दिखाने के लिए बनाया गया है।
मेरे मामले में, आवश्यकता थी कि यह "स्काइलाइट जैसा" दिखे, टचस्क्रीन हो, काउंटरटॉप हो, और विभिन्न स्थानों पर ले जाने की संभावना हो। इसलिए मैंने नीचे वर्णित हार्डवेयर चुना। फिर भी, आपका मामला अलग हो सकता है और आपको इसे अपनी आवश्यकता अनुसार समायोजित करना होगा, उदाहरण के लिए यदि आप इसे टैबलेट या किसी अन्य डिवाइस पर दिखाना चाहते हैं।
मैंने जो हार्डवेयर मूल रूप से चुना, वह ऊपर बताए गए कारणों के आधार पर था, साथ ही भविष्य में वेबकैम, स्पीकर और माइक्रोफोन का उपयोग करके कार्यक्षमता बढ़ाने की आशा में। अभी मैं शायद इसे अलग तरीके से बनाऊं, क्योंकि मुझे इन अतिरिक्त हार्डवेयर विचारों को लागू करने का समय नहीं मिला।
- मॉनिटर: HP Engage 15-इंच टचस्क्रीन। मैंने इसे सामान्य पोर्टेबल मॉनिटर के बजाय चुना क्योंकि इसमें इनबिल्ट स्पीकर, वेबकैम और माइक्रोफोन हैं, जिससे भविष्य में वॉयस कंट्रोल या वीडियो कॉल संभव है।
- कंप्यूटर: एक पुराना Mini PC (NUC/Tiny PC) जो Windows/Linux में किओस्क मोड में चलता है, या Raspberry Pi 4।~~
✨ विशेषताएँ
- परिवार-व्यापी और व्यक्तिगत दृश्य: विशिष्ट परिवार सदस्यों के कैलेंडर ऑन/ऑफ करें।
- दो-तरफा सिंक: स्क्रीन या हमारे फोन (Google Calendar) पर इवेंट्स संपादित करें।
- "इवेंट जोड़ें" पॉपअप: स्क्रीन से सीधे विशिष्ट कैलेंडर में इवेंट जोड़ने के लिए कस्टम UI।
- मौसम और तिथि: सुंदर, देखने योग्य हेडर।
- उत्तरदायी: स्क्रीन चौड़ाई के अनुसार दिन की संख्या स्वचालित रूप से समायोजित करता है (मोबाइल बनाम डेस्कटॉप)।
⚙️ इंस्टॉलेशन गाइड
नोट: यह सेटअप एक YAML पैकेज का उपयोग करता है ताकि आपके लिए आवश्यक सभी हेल्पर्स, स्क्रिप्ट्स और वेरिएबल्स स्वचालित रूप से बनाए जा सकें। आपको इन्हें मैन्युअली बनाने की आवश्यकता नहीं है।
1. पूर्वापेक्षाएँ (HACS)
आपके पास HACS इंस्टॉल होना चाहिए। कृपया निम्नलिखित Frontend एकीकरण इंस्टॉल करें:
week-planner-cardbubble-cardconfig-template-cardcard-modbetter-moment-cardweather-cardbrowser_mod(पॉपअप्स के लिए आवश्यक)layout-card(Sections दृश्य के लिए आवश्यक)button-card(इवेंट जोड़ने के पॉपअप के लिए आवश्यक)
2. बैकएंड (मस्तिष्क)
- अपने
configuration.yamlफ़ाइल को Home Assistant में खोलें। - पैकेज सक्षम करने के लिए
homeassistant:के अंतर्गत यह पंक्ति जोड़ना सुनिश्चित करें:
homeassistant:
packages: !include_dir_named packages
``- अपनी HA कॉन्फ़िग डायरेक्टरी में एक फ़ोल्डर नामक
packages बनाएं (यदि आपके पास नहीं है)।
इस रिपॉजिटरी से packages/family_calendar.yaml डाउनलोड करें।
फ़ाइल को अपने packages/ फ़ोल्डर के अंदर रखें।
Home Assistant को पुनः प्रारंभ करें। 3. कैलेंडर्स
आप Google Calendars या Local Calendars का उपयोग कर सकते हैं।
#### विकल्प A: लोकल कैलेंडर (सबसे आसान)
ध्यान दें कि यह परीक्षण नहीं किया गया है क्योंकि मैं केवल Google Calendars का उपयोग करता हूँ
- Settings > Devices & Services में जाएं।
- Local Calendar एकीकरण जोड़ें।
- बिल्कुल इन नामों के साथ कैलेंडर बनाएं:
Alice, Bob, Charlie, Daisy, Family.
यदि आप ये नाम इस्तेमाल करते हैं, तो कोड तुरंत काम करता है!*#### विकल्प B: Google कैलेंडर
packages/family_calendar.yaml खोलें।
add_google_calendar_event स्क्रिप्ट तक स्क्रॉल करें।
calendar_map को अपने वास्तविक Google संस्थाओं की ओर अपडेट करें:
`yaml
calendar_map:
"Alice": "calendar.alice_gmail_com"
"Bob": "calendar.bob_work_account"
`#### छुट्टियाँ सेट करना
Home Assistant अपडेट्स के बाद, छुट्टियाँ अब UI के माध्यम से जोड़ी जाती हैं:
- Settings > Devices & Services > Add Integration > Holiday में जाएं।
- अपना देश चुनें।
- एंटिटी आईडी जांचें (जैसे,
calendar.holidays)। यदि यह डिफ़ॉल्ट से अलग है, तो इसे डैशबोर्ड YAML में अपडेट करें।4. डैशबोर्ड (दिखावट)
- एक नया डैशबोर्ड व्यू बनाएं (View Type को Sections पर सेट करें)।
- dashboard.yaml से कोड कॉपी करें।
- अनुकूलन करें:
- Search & Replace:
person.alice को अपने परिवार के सदस्यों की असली एंटिटी से बदलें।
Weather: weather.home को अपने मौसम प्रदाता से बदलें।
Background: yaml के अंत में इमेज URL को अपडेट करें। चरण 5: थीम (वैकल्पिक)
विशिष्ट फ़ॉन्ट लुक (Ovo) पाने के लिए:
- सुनिश्चित करें कि आपके
configuration.yaml में यह लाइन frontend: के अंतर्गत है:
`yaml
frontend:
themes: !include_dir_merge_named themes
`
- अपने कॉन्फ़िग डाइरेक्टरी में
themes नाम का एक फ़ोल्डर बनाएं।
themes/skylight.yaml डाउनलोड करें और उसे उस फ़ोल्डर में रखें।
Home Assistant को रीस्टार्ट करें।
अपने प्रोफ़ाइल पर जाएँ (यूज़र आइकन नीचे बाएँ) और Theme को Skylight पर बदलें।
नोट: थीम संपूर्ण नहीं है, कृपया इसे ध्यान में रखें
📐 यह कैसे काम करता है (अंदरूनी प्रक्रिया)
फ़िल्टर लॉजिक
week-planner-card मूल रूप से किसी विशेष कैलेंडर को छुपाने का समर्थन नहीं करता। इसे हल करने के लिए, मैंने Input Texts का उपयोग किया है जो Regex फ़िल्टर की तरह कार्य करते हैं। जब आप किसी व्यक्ति के बटन पर क्लिक करते हैं, तो वह उनके फ़िल्टर को
. (सब दिखाएँ) और ^$ (कुछ भी न दिखाएँ) के बीच टॉगल करता है।
config-template-card इन वेरिएबल्स को डायनामिक रूप से कैलेंडर कार्ड में इंजेक्ट करता है।इवेंट क्रिएशन स्क्रिप्ट
"Add Event" पॉपअप एक ही स्क्रिप्ट का उपयोग करता है जो कई व्यक्तियों और इवेंट प्रकारों (All Day बनाम Timed) के लिए लॉजिक को संभालता है।
yaml
Simplified Logic Example
target_calendar: "{{ calendar_map.get(states('input_select.calendar_select')) }}"choose:
- conditions: "All Day Event is ON"
- conditions: "All Day Event is OFF"
नोट्स
मेरी मूल पोस्ट का उद्देश्य केवल यह बताना था कि इसे कैसे किया जाए और लोगों को कोड को उनके विशिष्ट परिदृश्यों के अनुसार समायोजित करने की अनुमति देना था।
विशेष रूप से मैंने ऐसा इसलिए किया क्योंकि हर डिस्प्ले और आवश्यकता अलग होती है। मैं सभी संभावित डिस्प्ले साइज, डैशबोर्ड आदि के लिए विकास नहीं कर सकता। इसलिए इसे मैंने उसी डिस्प्ले (1920x1080) के लिए तैयार किया है, लेकिन इसे अन्य के लिए भी संपादित किया जा सकता है।
डिस्प्ले की बात करें तो, मैंने शुरू में उसी डिस्प्ले का सुझाव दिया था क्योंकि वह उस समय Woot पर सेल में था और टचस्क्रीन डिस्प्ले पाने का एक बहुत किफायती तरीका था। अब शायद ऐसा न हो, तो जो भी डिस्प्ले आपके लिए उपयुक्त हो, उसे इस्तेमाल करें। टैबलेट, टचस्क्रीन, फोन, जो भी हो। मुख्य चीज जिसे आपको संपादित करना होगा, वह है डैशबोर्ड।
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-14 ---