|
|
前段时间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
- 以上方法是通过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
- 至此,经过两天验证,数据写入问题得到解决,历史曲线终于不再直线了!!!如有碰到此类问题的朋友可以借鉴以上方法排查并解决问题!!!
|
|