Содержание
Streamline Card — это мощный инструмент для Home Assistant, который позволяет создавать шаблоны карточек Lovelace. Он решает главную проблему создания дашбордов: бесконечное копирование одних и тех же конфигураций YAML (Copy-Paste) при добавлении однотипных устройств.
По сути, это современная и активно поддерживаемая альтернатива популярной, но заброшенной decluttering-card. Если у вас есть 10 одинаковых карточек света или климата, Streamline Card позволяет описать логику один раз, а затем переиспользовать её, меняя только сущности и иконки.
Ключевые возможности
- DRY (Don’t Repeat Yourself): Создайте шаблон один раз и используйте его везде. Изменение шаблона автоматически обновит все карточки.
- Переменные: Использование плейсхолдеров (например,
[[entity]]) для подстановки данных. - JavaScript логика: Поддержка JS-выражений для динамического изменения стилей и параметров карточки.
- Гибкость хранения: Шаблоны можно хранить как прямо в конфигурации дашборда, так и в отдельных YAML-файлах.
Установка
Рекомендуемый способ установки — через HACS:
- Откройте HACS -> Frontend.
- Нажмите «Explore & Download Repositories» и найдите
Streamline Card. - Нажмите «Download».
- После установки обновите страницу браузера (очистите кэш при необходимости).
Настройка и архитектура
Работа с картой состоит из двух этапов: создание шаблона и использование шаблона.
1. Создание шаблонов (Templates)
Шаблон — это «чертеж» вашей карточки. В нем вы описываете структуру и указываете, какие параметры будут переменными.
Существует два способа хранения шаблонов:
Способ А: Внутри конфигурации дашборда (Raw Editor)
Подходит для быстрых тестов. Добавьте код в самом верху вашего YAML-конфига дашборда:
|
1 2 3 4 5 6 7 8 9 10 |
streamline_templates: my_light_template: # Имя шаблона default: # Значения по умолчанию (необязательно) - icon: mdi:lightbulb card: # Конфигурация карточки type: custom:button-card entity: "[[entity]]" name: "[[name]]" icon: "[[icon]]" |
Способ Б: В отдельном файле (Рекомендуется)
Для чистоты конфигурации лучше вынести шаблоны в отдельные файлы. Streamline Card автоматически ищет файл streamline_templates.yaml в папке плагина.
Наиболее удобный путь для создания файла:
/config/www/community/streamline-card/streamline_templates.yaml
2. Использование переменных
Переменные в шаблоне оборачиваются в двойные квадратные скобки.
[[variable_name]]— базовая переменная.- Если переменная стоит одна в строке, её нужно взять в кавычки:
'[[variable_name]]'.
Продвинутые функции: JavaScript
Одна из киллер-фич Streamline Card — возможность использовать JavaScript для вычисления значений «на лету». Для этого к названию любого параметра нужно добавить суффикс _javascript.
Доступные объекты в JS: user, states, variables, areas.
Пример динамического изменения цвета в зависимости от температуры:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
weather_template: card: type: custom:bubble-card entity: "[[weather_entity]]" # JS для CSS стилей styles_javascript: | const temp = states['[[weather_entity]]'].attributes.temperature; return ` .bubble-button-card-container { background-color: ${ temp < 0 ? 'var(--info-color)' : temp > 30 ? 'var(--error-color)' : 'var(--primary-color)' }; } `; |
Примеры использования
Пример 1: Простая карточка света
Шаблон:
|
1 2 3 4 5 6 7 8 9 10 |
streamline_templates: simple_light: default: - icon: mdi:ceiling-light card: type: tile entity: "[[entity]]" icon: "[[icon]]" name: "[[name]]" |
Использование в Lovelace:
|
1 2 3 4 5 6 7 |
- type: custom:streamline-card template: simple_light variables: - entity: light.kitchen - name: Кухня # icon берется из default, если не указан |
Пример 2: Сетка (Grid) с генерацией через JS
Вы можете даже генерировать список карточек программно:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
streamline_templates: auto_grid: card: type: grid columns: 3 # Генерируем карточки для всех включенных светильников cards_javascript: | const entities = states['sensor.lights_on'].attributes.entity_id || []; return entities.map(entity => ({ type: 'tile', entity: entity })); |
Рекомендации и Troubleshooting
- Кэш: Если после добавления карты она не отображается или пишет «Custom element doesn’t exist», обязательно очистите кэш браузера.
- Версии файлов: При использовании внешнего файла
streamline_templates.yaml, карте может потребоваться перезагрузка страницы для подтягивания изменений. - Отладка JS: Если JS-код не работает, проверяйте консоль браузера (F12). Ошибки синтаксиса будут отображены там.

