Web Analytics

my-skylight-calendar

⭐ 140 stars Polish by mohesles

🌐 Język

Rodzinny Kalendarz Smart Home DIY (Kopia Skylight)

Kalendarz Sklylight DIY Skylight

📖 Wprowadzenie

Moja żona ostatnio była zasypywana w mediach społecznościowych reklamami inteligentnych kalendarzy domowych (Skylight, Cozyla, Hearth) i była gotowa wydać ponad 300 dolarów na jeden z nich. Zanim dałem jej zielone światło, poprosiłem o szansę, by je zbadać. Zdałem sobie sprawę, że większość oferowanych urządzeń miała podobną funkcjonalność, ale znacząco różniła się ceną. Co najważniejsze, nie zauważyłem żadnej wyjątkowej funkcji, której nie mógłbym zaimplementować w Home Assistant.

Cel: Urządzenie z aprobatą WAF (Wife Acceptance Factor), przyjazny dla blatu ekran dotykowy z kalendarzem, głęboko zintegrowany z naszym inteligentnym domem, bez miesięcznych opłat.

💡 Dlaczego DIY?

Wybór rozwiązania DIY z Home Assistant przyniósł kilka korzyści w porównaniu do kupna wyświetlacza Skylight/Hearth:

🛠 Wybór sprzętu

Obecnie system jest zbudowany tak, by wyświetlać pulpit na dowolnym ekranie HD (1920x1080).

W moim przypadku wymogiem było, by „wyglądało jak” skylight, było dotykowe, stawiane na blacie, z możliwością przenoszenia w różne miejsca. Dlatego wybrałem sprzęt opisany poniżej. Jednak Twój przypadek może być inny i wymagać dostosowania, np. jeśli chcesz wyświetlać to na tablecie lub innym urządzeniu.

Sprzęt, którego pierwotnie użyłem, wybrałem w oparciu o powyższe kryteria oraz z nadzieją na rozszerzenie funkcjonalności przy użyciu kamery, głośnika i mikrofonu. Obecnie z perspektywy czasu zbudowałbym to inaczej, ponieważ nie miałem czasu na realizację tych dodatkowych pomysłów.

✨ Funkcje

---

⚙️ Przewodnik instalacji

Uwaga: Ta konfiguracja używa pakietu YAML, który automatycznie utworzy wszystkie potrzebne pomocniki, skrypty i zmienne. Nie musisz ich tworzyć ręcznie.

1. Wymagania wstępne (HACS)

Musisz mieć zainstalowany HACS. Proszę zainstalować następujące integracje Frontend:

2. Backend (Mózg systemu)

   homeassistant:
     packages: !include_dir_named packages
   ``
  • Utwórz folder o nazwie packages w katalogu konfiguracyjnym HA (jeśli jeszcze go nie masz).
  • Pobierz plik packages/family_calendar.yaml z tego repozytorium.
  • Umieść plik w folderze packages/.
  • Zrestartuj Home Assistant.

3. Kalendarze

Możesz użyć Kalendarzy Google lub Kalendarzy Lokalnych.

#### Opcja A: Kalendarz Lokalny (Najłatwiejsze)

Uwaga: Nieprzetestowane, ponieważ używam wyłącznie Kalendarzy Google

  • Przejdź do Ustawienia > Urządzenia i Usługi.
  • Dodaj integrację Kalendarz Lokalny.
  • Utwórz kalendarze o dokładnych nazwach: Alice, Bob, Charlie, Daisy, Family.
Jeśli użyjesz tych nazw, kod działa od razu!*

#### Opcja B: Kalendarz Google

  • Otwórz plik packages/family_calendar.yaml.
  • Przewiń do skryptu add_google_calendar_event.
  • Zaktualizuj calendar_map, aby wskazywał na Twoje rzeczywiste encje Google:
`yaml calendar_map: "Alice": "calendar.alice_gmail_com" "Bob": "calendar.bob_work_account" `

#### Ustawianie Świąt

Od aktualizacji Home Assistant, święta dodaje się teraz przez interfejs użytkownika:

  • Przejdź do Ustawienia > Urządzenia i Usługi > Dodaj Integrację > Holiday.
  • Wybierz swój kraj.
  • Sprawdź identyfikator encji (np. calendar.holidays). Jeśli różni się od domyślnego, zaktualizuj go w dashboard YAML.

4. Dashboard (Wygląd)

  • Utwórz nowy Widok Dashboardu (Ustaw Typ Widoku na Sekcje).
  • Skopiuj kod z dashboard.yaml.
  • Dostosuj:
  • Znajdź i Zamień: Zamień person.alice na rzeczywiste encje członków rodziny.
  • Pogoda: Zamień weather.home na dostawcę pogody.
  • Tło: Zaktualizuj adres URL obrazu na dole pliku yaml.

Krok 5: Motyw (Opcjonalnie)

Aby uzyskać specyficzny wygląd czcionki (Ovo):

  • Upewnij się, że w pliku configuration.yaml znajduje się ta linia pod frontend:
`yaml frontend: themes: !include_dir_merge_named themes `
  • Utwórz folder o nazwie themes w swoim katalogu konfiguracyjnym.
  • Pobierz themes/skylight.yaml i umieść go w tym folderze.
  • Zrestartuj Home Assistant.
  • Przejdź do swojego Profilu (ikona użytkownika w lewym dolnym rogu) i zmień Motyw na Skylight.
UWAGA: Motyw nie jest kompleksowy, miej to na uwadze


📐 Jak to działa (Pod maską)

Logika filtrowania

week-planner-card nie obsługuje natywnie ukrywania konkretnych kalendarzy w locie. Aby to obejść, użyłem Tekstów wejściowych działających jako filtry Regex.

Gdy klikniesz przycisk osoby, przełącza on jej filtr między . (Pokaż wszystko) a ^$ (Nie pokazuj nic).

  • config-template-card dynamicznie wstrzykuje te zmienne do karty kalendarza.

Skrypt tworzenia wydarzenia

Popup "Dodaj wydarzenie" wykorzystuje jeden skrypt obsługujący logikę dla wielu osób i typów wydarzeń (całodniowe vs z określonym czasem).

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

UWAGI

Mój oryginalny post miał na celu jedynie przedstawienie ogólnego zarysu jak to zrobić oraz umożliwienie użytkownikom dostosowania kodu do własnych, specyficznych scenariuszy.

Zrobiłem to w szczególności dlatego, że każdy wyświetlacz i potrzeba są inne. Nie mogę opracować rozwiązania dla wszystkich możliwych rozmiarów wyświetlaczy, pulpitów itp. Zostało to więc zbudowane tak, aby działało na wyświetlaczu, o którym wspomniałem, lub dowolnym innym (1920x1080), ale powinno być edytowalne dla pozostałych.

Jeśli chodzi o wyświetlacz, pierwotnie zaproponowałem właśnie ten, ponieważ był w promocji na Woot i był bardzo ekonomicznym sposobem na zdobycie ekranu dotykowego w tamtym czasie. Teraz może to już nie być aktualne, więc użyj dowolnego wyświetlacza, który Ci odpowiada. Tablet, ekran dotykowy, telefon, cokolwiek. Główną rzeczą, którą będziesz musiał edytować, jest dashboard.

--- Tranlated By Open Ai Tx | Last indexed: 2026-01-14 ---