Web Analytics

my-skylight-calendar

⭐ 140 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 एकीकरण इंस्टॉल करें:

2. बैकएंड (मस्तिष्क)

   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"
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-01-14 ---