在最新版本中,Home Assistant 将原本的“服务 (Services)”更名为**“动作 (Actions)”**,请务必注意这一界面变化。
以下提供三种方法,由浅入深,小白建议优先使用
方法一
。
方法一:手动清除(最安全、最推荐)
这个方法是通过 Home Assistant 自带的工具来清理旧数据,不会误删配置,适合觉得最近硬盘空间不够用,想立刻释放空间的情况。
- 进入开发者工具: 在左侧菜单栏点击 “开发者工具 (Developer Tools)”。
- 切换到“动作”标签页: 在顶部菜单中,点击 “动作 (Actions)”(旧版本叫“服务”)。
- 搜索清理动作: 在搜索框中输入 recorder.purge,点击出现的 “Recorder: Purge”。
- 设置清理参数:
- Keep days (保留天数):输入你想保留最近几天的历史。例如输入 7,表示只保留最近 7 天的数据,7 天以前的全部删除。
- Repack (重组数据库):一定要勾选这个!
- 解释:如果不勾选,数据虽然被标记为删除,但数据库文件大小往往不会变小(类似电脑的回收站)。勾选后才会真正压缩文件,释放硬盘空间。
Apply filter (应用过滤器):一般不勾选。
- 解释:如果你只想删除特定几个传感器的历史,可以勾选这个并在下方添加实体 ID,但为了释放空间,通常是全量清理,所以不勾选。
执行清理:点击绿色的 “执行动作 (Perform Action)” 按钮。
- 注意:点击后界面不会有明显提示“完成”,但后台已经开始工作了。如果你的数据库很大(比如几个 GB),这个过程可能需要几分钟甚至更久,请耐心等待,不要重复点击。
方法二:自动维护(一劳永逸)
如果不想每次都手动删,可以通过修改配置文件,让 Home Assistant 每天自动清理过期的记录。
安装/打开 File Editor:确保你安装了 “File Editor” 或 “Studio Code Server” 插件来编辑配置文件。
编辑 :打开 /config/configuration.yaml 文件。
添加/修改 Recorder 配置:在文件中找到 recorder: 字段(如果没有就手动从新的一行添加)。复制以下内容:
recorder: # 每天自动清理,只保留最近 10 天的数据(根据你的硬盘大小调整,SD卡建议 5-7 天)
purge_keep_days: 10
# 开启自动重组,确保存储空间被真正释放
auto_repack: true
# (可选) 如果你想彻底屏蔽某些传感器不记录历史,可以在这里排除
exclude:
domains:
- automation
# 不记录自动化的触发历史[()][()]
- update
# 不记录更新实体的历史
entities:
- sensor.date
# 不记录日期变化[()][()]
- sensor.time
# 不记录每分钟的时间变化(这个非常占空间!)```[()][()]
重启系统:保存文件后,去 设置 -> 系统 ->在此右上角点击重启 Home Assistant 以使配置生效。
方法三:核弹级清理(彻底重置)
如果你的数据库文件 (home-assistant_v2.db) 已经损坏,或者大到几十 GB 且上述方法无效,可以直接删除它。后果是你会失去所有的历史记录图表(变成空白),但设备配置和自动化都不会丢失。
- 停止 Home Assistant:
- 进入 开发者工具 -> YAML,点击 “检查配置” 确保没报错。
- 你需要通过 SSH 或者宿主机终端操作。输入命令:ha core stop (如果是 HAOS)。
- 小白替代方案:直接在网页端点 重启,在重启还没完成的一瞬间(网页失去连接时),去执行第 2 步,但不够安全。推荐安装 “Terminal & SSH” 插件来操作。
删除数据库文件:使用 File Editor 或 Samba 访问 /config 文件夹。找到名为 home-assistant_v2.db 的文件,直接删除。
重启电源/系统:拔掉电源重插,或者在终端输入 ha core start。系统启动后会自动创建一个全新的、只有几 KB 大小的空数据库文件。
如何验证空间是否减少?
- 清理前:去 设置 (Settings) -> 系统 (System) -> 存储 (Storage),查看当前磁盘使用率。
- 执行“方法一”或“方法三”后:等待约 5-10 分钟(让系统完成压缩),再次回到存储页面,你会发现“使用量”明显下降。