Home Assistant · шаг за шагом

Создайте панель проектора для Home Assistant примерно за час

Приложение уже создаёт для вас рабочую панель при синхронизации - эта страница описывает люксовую версию, собранную вручную. Десять шагов, YAML каждой карточки и полное представление, которое можно вставить за один раз. Плитки из зелёного стекла, живые показания изображения, ваши сцены и график часов работы лазера - всё от одного датчика проектора. Измените две строки, и панель ваша.

Синхронизация создаёт панель бесплатно4 карточки HACS для оформленияИнформационные плитки работают сразуКнопки - после одной вставки
Готовая панель Projector Pilot в Home Assistant: питание и источник, цветовые режимы, полное меню изображения, HDR и сигнал, RGB-калибровка, объектив и геометрия, обслуживание с графиком часов работы лазера и сцены - всё в виде плиток из зелёного стекла
Что вы создаёте. Прокрутите или нажмите, чтобы увеличить.
Нужна просто рабочая панель? Она у вас уже есть. Нажмите Синхронизировать с HA в приложении, и оно создаст для вас готовую панель Projector Pilot в боковом меню Home Assistant со всеми элементами управления и живым датчиком - без карточек, без YAML, без вставки. См. Синхронизация создаёт панель за вас. Эта страница - для создания более богатой версии в стиле зелёного стекла вручную или для настройки того, что создала синхронизация.
Спешите получить собственный вид? Перейдите к шагу 10, скачайте готовое представление, измените две строки и три ID сцен и вставьте его. Шаги между ними объясняют, что делает каждая часть, чтобы вы могли её изменить.

Перед началом

Этот дашборд питают два источника, и на каждом шаге ниже разница между ними важна.

ИсточникЧто даёт
Датчик проектора, sensor.YOUR_PROJECTORКаждое показание. Питание, вход, цветовой режим, все параметры изображения, HDR и сигнал, объектив и геометрия, часы работы лампы. Работает сразу после входа и синхронизации, блок «Копировать» не нужен.
Синхронизированные скрипты приложения, script.projpilot_YOURSERIAL_...Каждый элемент управления. Питание, входы, цветовые режимы, память объектива и ваши сцены. Они появляются только после того, как блок из кнопки «Копировать» вставлен, Home Assistant перезапущен и вы нажали «Синхронизировать с HA».
Шаг 1

Установите четыре карточки из HACS

Все четыре есть в стандартном магазине HACS. В Home Assistant откройте HACS › Интерфейс › Обзор & загрузка репозиториев, найдите по названию, нажмите «Загрузить», затем перезагрузите браузер.

Что искатьДля чегоЕсли пропустить
MushroomКаждая информационная плитка, кнопка управления и плитка сценыИспользуйте обычную карточку button. Работает, но выглядит угловатее.
button-cardГлавная плитка с живой подписьюИспользуйте карточку entity или шаблонную карточку Mushroom с меньшим количеством деталей.
card-modФон из зелёного стекла, границы и градиентыВсё по-прежнему работает. Только без свечения.
mini-graph-cardИстория часов работы лазера в разделе «Обслуживание»Используйте встроенную карточку history-graph.
Ни одна из них не обязательна для работы. Каждый элемент управления ниже работает от стандартной кнопки Home Assistant, указывающей на тот же скрипт. Пользовательские карточки - это внешний вид из зелёного стекла, а не основа работы.
Шаг 2

Найдите свой ID сущности и серийный номер

В каждом фрагменте на этой странице используются два заполнителя. Найдите свои один раз, а дальше просто копируйте и вставляйте.

Вы также можете отфильтровать «Инструменты разработчика» › «Состояния» по projpilot, чтобы сразу увидеть весь список синхронизированных элементов управления, когда блок «Копировать» из шага 1 и синхронизация выполнены.

Списка скриптов пока нет? Это нормально, пока вы не вставили блок «Копировать». Датчик существует и обновляется; скрипты появляются только после успешной синхронизации с HA.
Шаг 3

Создайте представление

  1. Настройки › Панели › Добавить панель › Новая панель с нуля. Назовите её Projector Pilot.
  2. Откройте её, затем нажмите на значок карандаша справа вверху для редактирования.
  3. Добавьте представление. Подойдёт любая раскладка; в настоящей панели используется стандартная стопка карточек одна под другой, в которую проще всего вставлять.
  4. Чтобы вставить YAML, откройте меню из трёх точек на карточке и выберите Редактировать в YAML или откройте меню из трёх точек на панели и выберите Редактор необработанной конфигурации, чтобы вставить сразу всё представление.

Собственные настройки представления, если вы предпочитаете вводить их вручную:

title: Projector Pilot
views:
- title: Projector Pilot
  path: projector-pilot
  icon: mdi:projector
  cards: []
Шаг 4

Добавьте живую информационную плитку

Начните с того, что только считывает данные, чтобы убедиться в правильности ID сущности, прежде чем трогать что-либо, отправляющее команды. Эта плитка работает сразу, как только появляется датчик проектора, без блока «Копировать» и без синхронизации. Добавьте карточку, «Редактировать в YAML», вставьте:

type: custom:mushroom-template-card
primary: Brightness
secondary: '{{ state_attr(''sensor.YOUR_PROJECTOR'',''brightness'') }}'
icon: mdi:brightness-6
icon_color: green
layout: vertical
fill_container: true
card_mod:
  style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
    border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px);
    min-height: 104px; }'

Та же форма считывает любой из примерно 80 атрибутов датчика: замените brightness на contrast, gamma, color_temp, hdr_pq, lamp_hours - всё, что хотите видеть на плитке.

Сохраните. Если появилось реальное число или слово, ваш ID сущности верен и всё ниже будет работать. Если пусто, вернитесь к шагу 2.

Шаг 5

Добавьте зелёный заголовок раздела

Простой заголовок - пустая трата места. Это карточка markdown с градиентным фоном из card-mod, и именно она превращает стопку плиток в именованные разделы. Каждый раздел на панели начинается с такой карточки, меняются только подпись и эмодзи.

type: markdown
content: '🔌    **POWER & SOURCE**'
card_mod:
  style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.30), rgba(16,120,60,0.30));
    border: 1px solid rgba(61,220,107,0.45); border-radius: 14px; box-shadow: 0 6px 20px rgba(0,0,0,0.3); }
    ha-markdown { padding: 12px 20px !important; } ha-markdown p { margin: 0 !important;
    letter-spacing: 3px; color: #eafff0; font-size: 14px; font-weight: 700; }'

Измените код эмодзи и текст подписи; блок card-mod одинаков в каждом разделе.

Шаг 6

Добавьте кнопку управления

Эта кнопка отправляет команду, а не просто считывает значение, поэтому сначала должны существовать скрипты. Она вызывает script.projpilot_YOURSERIAL_power_on, который приложение записывает только после того, как вы вставите его блок «Копировать» в configuration.yaml, перезапустите Home Assistant и нажмёте Синхронизировать с HA.

type: custom:mushroom-template-card
primary: Power On
icon: mdi:power
icon_color: green
layout: vertical
fill_container: true
tap_action:
  action: call-service
  service: script.projpilot_YOURSERIAL_power_on
card_mod:
  style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
    border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
    min-height: 92px; }'

Та же карточка подходит для выключения питания, скрытия экрана, HDMI 1, HDMI 2, A/V Mute, цветового режима или памяти объектива: меняются только подпись, значок и service.

Если всё выглядит правильно, но при нажатии ничего не происходит, значит, блок «Копировать» не вставлен или Home Assistant не перезапускали после вставки. Запустите в приложении Проверить подключение - оно проверяет именно это, прежде чем вы решите, что ошибка в панели.
Шаг 7

Добавьте главную плитку

Главная плитка вверху панели - это button-card: крупное состояние питания, однострочная сводка из нескольких атрибутов сразу и оформление из зелёного стекла на всей карточке, а не только на её границе.

type: custom:button-card
entity: sensor.YOUR_PROJECTOR
name: Epson QB1000
show_state: true
show_label: true
size: 48px
state_display: '[[[ return entity.state==''on'' ? ''Powered on'' : ''Standby''; ]]]'
label: '[[[ var a=entity.attributes; return (a.input||''-'')+''  •  ''+(a.color_mode||''-'')+
  ''  •  ''+(a.video_range||''-'')+''  •  ''+(a.lamp_hours||0)+''  h''; ]]]'
styles:
  card:
  - height: 176px
  - background: linear-gradient(135deg, rgba(61,220,107,0.32), rgba(11,64,34,0.6))
  - border: 1px solid rgba(61,220,107,0.5)
  - border-radius: 22px
  - box-shadow: 0 12px 36px rgba(0,0,0,0.42)
  - padding: 20px
  state:
  - color: '[[[ return entity.state==''on'' ? ''#3ddc6b'' : ''#8a9'' ]]]'

Сокращено до частей, которые меняются при каждой установке. Полная карточка также задаёт значок, имя и положение подписей в сетке; всё это есть в загрузке на шаге 10.

Предпочитаете более тонкую полосу? mushroom-chips-card выполняет ту же задачу в одной строке небольших чипов: состояние питания, вход, цветовой режим, видеодиапазон и часы работы лампы, каждый из которых - шаблон, считывающий state_attr('sensor.YOUR_PROJECTOR', ...). Используйте что-то одно, а не оба варианта сразу, вверху панели.

Шаг 8

Добавьте свои сцены

Каждая сцена, которую вы сохраняете в приложении, после синхронизации становится скриптом с именем script.projpilot_YOURSERIAL_scene_<id>, а плитка для неё - это та же карточка кнопки управления из шага 6 с названием и значком сцены.

type: custom:mushroom-template-card
primary: Movie Night
icon: mdi:movie-open
icon_color: green
layout: vertical
fill_container: true
tap_action:
  action: call-service
  service: script.projpilot_YOURSERIAL_scene_YOURSCENE1
card_mod:
  style: 'ha-card { background: linear-gradient(135deg, rgba(61,220,107,0.16), rgba(16,90,46,0.20));
    border: 1px solid rgba(61,220,107,0.34); border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32);
    min-height: 92px; }'

Замените YOURSCENE1 на ID, показанный для этой сцены в списке синхронизированных элементов управления приложения. По одной плитке на сцену, в horizontal-stack.

Шаг 9

Добавьте историю часов работы лазера

Home Assistant записывает датчик проектора, как и любой другой, так что у lamp_hours история есть бесплатно. Никаких дополнительных датчиков и помощников, ничего не нужно настраивать заранее - в разделе «Обслуживание».

type: custom:mini-graph-card
entities:
- entity: sensor.YOUR_PROJECTOR
  attribute: lamp_hours
  name: Laser hours
name: Laser hours
icon: mdi:lightbulb-on-outline
line_color: '#3ddc6b'
line_width: 4
hours_to_show: 336
points_per_hour: 0.5
height: 96
animate: true
card_mod:
  style: 'ha-card { background: rgba(18,26,20,0.60); border: 1px solid rgba(61,220,107,0.20);
    border-radius: 16px; box-shadow: 0 6px 22px rgba(0,0,0,0.32); backdrop-filter: blur(8px); }'

336 часов - это две недели. Часы работы лазера и лампы растут равномерно, а не скачками, поэтому двухнедельного окна обычно достаточно, чтобы увидеть тенденцию, и график не выглядит плоским.

Шаг 10

Или возьмите всё сразу

Полное представление, каждый раздел и каждая карточка со скриншота вверху этой страницы, с заполнителями вместо ID сущностей.

  1. Скачать YAML представления.
  2. Откройте его в любом текстовом редакторе и замените везде, где они встречаются: YOUR_PROJECTOR на ID сущности вашего датчика проектора из шага 2, а YOURSERIAL на ваш ID на основе серийного номера из шага 2.
  3. В разделе «Сцены» ближе к концу замените YOURSCENE1, YOURSCENE2 и YOURSCENE3 на ваши три ID сцен или добавьте и удалите плитки по числу ваших сцен.
  4. В Home Assistant откройте свою панель, значок карандаша, меню из трёх точек, Редактор необработанной конфигурации и вставьте как представление.
Названия и количество ваших сцен не совпадут. В файле три примера сцен: «Киновечер», «Игры», «День спорта». Переименуйте плитки, укажите свои ID сцен и добавьте или удалите плитки, чтобы раздел соответствовал числу сохранённых вами сцен.
Информационные плитки работают сразу после вставки. Им нужен лишь существующий датчик. Кнопки управления и сцен остаются неактивными, пока блок «Копировать» не вставлен в configuration.yaml, Home Assistant не перезапущен и вы не нажали «Синхронизировать с HA».

Устранение неполадок

Плитка показывает «Неизвестно»

Сверьте имя атрибута с тем, что на самом деле есть у датчика: «Инструменты разработчика» › «Состояния», ваша сущность sensor.YOUR_PROJECTOR, и прочитайте список её атрибутов. Некоторые показания, например HDR PQ или HDR HLG, заполняются только когда проектор действительно получает сигнал такого типа, так что «Неизвестно» у этих двух может быть нормой, а не поломкой. Если весь датчик выглядит скудно, разбудите проектор: устройство в режиме ожидания публикует очень мало данных.

Кнопка ничего не делает

Вы ещё не вставили блок «Копировать» или Home Assistant не перезапускали после этого. Кнопки управления и сцен вызывают скрипты, которые записывает приложение, и этих скриптов нет, пока в Настройки › Домашняя автоматизация › Home Assistant приложения блок «Копировать» не вставлен в configuration.yaml, Home Assistant не перезапущен один раз и не нажато Синхронизировать с HA. Сначала запустите в приложении Проверить подключение - оно сообщит, есть ли блок, прежде чем вы начнёте искать ошибку в панели.

Нужных скриптов нет в «Инструментах разработчика» › «Состояния»

Фильтруйте по projpilot, а не по полному серийному номеру - так проще увидеть весь список. Если недавно добавленного элемента управления или сцены нет, снова нажмите Синхронизировать с HA; обновление происходит на месте, новая настройка не нужна. Если после удаления сцены в списке остались старые мёртвые скрипты, воспользуйтесь в приложении функцией Удалить осиротевшие скрипты.

Мой ID сущности не похож на тот, что в этом руководстве

Шаблон фиксирован, середина - нет. Датчик назван по модели вашего проектора, а каждый скрипт содержит серийный номер вашего проектора, а не заполнители с этой страницы. Возьмите оба значения в «Инструментах разработчика» › «Состояния» и на экране Home Assistant в приложении, как в шаге 2, и используйте их вместо примера текста.

Весь ваш проектор - на одной стене

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

Google Play - уже доступно App Store - ожидает одобрения Microsoft Store - ожидает одобрения Mac App Store - ожидает одобрения

Назад к автоматизации дома → · Полное руководство пользователя →

FAQ

Быстрые ответы

Нужно ли создавать эту панель вручную?

Нет. Когда вы нажимаете «Синхронизировать с HA» в приложении, оно само создаёт готовую панель Projector Pilot прямо в Home Assistant - с живым датчиком проектора и кнопкой для каждого элемента управления и каждой сцены - и она появляется в боковом меню под названием Projector Pilot. Эта страница - для создания более богатой версии в стиле зелёного стекла вручную или для настройки того, что создала синхронизация.

Нужны ли для этого пользовательские карточки из HACS?

Чтобы получить такой же вид, как на скриншоте, да: Mushroom, button-card, card-mod и mini-graph-card. Ни одна из них не обязательна для работы самих элементов управления - каждая кнопка вызывает обычный скрипт, а пользовательские карточки лишь оформляют внешний вид.

Почему информационные плитки показывают значения, а кнопки ничего не делают?

Датчик проектора публикует показания, как только вы входите в систему и синхронизируете данные в приложении, так что информационные плитки работают сразу. Кнопки управления и сцен вызывают скрипты, которые появляются в Home Assistant только после того, как вы вставите блок из кнопки «Копировать» приложения в configuration.yaml, перезапустите Home Assistant и один раз нажмёте «Синхронизировать с HA».

Совпадут ли мои ID объектов с теми, что в этом руководстве?

Шаблон подойдёт, а точные символы - нет. Датчик проектора назван по модели вашего проектора, а каждый скрипт - по его серийному номеру. Везде, где на этой странице написано YOUR_PROJECTOR, подставьте ID сущности вашего датчика; везде, где написано YOURSERIAL, подставьте ID на основе серийного номера, показанный на экране Home Assistant в приложении.