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

标题: N1 hass设置自动清理&更换数据库,防止爆空间 [打印本页]

作者: ruike007    时间: 2018-11-13 17:20
标题: N1 hass设置自动清理&更换数据库,防止爆空间
本帖最后由 ruike007 于 2018-11-13 17:24 编辑

不得不说N1真的是一个高性价比的盒子,很多人都用它来搭hass,论坛里也是各种方案教程都有,这里就不赘述了。
不过。盆友们使用几天后就会发现一个比较严重的问题,hass的历史数据太大,很快就能占满设备本来就不多的空间(3-5G),导致N1无法启动或服务卡死。
特别是多设备的时候,一天能有1G+的日志,5天内妥妥的占满100%。(当然  有外置弄外置磁盘的除外  哈哈)
其实这个问题,官方也是有解决方案,一个是本地储存,然后抛弃历史数据,一个是远程储存。本地储存可以配置 configuration.yaml
vim  vi  nano xftp 看你喜欢。。。
然后找到recoder,配置如下:

  1. recorder:
  2.   # 可选项,以下配置表示每2天进行一次数据库“事件表”和“状态表”的清理动作;缺省值为永不清理。
  3.   purge_interval: 1
  4.   # 当配置了purge_interval后配置,以下配置表示在清理数据库历史记录时保留最近5天的记录。
  5.   purge_keep_days: 5
复制代码

确认配置没错,重启就生效了、
同时,你也可以根据你的空间配置更短的时间,也可以直接配置不记录:像下面的配置:


  1. # 通过配置exclude,排除一些域与实体相关的信息,不记录到数据库(除此之外都记录)
  2. recorder:
  3.   exclude:
  4.     domains:
  5.       - automation
  6.       - weblink
  7.       - updater
  8.     entities:
  9.       - sun.sun # Don't record sun data
  10.       - sensor.last_boot # Comes from 'systemmonitor' sensor platform
  11.       - sensor.date
复制代码


或者 你也可以配置保存到自己的外部数据库里,这里以mysql为例:
(系统默认是使用SQLite,基本支持各种数据库)

安装数据库支持:
(这部分论坛也有,不过之前的教程都不是基于arrch64的环境,所有这里有点不一样)


  1. sudo apt-get install default-libmysqlclient-dev
  2. pip3 install --upgrade mysqlclient
复制代码


然后在 configuration.yaml中加入


  1. recorder:
  2.   db_url: mysql://用户:密码@地址/数据库名?charset=utf8
复制代码


重启生效
数据库清理、包含、排查与方案一一致





作者: tang5275    时间: 2018-11-14 00:05
本帖最后由 tang5275 于 2018-11-14 00:07 编辑

增长快,你是不是也用了dc1 或者 m1插件了


作者: cnbb    时间: 2018-11-14 10:48
tang5275 发表于 2018-11-14 00:05
增长快,你是不是也用了dc1 或者 m1插件了

M1、A1都用了,还有S7的可惜目前就一个M1能正常看到
作者: ruike007    时间: 2018-11-14 12:29
tang5275 发表于 2018-11-14 00:05
增长快,你是不是也用了dc1 或者 m1插件了

是的 DC1和M1都增长很快,后面做了些排除就好很多了,不过一天也要300M左右的数据
作者: tang5275    时间: 2018-11-14 14:22
ruike007 发表于 2018-11-14 12:29
是的 DC1和M1都增长很快,后面做了些排除就好很多了,不过一天也要300M左右的数据 ...

我是只有两个dc1,只存储电压和功率信息,每次点击历史或者查询,都会死机,打开数据库,一天好几十页的数据,都是dc1的状态
作者: ruike007    时间: 2018-11-14 14:28
tang5275 发表于 2018-11-14 14:22
我是只有两个dc1,只存储电压和功率信息,每次点击历史或者查询,都会死机,打开数据库,一天好几十页的 ...

配置了exclude是吗  我测试用mysql会好很多  3个DC1,只记录9个开关状态和电压功率 可以存储3天以上的数据
作者: tang5275    时间: 2018-11-14 16:00
本帖最后由 tang5275 于 2018-11-14 16:02 编辑
ruike007 发表于 2018-11-14 14:28
配置了exclude是吗  我测试用mysql会好很多  3个DC1,只记录9个开关状态和电压功率 可以存储3天以上的数 ...

我只设置了记录哪些东西,数量太多,太杂,查询时候斐讯N1 会瞬间占很多资源

实际上还有个需要清理,就是docker容器的日志,我曾经不知道怎么回事,ha容器产生了3个g的日志
作者: ruike007    时间: 2018-11-14 16:12
tang5275 发表于 2018-11-14 16:00
我只设置了记录哪些东西,数量太多,太杂,查询时候斐讯N1 会瞬间占很多资源

实际上还有个需要清理,就是 ...

查看瞬间确实会占用很多资源  所以还是需要进行定时压缩数据的。
我是python3虚拟环境装的  没用docker,所以不太清楚。正常这种情况是有发生什么错误
作者: tang5275    时间: 2018-11-14 16:17
ruike007 发表于 2018-11-14 16:12
查看瞬间确实会占用很多资源  所以还是需要进行定时压缩数据的。
我是python3虚拟环境装的  没用docker, ...

哦哦,你是安装了python 然后又pip 安装的homeassistant?
作者: ruike007    时间: 2018-11-14 17:03
tang5275 发表于 2018-11-14 16:17
哦哦,你是安装了python 然后又pip 安装的homeassistant?

是的  个人比较喜欢纯一点的环境
作者: jick    时间: 2018-11-18 10:05
谢谢,这个真是的需要的。
作者: ywsyhy020802    时间: 2018-11-19 09:57
tang5275 发表于 2018-11-14 16:00
我只设置了记录哪些东西,数量太多,太杂,查询时候斐讯N1 会瞬间占很多资源

实际上还有个需要清理,就是 ...

同样问题,大佬了解如何能设置自动清理Docker日志吗?
作者: tang5275    时间: 2018-11-19 11:09
ywsyhy020802 发表于 2018-11-19 09:57
同样问题,大佬了解如何能设置自动清理Docker日志吗?

docker 日志不多啊 可以写一个定时任务吧,比如每周星期几 清空一下日志
作者: yd829    时间: 2018-11-21 18:51
ruike007 发表于 2018-11-14 12:29
是的 DC1和M1都增长很快,后面做了些排除就好很多了,不过一天也要300M左右的数据 ...

把配置改成这样
recorder:
  purge_interval: 1
  purge_keep_days: 2
  include:
    domains:
      - media_player
仅记录media_player其它全不记录,这样一天30k妥妥的y
作者: ruike007    时间: 2018-11-22 10:44
yd829 发表于 2018-11-21 18:51
把配置改成这样
recorder:
  purge_interval: 1

可以呀  不过我要每天的功率数据  所以还是每天几百兆数据
作者: alisdream    时间: 2018-12-3 09:18
正好需要~周末回去把数据库设置成分离的。正好有个docker数据库一直闲置。打开历史加载的过程中大部分都是在读取数据库。而且好像是单线程…
作者: 废柴工程师    时间: 2019-2-13 13:36
感谢楼主,这次不会爆内存了
作者: welkin2018    时间: 2019-4-13 18:13
设置自动清理
作者: tangceng    时间: 2019-4-16 21:37
这个非常 重要,我的linux原来也有一阵日志爆满,把整个硬盘都搞满了
作者: zhongjiafa    时间: 2019-4-24 18:04
这个正是我需要的,弄得我每次都手动重起才可用。弄这个试试看看怎么样。
作者: my12005    时间: 2019-5-22 13:51
厉害了word楼主!
作者: kittyme    时间: 2019-5-24 16:03
试了一下,这个教程不适合纯小白,我跟着步骤一个一个来也搞不来
作者: pigcais    时间: 2019-6-9 12:57
回去挂个硬盘上去
作者: pigcais    时间: 2019-6-9 12:59
能直接挂外接移动硬盘吗? 需要怎么设置呢?谢谢
作者: telanx    时间: 2019-6-25 17:24
楼主厉害啊,我可能找到我n1动不动失联的原因了。

本来装完各种东西后,n1就剩下8%的空间了。。。。汗。
作者: skylive    时间: 2019-8-3 18:01
mark 一下
作者: gldon    时间: 2020-2-22 14:00
手上拿着N1,奈何不敢动
作者: gldon    时间: 2020-2-22 14:02
楼主是用哪种方式安装的HA?
作者: 风雨    时间: 2020-2-22 16:25
感谢大神分享,翰思彼岸有你更精彩
作者: szymou    时间: 2020-3-18 17:59
看完这篇还有不懂,看下面这篇,思路就清晰很多了:
https://bbs.hassbian.com/thread-1413-1-1.html
作者: caoshuai    时间: 2021-1-18 10:39
MARK 自动清理内存
作者: 李凯    时间: 2021-7-12 14:28
n1的openwrt系统,ha装在docker里需要怎么操作呢大佬
作者: ruike007    时间: 2021-9-26 17:02
李凯 发表于 2021-7-12 14:28
n1的openwrt系统,ha装在docker里需要怎么操作呢大佬

按照docker教程安装就好啦,dokcer会简单些
作者: SHIWC    时间: 2021-12-15 20:31
所以recoder从哪里找出来。小白求教
作者: zhuguoqing    时间: 2022-11-13 23:19
支持老铁,好帖要顶
作者: zhuguoqing    时间: 2022-11-15 13:57

recorder:
  # 可选项,以下配置表示每2天进行一次数据库“事件表”和“状态表”的清理动作;缺省值为永不清理。
  purge_interval: 1  这里的1 不是代表每天清理一次数据库吗??

  # 当配置了purge_interval后配置,以下配置表示在清理数据库历史记录时保留最近5天的记录。
  purge_keep_days: 5
作者: pat2984    时间: 2022-11-30 18:36
zhuguoqing 发表于 2022-11-15 13:57
recorder:
  # 可选项,以下配置表示每2天进行一次数据库“事件表”和“状态表”的清理动作;缺省值为永不 ...

同问zsbszsbs
作者: popmonker    时间: 2024-3-25 10:05
谢谢分享




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5