Web Analytics

my-skylight-calendar

⭐ 248 stars Hindi by mohesles

🌐 भाषा

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

स्काईलाइट कैलेंडर DIY स्काईलाइट

📖 परिचय

हाल ही में मेरी पत्नी को सोशल मीडिया पर स्मार्ट होम कैलेंडर (स्काईलाइट, कोजिला, हेर्थ) के विज्ञापनों से भरपूर बमबारी का सामना करना पड़ा और वह एक पर $300 से अधिक खर्च करने को तैयार थीं। उन्हें हरी झंडी देने से पहले, मैंने उनसे इन्हें शोधने का एक मौका मांगा।

मैंने देखा कि अधिकांश में समान कार्यक्षमता थी लेकिन कीमत में काफी अंतर था। सबसे महत्वपूर्ण बात, मुझे कोई ऐसी विशेषता नहीं दिखी जिसे मैं Home Assistant में लागू न कर सकूं।

लक्ष्य: एक WAF-स्वीकृत (Wife Acceptance Factor), काउंटरटॉप-फ्रेंडली टचस्क्रीन कैलेंडर जो हमारे स्मार्ट होम में गहराई से एकीकृत हो और मासिक शुल्क न ले।

💡 DIY क्यों?

Home Assistant के साथ DIY मार्ग चुनने से Skylight/Hearth डिस्प्ले खरीदने की तुलना में कई लाभ मिले:

🛠 हार्डवेयर चयन

यह वर्तमान में किसी भी HD (1920x1080) डिस्प्ले पर डैशबोर्ड दिखाने के लिए बनाया गया है।

मेरे मामले में, आवश्यकता थी कि यह "स्काइलाइट जैसा" दिखे, टचस्क्रीन हो, काउंटरटॉप हो, और विभिन्न स्थानों पर ले जाने की संभावना हो। इसलिए मैंने नीचे वर्णित हार्डवेयर चुना। फिर भी, आपका मामला अलग हो सकता है और आपको इसे अपनी आवश्यकता अनुसार समायोजित करना होगा, उदाहरण के लिए यदि आप इसे टैबलेट या किसी अन्य डिवाइस पर दिखाना चाहते हैं।

मैंने जो हार्डवेयर मूल रूप से चुना, वह ऊपर बताए गए कारणों के आधार पर था, साथ ही भविष्य में वेबकैम, स्पीकर और माइक्रोफोन का उपयोग करके कार्यक्षमता बढ़ाने की आशा में। अभी मैं शायद इसे अलग तरीके से बनाऊं, क्योंकि मुझे इन अतिरिक्त हार्डवेयर विचारों को लागू करने का समय नहीं मिला।

✨ विशेषताएँ

---

⚙️ इंस्टॉलेशन गाइड

नोट: यह सेटअप एक YAML पैकेज का उपयोग करता है ताकि आपके लिए आवश्यक सभी हेल्पर्स, स्क्रिप्ट्स और वेरिएबल्स स्वचालित रूप से बनाए जा सकें। आपको इन्हें मैन्युअली बनाने की आवश्यकता नहीं है।

1. आवश्यक पूर्व-आवश्यकताएँ (HACS)

आपके पास HACS इंस्टॉल होना चाहिए। कृपया निम्नलिखित Frontend इंटीग्रेशन इंस्टॉल करें:

*नोट: सेटिंग्स → डिवाइस और सर्विसेज में, सुनिश्चित करें कि ब्राउज़र मॉड एक इंटीग्रेशन (टाइल) के रूप में दिखाई दे रहा है, केवल HACS के अंतर्गत नहीं। यदि यह वहाँ नहीं है, तो Add Integration → Browser Mod पर क्लिक करें और प्रक्रिया पूरी करें, फिर HA को पुनः प्रारंभ करें। HACS के माध्यम से इंस्टॉल करने से केवल फाइलें डाउनलोड होती हैं; आपको इंटीग्रेशन जोड़ना होगा ताकि HA इसकी क्रियाओं/एंटिटीज को रजिस्टर कर सके।

2. बैकएंड (दिमाग)

   homeassistant:
     packages: !include_dir_named packages
   ``
  • अपने HA कॉन्फ़िगरेशन डायरेक्टरी में packages नामक एक फ़ोल्डर बनाएं (यदि आपके पास नहीं है)।
  • इस रिपॉजिटरी से packages/family_calendar.yaml डाउनलोड करें।
  • स्ट्रिंग [ #<--- UPDATE THIS ENTITY] खोजें और अपने वातावरण के अनुसार कैलेंडर एंटिटी आईडी को अपडेट करें। अधिक विवरण के लिए सेक्शन 3 देखें।
  • फ़ाइल को अपने packages/ फ़ोल्डर में रखें।
  • Home Assistant को पुनः प्रारंभ करें

3. कैलेंडर

आप Google Calendars या Local Calendars का उपयोग कर सकते हैं।

#### विकल्प A: कैलेंडर नाम पुन: उपयोग करें (सबसे आसान)

  • Settings > Devices & Services पर जाएं।
  • Local Calendar एकीकरण जोड़ें।
  • बिल्कुल इन्हीं नामों के कैलेंडर बनाएं: calendar1, calendar2, calendar3, calendar4, Family
यदि आप ये नाम उपयोग करते हैं, तो कोड तुरंत काम करता है!*

#### विकल्प B: कस्टम कैलेंडर

  • Settings > Devices & Services पर जाएं।
  • Local Calendar एकीकरण या Google Calendar जोड़ें।
  • Configuration > Integrations > Local Calendar या Google Calendar में जाएं और "Add Entry" चुनें।
  • प्रत्येक बनाए गए एंट्री के लिए, डैशबोर्ड.yaml फ़ाइल अपडेट करने हेतु एंटिटी आईडी प्राप्त करें।
  • dashboard.yaml खोलें।
  • # <--- UPDATE THIS ENTITY खोजें।
  • अपने वातावरण के अनुसार एंटिटी आईडी अपडेट करें।
#### छुट्टियां सेटअप करना

Home Assistant के अपडेट्स के बाद, छुट्टियां अब UI के माध्यम से जोड़ी जाती हैं:

  • Settings > Devices & Services > Add Integration > Holiday पर जाएं।
  • अपना देश चुनें।
  • एंटिटी आईडी जांचें (जैसे, calendar.holidays)। यदि यह डिफ़ॉल्ट से भिन्न है, तो इसे डैशबोर्ड YAML में अपडेट करें।

4. डैशबोर्ड (दिखावट)

  • सेटिंग्स > डैशबोर्ड पर जाएँ
  • डैशबोर्ड जोड़ें पर क्लिक करें (विकल्प "नई डैशबोर्ड स्क्रैच से" चुनें, सुनिश्चित करें कि "साइडबार में जोड़ें" चुना गया है)।
  • बाएँ मेनू में, नए बनाए गए डैशबोर्ड को चुनें और उसे संपादित करने के लिए पेंसिल आइकन पर क्लिक करें।
  • तीन डॉट्स आइकन चुनें और "रॉ कॉन्फ़िगरेटर एडिटर" का चयन करें।
  • dashboard.yaml से कोड कॉपी करें और पेस्ट करें।

चरण 5: थीम (वैकल्पिक)

विशेष फ़ॉन्ट लुक (Ovo) प्राप्त करने के लिए:

  • सुनिश्चित करें कि आपकी configuration.yaml में frontend: के अंतर्गत यह पंक्ति हो:
`yaml frontend: themes: !include_dir_merge_named themes `
  • अपने कॉन्फ़िग डाइरेक्टरी में themes नामक एक फ़ोल्डर बनाएं।
  • themes/skylight.yaml डाउनलोड करें और उसे उस फ़ोल्डर में रखें।
  • फ़ाइल एडिटर का उपयोग करें और calbackgrd.png को /www/ फ़ोल्डर में अपलोड करें, जो डैशबोर्ड पर आंतरिक रूप से /local में बदल जाता है।
  • होम असिस्टेंट को रीस्टार्ट करें।
  • अपनी प्रोफ़ाइल (यूज़र आइकन नीचे बाएं) पर जाएं और 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"
action: calendar.create_event (start_date, end_date)
  • conditions: "All Day Event is OFF"
action: calendar.create_event (start_date_time, end_date_time)
``

नोट्स

मेरी मूल पोस्ट का उद्देश्य केवल यह बताना था कि इसे कैसे किया जाए और लोगों को कोड को उनके विशिष्ट परिदृश्यों के अनुसार समायोजित करने की अनुमति देना था।

विशेष रूप से मैंने ऐसा इसलिए किया क्योंकि हर डिस्प्ले और आवश्यकता अलग होती है। मैं सभी संभावित डिस्प्ले साइज, डैशबोर्ड आदि के लिए विकास नहीं कर सकता। इसलिए इसे मैंने उसी डिस्प्ले (1920x1080) के लिए तैयार किया है, लेकिन इसे अन्य के लिए भी संपादित किया जा सकता है।

डिस्प्ले की बात करें तो, मैंने शुरू में उसी डिस्प्ले का सुझाव दिया था क्योंकि वह उस समय Woot पर सेल में था और टचस्क्रीन डिस्प्ले पाने का एक बहुत किफायती तरीका था। अब शायद ऐसा न हो, तो जो भी डिस्प्ले आपके लिए उपयुक्त हो, उसे इस्तेमाल करें। टैबलेट, टचस्क्रीन, फोन, जो भी हो। मुख्य चीज जिसे आपको संपादित करना होगा, वह है डैशबोर्ड।

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-08 ---