请选择 进入手机版 | 继续访问电脑版

『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 273|回复: 4

[插件发布] 在官方插件基础上修改,让hostory stats历史记录精确到秒

[复制链接]

6

主题

110

帖子

863

积分

高级会员

Rank: 4

积分
863
金钱
748
HASS币
50
发表于 2020-6-26 02:02:36 | 显示全部楼层 |阅读模式
本帖最后由 lyfff 于 2020-6-26 02:05 编辑

官方的传感器插件中有个History Stats,专门用于记录实体处于某个状态的时长。例如你要记录某个switch全天处于“On”状态的时长,那么可以在sensor:里面加入:
- platform: history_stats
  name: XXX On
  entity_id: switch.xxx
  state: 'on'
  type: time
  end: '{{ now() }}'
  start: >
    {{ now().replace(hour=0).replace(minute=0).replace(second=0) }}

BUT, 这个官方传感器记录的时间长度是以小时为单位,而且精度只到0.01。也就意味着这个传感器最快也要(0.01h*3600s/h=)36秒才会更新一次数值。这对于我这种想通过观察某个设备的使用时间精确到多少来处理事情,就没法实现了。Inspired by 这个帖子。我对官方的插件做了一点点修改。改成了可以精确到秒的"History Stats in Seconds 传感器"自定义插件。
效果如下:
使用前(随便找个用官方插件的图):
1.png
使用后:
2.png
这样,我就可以通过知道我的水泵开了多少秒,计算水在水管里面的什么位置了。

插件使用方法:
将插件放到custom_components目录,配置方法与官方文档完全一致,只是将platform: history_stats改为platform: history_stats_in_seconds。

游客,如果您要查看本帖隐藏内容请回复





评分

参与人数 1金钱 +20 HASS币 +10 收起 理由
+ 20 + 10 厉害了word楼主!

查看全部评分

大佬: 请勿咨询任何问题,所有问题都能 Google 到答案
回复

使用道具 举报

15

主题

362

帖子

1941

积分

金牌会员

Rank: 6Rank: 6

积分
1941
金钱
1579
HASS币
0
发表于 2020-6-26 09:39:03 | 显示全部楼层
这将会急剧加大数据库的容量吧
回复

使用道具 举报

2

主题

179

帖子

1283

积分

金牌会员

Rank: 6Rank: 6

积分
1283
金钱
1104
HASS币
0
发表于 2020-6-26 09:48:42 | 显示全部楼层
厉害,虽然我还不知道我能拿来干啥
回复

使用道具 举报

24

主题

522

帖子

2373

积分

论坛技术达人

积分
2373
金钱
1846
HASS币
0

卓越贡献

发表于 2020-6-26 09:52:53 | 显示全部楼层
厉害!对于一些安全性或是类似于浇花阀门的。用来看记录是最好的。但是会不会加大数据库的记录以及性能的运行呢?感谢分享!
回复

使用道具 举报

6

主题

110

帖子

863

积分

高级会员

Rank: 4

积分
863
金钱
748
HASS币
50
 楼主| 发表于 2020-6-26 12:28:16 | 显示全部楼层
showphi 发表于 2020-6-26 09:39
这将会急剧加大数据库的容量吧

貌似不会,但具体的【不良反应】应该还属“尚不明确”。我的情况是,传感器还是需要一个自动化来实现每秒更新,否则更新频率还是36秒1次。我只在要计算时间的时候让自动化运行,所以只有在这段时间内会增加数据库体积。
这个情况是因为我不会python,所以代码并不是很完善导致的,看看有什么大佬帮改的好一点吧...
大佬: 请勿咨询任何问题,所有问题都能 Google 到答案
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2020-7-8 09:41 , Processed in 0.083491 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表