DIY Akıllı Ev Aile Takvimi (Skylight Klonu)

📖 Giriş
Eşim son zamanlarda sosyal medyada akıllı ev takvimleri (Skylight, Cozyla, Hearth) ile ilgili reklam bombardımanına tutuldu ve birine 300 doların üzerinde harcamaya hazırdı. Ona izin vermeden önce, bu ürünleri araştırmam için bana bir şans vermesini istedim. Çoğu cihazın benzer işlevsellik sunduğunu, ancak fiyatlarının önemli ölçüde farklılık gösterdiğini fark ettim. En önemlisi, Home Assistant ile uygulayamayacağım olağanüstü bir özellik de görmedim.
Hedef: WAF onaylı (Eş Kabul Faktörü), tezgah üstü dostu, dokunmatik ekranlı bir takvim; ev otomasyonumuza derinlemesine entegre olacak ve aylık ücret gerektirmeyecek.
💡 Neden Kendi Çözümümü Yapıyorum?
Home Assistant ile DIY (Kendin Yap) yolunu seçmek, Skylight/Hearth ekranı satın almaya göre çeşitli avantajlar sundu:
- Aylık Ücret Yok: "Premium" özellikler için abonelikten kaçınılır.
- Sorunsuz Entegrasyon: Işıklarımız, görevlerimiz (Grocy) ve varlık sensörlerimizle iletişim kurar.
- Eski Donanım: Bir Mini PC ve standart bir monitör yeniden kullanıldı.
- Gizlilik: Satıcıya bağlı kalma veya şirketin kapanma riski yok.
🛠 Donanım Seçimi
Şu anda bu sistem, herhangi bir HD (1920x1080) ekranda gösterilecek şekilde tasarlanmıştır.
Benim durumumda, gereksinim "skylight gibi görünmesi", dokunmatik olması, tezgah üstü kullanıma uygun olması ve farklı yerlere taşınabilmesi idi. Bu nedenle aşağıda anlattığım donanımı tercih ettim. Yine de sizin kullanım durumunuz farklı olabilir ve örneğin bir tablette veya başka bir cihazda göstermek isterseniz ihtiyaca göre uyarlamanız gerekecektir.
Başlangıçta kullandığım donanımı yukarıda belirttiğim nedenlerle seçtim ve ayrıca kamera, hoparlör ve mikrofonla işlevselliği genişletme umudum vardı. Şu anda, bu ek donanım fikirleriyle ilgilenecek zamanım olmadığı için, muhtemelen şimdi farklı inşa ederdim.
- Monitör: HP Engage 15 inç Dokunmatik Ekran. Genel taşınabilir monitörler yerine bunu seçmemin nedeni, dahili Hoparlör, Kamera ve Mikrofon içermesi ve gelecekte sesli kontrol veya görüntülü arama imkanı sunmasıydı.
- Bilgisayar: Windows/Linux Kiosk modunda çalışan eski bir Mini PC (NUC/Tiny PC) veya bir Raspberry Pi 4.~~
✨ Özellikler
- Aile Genelinde & Bireysel Görünümler: Belirli aile üyelerinin takvimlerini açıp kapatabilme.
- Çift Yönlü Senkronizasyon: Etkinlikleri ekranda veya telefonlarımızda (Google Takvim) düzenleme.
- "Etkinlik Ekle" Pop-up'ı: Doğrudan ekrandan belirli takvimlere etkinlik eklemek için özel bir arayüz.
- Hava Durumu & Tarih: Güzel ve hızlıca bakılabilen başlık alanı.
- Duyarlı: Ekran genişliğine göre gün sayısını otomatik olarak ayarlar (Mobil ve Masaüstü için).
⚙️ Kurulum Rehberi
Not: Bu kurulum, gerekli tüm yardımcıları, betikleri ve değişkenleri sizin için otomatik olarak oluşturacak bir YAML Paketi kullanır. Bunları elle oluşturmanıza gerek yoktur.
1. Ön Koşullar (HACS)
HACS yüklü olmalıdır. Lütfen aşağıdaki Ön Yüz entegrasyonlarını yükleyin:
week-planner-cardbubble-cardconfig-template-cardcard-modbetter-moment-cardweather-cardbrowser_mod(Açılır pencerelerin çalışması için gereklidir)layout-card(Bölümler görünümü için gereklidir)button-card(Etkinlik eklemek için açılır pencere gereklidir)
2. Arka Uç (Beyinler)
- Home Assistant'ta
configuration.yamldosyanızı açın. - Paketleri etkinleştirmek için
homeassistant:altında bu satırın ekli olduğundan emin olun:
homeassistant:
packages: !include_dir_named packages
``
- HA yapılandırma dizininizde
packages adlı bir klasör oluşturun (eğer yoksa).
Bu depodan packages/family_calendar.yaml dosyasını indirin.
[ #<--- UPDATE THIS ENTITY] ifadesini arayın ve takvim varlık kimliğini kendi ortamınıza uygun olacak şekilde güncelleyin. Daha fazla ayrıntı için bölüm 3'e bakın.
Dosyayı packages/ klasörünüzün içine yerleştirin.
Home Assistant'ı yeniden başlatın. 3. Takvimler
Google Takvimleri veya Yerel Takvimleri kullanabilirsiniz.
#### Seçenek A: Takvim İsimlerini Yeniden Kullanma (En Kolayı)
- Ayarlar > Cihazlar & Servisler bölümüne gidin.
- Yerel Takvim entegrasyonunu ekleyin.
- Takvimleri şu isimlerle oluşturun:
calendar1, calendar2, calendar3, calendar4, Family.
Bu isimleri kullanırsanız, kod kutudan çıktığı gibi çalışır!*#### Seçenek B: Özel Takvim
- Ayarlar > Cihazlar & Servisler bölümüne gidin.
- Yerel Takvim veya Google Takvim entegrasyonunu ekleyin.
- Yapılandırma > Entegrasyonlar > Yerel Takvim veya Google Takvim bölümüne gidin ve "Girdi Ekle"yi seçin
- Oluşturulan her giriş için, dashboard.yaml dosyasını güncellemek üzere varlık kimliğini alın.
dashboard.yaml dosyasını açın.
# <--- UPDATE THIS ENTITY ifadesini arayın.
Ortamınıza uygun varlık kimliğini güncelleyin
#### Tatilleri Ayarlama
Home Assistant güncellemeleriyle birlikte, tatiller artık arayüz üzerinden eklenmektedir:
- Ayarlar > Cihazlar & Servisler > Entegrasyon Ekle > Tatil bölümüne gidin.
- Ülkenizi seçin.
- Varlık kimliğini kontrol edin (ör.
calendar.holidays). Varsayılandan farklıysa, dashboard YAML'de bunu güncelleyin.4. Gösterge Paneli (Görünüm)
- Ayarlar > Gösterge Paneli bölümüne gidin
- Gösterge Paneli Ekle'ye tıklayın (Seçenek olarak "Sıfırdan Yeni Gösterge Paneli"ni seçin, "Yan menüye ekle" seçeneğini işaretleyin).
- Sol menüden yeni oluşturulan gösterge panelini seçin ve düzenlemek için kalem simgesine tıklayın.
- 3 nokta simgesini seçin ve "Ham yapılandırıcı düzenleyici"yi seçin.
- dashboard.yaml dosyasındaki kodu kopyalayıp yapıştırın.
Adım 5: Tema (Opsiyonel)
Belirli bir yazı tipi görünümü elde etmek için (Ovo):
configuration.yaml dosyanızda frontend: altında bu satırın olduğundan emin olun:
`yaml
frontend:
themes: !include_dir_merge_named themes
`
- Yapılandırma dizininizde
themes adında bir klasör oluşturun.
themes/skylight.yaml dosyasını indirip bu klasöre yerleştirin.
Dosya Düzenleyicisi'ni kullanarak calbackgrd.png dosyasını /www/ klasörüne yükleyin, bu gösterge panelinde dahili olarak /local olarak çevrilir.
Home Assistant'ı yeniden başlatın.
Profilinize gidin (Sol altta Kullanıcı Simgesi) ve Tema'yı Skylight olarak değiştirin.
NOT: Tema kapsamlı değildir, bunu aklınızda bulundurun
📐 Nasıl Çalışır (Teknik Detaylar)
Filtre Mantığı
week-planner-card kartı, belirli takvimleri anlık olarak gizlemeyi doğal olarak desteklemez. Bunu çözmek için Girdi Metinlerini Regex filtresi olarak kullandım. Bir kişiye ait butona tıkladığınızda, filtresi
. (Her şeyi göster) ile ^$ (Hiçbir şey gösterme) arasında geçiş yapar.
config-template-card, bu değişkenleri takvim kartına dinamik olarak enjekte eder.Etkinlik Oluşturma Betiği
"Etkinlik Ekle" açılır penceresi, birden fazla kişi ve etkinlik türü (Tüm Gün vs Saatli) için mantığı yöneten tek bir betik kullanır.
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"
NOTLAR
Orijinal gönderim, bunu nasıl yapacağınız hakkında üst düzey bir genel bakış sağlamak ve insanların kodu kendi özel senaryolarına uyarlayabilmesine olanak tanımak içindi.
Bunu özellikle yaptım çünkü her ekran ve ihtiyaç farklıdır. Tüm potansiyel ekran boyutları, panolar vb. için geliştirme yapamam. Bu yüzden bahsettiğim ekranda veya herhangi birinde (1920x1080) çalışacak şekilde inşa edildi ancak başkaları için düzenlenebilir olmalı.
Ekran hakkında konuşursak, başta bunu önermemin nedeni, Woot'ta indirimde olması ve o dönemde dokunmatik ekranlı bir ekran edinmenin ekonomik bir yoluydu. Şu anda durum böyle olmayabilir, bu yüzden size uygun olan herhangi bir ekranı kullanın. Tablet, dokunmatik ekran, telefon, fark etmez. Düzenlemeniz gereken asıl şey pano olacak.
--- Tranlated By Open Ai Tx | Last indexed: 2026-03-08 ---