找回密码
 立即注册

微信扫码登录

搜索
查看: 45|回复: 0

[经验分享] 历史记录不更新的问题及解决办法

[复制链接]

2

主题

66

回帖

1742

积分

金牌会员

积分
1742
金钱
1674
HASS币
0
发表于 2 小时前 | 显示全部楼层 |阅读模式
前段时间homeassistant中的实体历史记录突然不进行更新了,历史曲线一直拉直线,网上及论坛查找了各种办法,数据库日志也没有写入错误或数据库上锁的记录,代码小白也通过ai测试了各种命令行工具也没解决,每次都只能重启系统,但过一两天又开开始不更新历史数据了,百思不得琦姐。偶然的机会看到有SQL数据库集成,通过添加数据库集成添加一个实体.具体步骤如下: 添加SQL 集成:在 UI 里强制要求你当场填写一条 SELECT,否则不让点“提交”。先随便写一条能通过的占位语句,把集成建起来,再回头用 YAML 批量加传感器即可。 步骤如下:

✅ 最快过场办法(30 秒)
  • 在弹出的「Select 查询*」输入框里粘一条绝对能成功的占位语句:
    SELECT 'ok' as dummy
  • 「列名」输入框写
    dummy
  • 点「提交」→ 集成创建成功。
    (此时会多出一个毫无用处的 sensor.dummy,稍后删掉即可。)

  • 配置yaml文件:# configuration.yaml
    sql:  - name: Top DB Writer    query: >      SELECT states_meta.entity_id, COUNT(*) AS cnt      FROM states      JOIN states_meta ON states.metadata_id = states_meta.metadata_id      WHERE states.last_updated_ts > strftime('%s', 'now', '-10 minutes')      GROUP BY states_meta.entity_id      ORDER BY cnt DESC      LIMIT 1;    column: entity_id 3684507d-127e-40e9-b0bb-44dde489f160.png
  • 以上方法是通过Ai逐步修改得到的,得到的实体状态就是「过去 10 分钟写入最频繁的实体 ID」。通过这个实体ID发现是前段时间新添加的拓竹打印机摄像头,该实体因为是图像数据,不断的向数据库写入大量数据导致数据更新异常。
  • 配置yaml文件,排除掉不需要记录的实体或类型recorder:  auto_purge: true  auto_repack: true  purge_keep_days: 7    commit_interval: 3  exclude:    domains:      - automation      - script    entity_globs:      - sensor.*_cpu_*      - sensor.*_uptime      - sensor.homeassistant_*_db      - sensor.feng_su_2      - sensor.*_xin_hao_qiang_du*      - sensor.*_xin_pian_wen_du*      - sensor.miwifi*      - sensor.p1s_*      - image.p1s_01p00c561500806_camera      - sensor.espmmw_static_energy_2      - sensor.espmmw_static_distance_2      - sensor.espmmw_static_energy      - sensor.espmmw_static_distance
  • 至此,经过两天验证,数据写入问题得到解决,历史曲线终于不再直线了!!!如有碰到此类问题的朋友可以借鉴以上方法排查并解决问题!!!

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-12-30 18:08 , Processed in 1.333603 second(s), 9 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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