Web Analytics

my-skylight-calendar

⭐ 140 stars Russian by mohesles

🌐 Язык

DIY Умный Домашний Семейный Календарь (Аналог Skylight)

Календарь Skylight DIY Skylight

📖 Введение

Мою жену недавно буквально завалили в социальных сетях рекламой умных домашних календарей (Skylight, Cozyla, Hearth), и она была готова потратить на один из них более $300. Прежде чем дать ей согласие на покупку, я попросил время, чтобы изучить этот вопрос. Я понял, что большинство предлагаемых решений имеют схожий функционал, но существенно отличаются по цене. Самое главное, я не увидел ни одной выдающейся функции, которую не смог бы реализовать в Home Assistant.

Цель: Одобренный женой (Wife Acceptance Factor), удобный для размещения на столешнице сенсорный календарь, глубоко интегрированный в наш умный дом и не требующий ежемесячных платежей.

💡 Почему DIY?

Выбор DIY-подхода с Home Assistant дал несколько преимуществ по сравнению с покупкой Skylight/Hearth дисплея:

🛠 Выбор оборудования

В данный момент система построена для отображения дашборда на любом HD (1920x1080) дисплее.

В моем случае требовалось, чтобы устройство "выглядело как" skylight, было сенсорным, стояло на столешнице, и его можно было перемещать. Поэтому я выбрал описанное ниже оборудование. Тем не менее, ваш случай может отличаться, и потребуется подстроить конфигурацию — например, если вы хотите выводить интерфейс на планшет или что-то другое.

Оборудование я выбрал исходя из вышеописанных требований, а также с расчетом расширить возможности за счет веб-камеры, динамика и микрофона. Сейчас бы я, возможно, собрал систему иначе, поскольку не успел реализовать дополнительные идеи с оборудованием.

✨ Функции

---

⚙️ Инструкция по установке

Примечание: Эта настройка использует YAML Package, который автоматически создаёт все необходимые помощники, скрипты и переменные. Создавать их вручную не потребуется.

1. Предварительные требования (HACS)

У вас должен быть установлен HACS. Пожалуйста, установите следующие интеграции Frontend:

2. Backend (Мозг системы)

   homeassistant:
     packages: !include_dir_named packages
   ``
  • Создайте папку с именем packages в вашем каталоге конфигурации HA (если у вас её нет).
  • Скачайте файл packages/family_calendar.yaml из этого репозитория.
  • Поместите файл в папку packages/.
  • Перезапустите Home Assistant.

3. Календарь

Вы можете использовать Google Календарь или Локальный Календарь.

#### Вариант A: Локальный календарь (самый простой)

Обратите внимание, что это не тестировалось, так как я использую только Google Календарь

  • Перейдите в Настройки > Устройства и сервисы.
  • Добавьте интеграцию Локальный календарь.
  • Создайте календари с точными именами: 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 праздники добавляются через интерфейс:

  • Перейдите в Настройки > Устройства и службы > Добавить интеграцию > Holiday.
  • Выберите вашу страну.
  • Проверьте ID сущности (например, calendar.holidays). Если он отличается от стандартного, обновите его в YAML вашей панели.

4. Панель управления (Внешний вид)

  • Создайте новый вид панели (Установите тип вида на Разделы).
  • Скопируйте код из dashboard.yaml.
  • Настройте:
  • Поиск и замена: Замените person.alice на сущности членов вашей семьи.
  • Погода: Замените weather.home на вашего поставщика погоды.
  • Фон: Обновите URL изображения внизу yaml.

Шаг 5: Тема (по желанию)

Чтобы получить специфический шрифт (Ovo):

  • Убедитесь, что в вашем configuration.yaml добавлена эта строка под frontend:
`yaml frontend: themes: !include_dir_merge_named themes `
  • Создайте папку с именем themes в вашем каталоге конфигурации.
  • Скачайте themes/skylight.yaml и поместите его в эту папку.
  • Перезапустите Home Assistant.
  • Перейдите в свой профиль (значок пользователя внизу слева) и измените Тему на Skylight.
ПРИМЕЧАНИЕ: Тема не является всеобъемлющей, имейте это в виду


📐 Как это работает (внутри)

Логика фильтра

week-planner-card не поддерживает скрытие отдельных календарей "на лету". Для решения этой задачи я использовал Input Texts в роли фильтров 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-01-14 ---