我找到另外一种方法, 不知道其他大佬是不是有其他更好的方法.
步骤一:创建输入数字实体首先,在你的 configuration.yaml 文件中添加一个输入数字实体,用于存储开着的灯的数量:
input_number:
lights_on_count:
name: "开着的灯数量"
min: 0
max: 100
step: 1
mode: box
步骤二:创建自动化其次,在automation.yaml 内创建一个自动化来更新输入数字实体的值。这个自动化会在每次有灯的状态发生变化时触发,并统计当前所有打开的灯的数量,然后将这个数量更新到输入数字实体中。
automation:
- alias: "更新开着的灯数量"
trigger:
- platform: template
value_template: "{{ 'on' in states.light }}"
action:
service: input_number.set_value
data_template:
entity_id: input_number.lights_on_count
value: "{{ states.light | selectattr('state', 'eq', 'on') | list | count }}"
步骤三:创建 html-template-card最后,用 html-template-card 卡片,用来显示滚动提示,并显示开着的灯的数量。
type: 'custom:html-template-card'
title: 家中开着的灯数量
content: |
<marquee>家中{{ states('input_number.lights_on_count') | int }}盏灯开着</marquee>
在这个配置中,html-template-card 会实时显示输入数字实体 input_number.lights_on_count 的值,并随着自动化的触发而更新,实现了滚动提示开着的灯的数量的功能 注意: states() 函数后面添加 | int 过滤器,可以将状态值转换为整数,确保只显示整数部分,而不显示小数点
|