Приложение уже создаёт для вас рабочую панель при синхронизации - эта страница описывает люксовую версию, собранную вручную. Десять шагов, YAML каждой карточки и полное представление, которое можно вставить за один раз. Плитки из зелёного стекла, живые показания изображения, ваши сцены и график часов работы лазера - всё от одного датчика проектора. Измените две строки, и панель ваша.
configuration.yaml и перезапуска Home Assistant. Именно это создаёт скрипты, которые вызывает каждая кнопка управления ниже.Этот дашборд питают два источника, и на каждом шаге ниже разница между ними важна.
| Источник | Что даёт |
|---|---|
Датчик проектора, sensor.YOUR_PROJECTOR | Каждое показание. Питание, вход, цветовой режим, все параметры изображения, HDR и сигнал, объектив и геометрия, часы работы лампы. Работает сразу после входа и синхронизации, блок «Копировать» не нужен. |
Синхронизированные скрипты приложения, script.projpilot_YOURSERIAL_... | Каждый элемент управления. Питание, входы, цветовые режимы, память объектива и ваши сцены. Они появляются только после того, как блок из кнопки «Копировать» вставлен, Home Assistant перезапущен и вы нажали «Синхронизировать с HA». |
Все четыре есть в стандартном магазине HACS. В Home Assistant откройте HACS › Интерфейс › Обзор & загрузка репозиториев, найдите по названию, нажмите «Загрузить», затем перезагрузите браузер.
| Что искать | Для чего | Если пропустить |
|---|---|---|
| Mushroom | Каждая информационная плитка, кнопка управления и плитка сцены | Используйте обычную карточку button. Работает, но выглядит угловатее. |
| button-card | Главная плитка с живой подписью | Используйте карточку entity или шаблонную карточку Mushroom с меньшим количеством деталей. |
| card-mod | Фон из зелёного стекла, границы и градиенты | Всё по-прежнему работает. Только без свечения. |
| mini-graph-card | История часов работы лазера в разделе «Обслуживание» | Используйте встроенную карточку history-graph. |
В каждом фрагменте на этой странице используются два заполнителя. Найдите свои один раз, а дальше просто копируйте и вставляйте.
sensor.YOUR_PROJECTOR → «Инструменты разработчика» › «Состояния» в Home Assistant, отфильтруйте по projector_pilot. Примерно такой: sensor.projector_pilot_epson_qb1000b_qb1000w.YOURSERIAL → откройте приложение, Настройки › Домашняя автоматизация › Home Assistant. ID на основе серийного номера показан прямо там, и он находится в середине имени каждого синхронизированного скрипта: script.projpilot_YOURSERIAL_power_on, script.projpilot_YOURSERIAL_input_hdmi1 и так далее.Вы также можете отфильтровать «Инструменты разработчика» › «Состояния» по projpilot, чтобы сразу увидеть весь список синхронизированных элементов управления, когда блок «Копировать» из шага 1 и синхронизация выполнены.
Собственные настройки представления, если вы предпочитаете вводить их вручную:
title: Projector Pilot views: - title: Projector Pilot path: projector-pilot icon: mdi:projector cards: []
Начните с того, что только считывает данные, чтобы убедиться в правильности 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.
Простой заголовок - пустая трата места. Это карточка 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 одинаков в каждом разделе.
Эта кнопка отправляет команду, а не просто считывает значение, поэтому сначала должны существовать скрипты. Она вызывает 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.
Главная плитка вверху панели - это 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', ...). Используйте что-то одно, а не оба варианта сразу, вверху панели.
Каждая сцена, которую вы сохраняете в приложении, после синхронизации становится скриптом с именем 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.
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 часов - это две недели. Часы работы лазера и лампы растут равномерно, а не скачками, поэтому двухнедельного окна обычно достаточно, чтобы увидеть тенденцию, и график не выглядит плоским.
Полное представление, каждый раздел и каждая карточка со скриншота вверху этой страницы, с заполнителями вместо ID сущностей.
YOUR_PROJECTOR на ID сущности вашего датчика проектора из шага 2, а YOURSERIAL на ваш ID на основе серийного номера из шага 2.YOURSCENE1, YOURSCENE2 и YOURSCENE3 на ваши три ID сцен или добавьте и удалите плитки по числу ваших сцен.configuration.yaml, Home Assistant не перезапущен и вы не нажали «Синхронизировать с HA».Сверьте имя атрибута с тем, что на самом деле есть у датчика: «Инструменты разработчика» › «Состояния», ваша сущность sensor.YOUR_PROJECTOR, и прочитайте список её атрибутов. Некоторые показания, например HDR PQ или HDR HLG, заполняются только когда проектор действительно получает сигнал такого типа, так что «Неизвестно» у этих двух может быть нормой, а не поломкой. Если весь датчик выглядит скудно, разбудите проектор: устройство в режиме ожидания публикует очень мало данных.
Вы ещё не вставили блок «Копировать» или Home Assistant не перезапускали после этого. Кнопки управления и сцен вызывают скрипты, которые записывает приложение, и этих скриптов нет, пока в Настройки › Домашняя автоматизация › Home Assistant приложения блок «Копировать» не вставлен в configuration.yaml, Home Assistant не перезапущен один раз и не нажато Синхронизировать с HA. Сначала запустите в приложении Проверить подключение - оно сообщит, есть ли блок, прежде чем вы начнёте искать ошибку в панели.
Фильтруйте по projpilot, а не по полному серийному номеру - так проще увидеть весь список. Если недавно добавленного элемента управления или сцены нет, снова нажмите Синхронизировать с HA; обновление происходит на месте, новая настройка не нужна. Если после удаления сцены в списке остались старые мёртвые скрипты, воспользуйтесь в приложении функцией Удалить осиротевшие скрипты.
Шаблон фиксирован, середина - нет. Датчик назван по модели вашего проектора, а каждый скрипт содержит серийный номер вашего проектора, а не заполнители с этой страницы. Возьмите оба значения в «Инструментах разработчика» › «Состояния» и на экране Home Assistant в приложении, как в шаге 2, и используйте их вместо примера текста.
Домашняя автоматизация - разовое дополнение. Без подписки, без учётной записи, без облака. Одна покупка открывает её на всех ваших платформах.
Назад к автоматизации дома → · Полное руководство пользователя →
Нет. Когда вы нажимаете «Синхронизировать с HA» в приложении, оно само создаёт готовую панель Projector Pilot прямо в Home Assistant - с живым датчиком проектора и кнопкой для каждого элемента управления и каждой сцены - и она появляется в боковом меню под названием Projector Pilot. Эта страница - для создания более богатой версии в стиле зелёного стекла вручную или для настройки того, что создала синхронизация.
Чтобы получить такой же вид, как на скриншоте, да: Mushroom, button-card, card-mod и mini-graph-card. Ни одна из них не обязательна для работы самих элементов управления - каждая кнопка вызывает обычный скрипт, а пользовательские карточки лишь оформляют внешний вид.
Датчик проектора публикует показания, как только вы входите в систему и синхронизируете данные в приложении, так что информационные плитки работают сразу. Кнопки управления и сцен вызывают скрипты, которые появляются в Home Assistant только после того, как вы вставите блок из кнопки «Копировать» приложения в configuration.yaml, перезапустите Home Assistant и один раз нажмёте «Синхронизировать с HA».
Шаблон подойдёт, а точные символы - нет. Датчик проектора назван по модели вашего проектора, а каждый скрипт - по его серийному номеру. Везде, где на этой странице написано YOUR_PROJECTOR, подставьте ID сущности вашего датчика; везде, где написано YOURSERIAL, подставьте ID на основе серийного номера, показанный на экране Home Assistant в приложении.