Стояла задача отображение уровня чернил принтеров в Home assistant, но стандартной карточки отображающей уровень нет. Использовать для этих целей можно button-card
Button-card можно поставить через HACS или вручную, установка плагинов не входит в рамки данной статьи и предполагается, что button-card у Вас уже установлен.
Заходим в в lovelace и нажимаем три точки сверху справа и выбираем Изменить панель

опять нажимаем на три точки и выбираем Текстовый редактор

в самое начало можно вставлять шаблоны, перед строкой title: Home Assistant

вставляем следующий текст
button_card_templates:
inkwell:
show_name: false
show_state: true
extra_styles: |
[[[ return `
@keyframes pulse {
5% {
background-color: ${variables.color};
}
}
`]]]
styles:
icon:
- opacity: 0.7
- color: '[[[ return variables.color ]]]'
- filter: drop-shadow( 0 0 2px rgba(0, 0, 0, .7))
state:
- font-size: 1.5em
- font-weight: bold
- text-shadow: 0 0 6px black
- overflow: visible
card:
- border: solid 3px gray
- border-top: none
- background: |
[[[
var level = entity.state;
var color = variables.color;
return `linear-gradient(to top, ${color}, ${color} ${level}%, rgba(255,255,255,0.12) ${level}%)`
]]]
- animation: |
[[[
return (0 + entity.state) < 10
? 'pulse ease-in-out 1s infinite'
: 'none'
]]]
нажимаем в правом верхнем углу кнопку сохранить и закрываем редактор на крестик слева.
нажимаем: Добавить карточку, выбираем button-card и пишем следующий код
type: custom:button-card
entity: sensor.hl_l3210cw_status
name: HL-L3210
color: gray
show_state: true
styles:
card:
- padding: 0 0 5px 0
icon:
- width: 100%
state:
- text-align: left
- width: 100%
grid:
- grid-template-areas: '"i c m y k" "n s s s s"'
- grid-template-columns: 1fr 1fr 1fr 1fr 1fr
- grid-template-rows: auto 1em
custom_fields:
k:
- width: 80%
- margin: auto
c:
- width: 80%
- margin: auto
m:
- width: 80%
- margin: auto
'y':
- width: 80%
- margin: auto
custom_fields:
k:
card:
type: custom:button-card
template: inkwell
entity: sensor.hl_l3210cw_black_toner_remaining
variables:
color: black
c:
card:
type: custom:button-card
template: inkwell
entity: sensor.hl_l3210cw_cyan_toner_remaining
variables:
color: cyan
m:
card:
type: custom:button-card
template: inkwell
entity: sensor.hl_l3210cw_magenta_toner_remaining
variables:
color: magenta
'y':
card:
type: custom:button-card
template: inkwell
entity: sensor.hl_l3210cw_yellow_toner_remaining
variables:
color: yellow
заменяем строки entity, вначале сенсор статуса принтера, остальные на нужные значения уровня тонера, если тонера не 4, то копипастим добавляя нужное значение.
всё сохраняем и радуемся
