本帖最后由 macliang 于 2022-2-21 15:16 编辑
前段时间想统计一下HA中的开关实体开了多少时间,关了多少时间,在论坛中咨询了一下,yuyuye朋友给出了一个直接用history_Stats集成的解决方案,试了一下,发现很是方便,特共享一下方法给大家。history_Stats集成是HA的一个内置集成,其数据来源于history集成,可以统计实体的特定状态的持续累计时间,比如从特定时间开始某个灯一共亮了多长时间等。
history_Stats集成在configuration.yaml中定义一个sensor,然后在面板中进行调用,一般定义用法如下:
sensor:
- platform: history_stats
name: Lamp_on_Chufang #定义该传感器名称,在面板中用这个名称进行调用显示
entity_id: switch.haa_4f97c3 #定义要统计的实体id,我这里是一个开关
state: "on" #定义要统计的状态,我这里要统计开灯的总时间,所以状态值为“on”
type: time #定义统计类型,可以是time:时间,ratio:百分比,count:次数
start: "{{ now().replace(hour=0, minute=0, second=0) }}" #定义统计的起点时间,这里定义的是当天的零时,后面距离几个用法
end: "{{ now() }}" #定义统计的截止时间,这里是当前实时时间
统计的时间窗可以用起止时间定义,也可以用持续时间定义,举几个例子如下:
#从早上6点开始,持续1天12个半小时
start: "{{ now().replace(hour=6, minute=0, second=0) }}"
duration:
# supports seconds, minutes, hours, days
days: 1
hours: 2
minutes: 30
#从本周零时开始到现在
start: "{{ as_timestamp( now().replace(hour=0, minute=0, second=0) ) - now().weekday() * 86400 }}"
end: "{{ now() }}"
最后再面板中调用定义好的history_stats实体sensor.lamp_on_chufang即可显示这个厨房灯当天开的总时间了。
下面是在面板中的调用实例和整体显示效果,灯开关的下面显示的就是每个灯当天开的总时间。
|