Web Analytics

my-skylight-calendar

⭐ 248 stars Arabic by mohesles

🌐 اللغة

تقويم العائلة الذكي المنزلي DIY (نسخة Skylight)

تقويم Skylight DIY Skylight

📖 مقدمة

في الآونة الأخيرة، تعرضت زوجتي لسيل من الإعلانات على وسائل التواصل الاجتماعي حول تقاويم المنازل الذكية (Skylight، Cozyla، Hearth) وكانت على استعداد لإنفاق أكثر من 300 دولار على واحد منها. قبل أن أعطيها الموافقة، طلبت فرصة للبحث عنها.

لاحظت أن معظم الخيارات تقدم وظائف متشابهة ولكنها تختلف بشكل كبير في السعر. والأهم من ذلك، لم أجد أي ميزة بارزة لا يمكنني تنفيذها في Home Assistant.

الهدف: تقويم بشاشة لمس يوضع على سطح الطاولة، مقبول وفق معيار WAF (عامل قبول الزوجة)، ويتكامل بعمق مع منزلنا الذكي بدون رسوم شهرية.

💡 لماذا التصنيع الذاتي؟

اختيار طريق التصنيع الذاتي باستخدام Home Assistant قدم عدة فوائد مقارنة بشراء شاشة Skylight/Hearth:

🛠 اختيار الأجهزة

حالياً تم بناء النظام ليعرض لوحة التحكم على أي شاشة HD (1920x1080).

بالنسبة لي، كان الشرط أن "يشبه" skylight، يكون بشاشة لمس، يوضع على سطح الطاولة، وإمكانية نقله إلى أماكن مختلفة. لذلك اخترت الأجهزة الموضحة أدناه. ومع ذلك، قد يكون وضعك مختلفاً وقد تحتاج إلى تعديل ذلك حسب الحاجة، على سبيل المثال إذا كنت تريد عرضه على جهاز لوحي أو شيء آخر.

الأجهزة التي استخدمتها في البداية اخترتها بناءً على ما ذكرت أعلاه بالإضافة إلى أمل توسيع الوظائف باستخدام الكاميرا، السماعة والميكروفون. حالياً ربما كنت سأبنيه بطريقة مختلفة الآن بعد التجربة، لأنني لم أجد وقتاً لمعالجة أفكار الأجهزة الإضافية تلك.

✨ الميزات

---

⚙️ دليل التثبيت

ملاحظة: هذا الإعداد يستخدم حزمة YAML لإنشاء جميع المساعدين والبرمجيات النصية والمتغيرات الضرورية تلقائياً. لا تحتاج إلى إنشائها يدوياً.

1. المتطلبات الأساسية (HACS)

يجب أن يكون لديك HACS مثبتًا. يرجى تثبيت تكاملات الواجهة الأمامية التالية:

*ملاحظة: في الإعدادات → الأجهزة والخدمات، تأكد من ظهور Browser Mod كتكامل (قرص) وليس فقط تحت HACS. إذا لم يكن هناك، انقر على إضافة تكامل → Browser Mod وأكمل الخطوات، ثم أعد تشغيل HA. التثبيت عبر HACS يقوم فقط بتحميل الملفات؛ يجب إضافة التكامل حتى يسجل HA إجراءاته/كياناته.

2. الخلفية (العقل)

   homeassistant:
     packages: !include_dir_named packages
   ``
  • أنشئ مجلدًا باسم packages في دليل إعدادات HA الخاص بك (إذا لم يكن موجودًا لديك).
  • قم بتنزيل packages/family_calendar.yaml من هذا المستودع.
  • ابحث عن السلسلة [ #<--- UPDATE THIS ENTITY] وقم بتحديث معرّف كيان التقويم ليتناسب مع بيئتك. راجع القسم 3 لمزيد من التفاصيل.
  • ضع الملف داخل مجلد packages/ الخاص بك.
  • أعد تشغيل Home Assistant.

3. التقويمات

يمكنك استخدام تقويمات Google أو التقويمات المحلية.

#### الخيار أ: إعادة استخدام أسماء التقويمات (الأسهل)

  • انتقل إلى الإعدادات > الأجهزة والخدمات.
  • أضف تكامل التقويم المحلي.
  • أنشئ تقويمات بأسماء مطابقة تمامًا: calendar1, calendar2, calendar3, calendar4, Family.
إذا استخدمت هذه الأسماء، سيعمل الكود مباشرة!*

#### الخيار ب: تقويم مخصص

  • انتقل إلى الإعدادات > الأجهزة والخدمات.
  • أضف تكامل التقويم المحلي أو تقويم Google.
  • انتقل إلى الإعداد > التكاملات > التقويم المحلي أو تقويم Google واختر "إضافة إدخال"
  • لكل إدخال تم إنشاؤه، احصل على معرّف الكيان لتحديث ملف dashboard.yaml.
  • افتح dashboard.yaml.
  • ابحث عن # <--- UPDATE THIS ENTITY.
  • حدث معرّف الكيان ليتناسب مع بيئتك
#### إعداد العطل الرسمية

منذ تحديثات Home Assistant، تتم إضافة العطل الرسمية الآن عبر الواجهة الرسومية:

  • انتقل إلى الإعدادات > الأجهزة والخدمات > إضافة تكامل > عطلة.
  • اختر بلدك.
  • تحقق من معرّف الكيان (مثال: 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 على لوحة المعلومات.
  • أعد تشغيل Home Assistant.
  • انتقل إلى ملفك الشخصي (رمز المستخدم أسفل اليسار) وغيّر السمة إلى Skylight.
ملاحظة: السمة ليست شاملة، لذا ضع ذلك في اعتبارك


📐 كيف يعمل (تحت الغطاء)

منطق التصفية

بطاقة week-planner-card لا تدعم إخفاء تقاويم محددة ديناميكيًا بشكل افتراضي. لحل ذلك، استخدمت حقول نصية إدخالية تعمل كمرشحات Regex.

عندما تضغط على زر شخص ما، يتم تبديل مرشحهم بين ‎.‎ (عرض الكل) و ‎^$‎ (عدم عرض شيء).

  • بطاقة ‎config-template-card‎ تضخ هذه المتغيرات في بطاقة التقويم ديناميكيًا.

برنامج إنشاء الحدث

نافذة "إضافة حدث" المنبثقة تستخدم برنامجًا واحدًا يتعامل مع المنطق لعدة أشخاص وأنواع أحداث (طوال اليوم مقابل محدد الوقت).

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 ---