找回密碼
 立即註冊
    查看: 128|回覆: 0

    recorder 設定完全指南:先量再排除,以及那些已經改掉的預設值

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 08:38:08 | 顯示全部樓層 |閱讀模式
    Home Assistant 用久了變慢,很大一部分是資料庫的問題。但在動手改設定之前要先做一件事:量。網路上大部分的 recorder 教學會直接給你一份設定叫你抄,而那些設定裡的數字,有些是在描述一個已經不存在的 Home Assistant。

    Home Assistant 用久了變慢,很大一部分是資料庫的問題。但在動手改設定之前要先做一件事:量。網路上大部分的 recorder 教

    這一篇的順序是:量現況 → 找出誰在狂寫 → 針對性排除 → 驗證寫入真的降了 → 清掉已經記進去的 → 確認長期資料沒被一起刪掉。每一步都有「你會看到什麼」。

    先搞懂 recorder 在做什麼

    每一次實體狀態變化,recorder 都會寫一筆進資料庫。一個溫度感測器每 10 秒回報一次,一天就是 8,640 筆。十個這種感測器,一年三千多萬筆。

    資料庫大本身不是問題,問題是「大而無用」。 你不會想看三個月前某一秒的溫度,但那筆資料還是會拖慢每一次查詢。

    ⚠ 先講兩個已經改掉的預設值(照舊教學做會算錯帳)

    這是這篇最重要的一段,因為錯的時候完全沒有症狀:


    • commit_interval 現行預設是 5 秒,不是 1 秒。 很多教學說「預設 1 秒,改成 30 就是少 30 倍寫入」——按現行預設算,實際只有 6 倍。省下來的沒有你以為的多
    • purge_keep_days 現行預設是 10 天。也就是說你什麼都不設,它本來就只留 10 天


    這類錯誤最難發現:版本號沒變、語法沒變、不會報錯,那段建議只是在描述一個已經不存在的系統。所以下面每一個數字我都會標明是官方現行值。

    步驟 1:先量現在的資料庫多大

    不量就改,之後你不會知道有沒有效。

    到 設定 → 系統 → 修復,按右上角三個點 → 系統資訊,往下捲到 Recorder 那一段。

    你會看到一行 Estimated database size (MiB),後面一個數字,例如 1843.21。

    把這個數字抄下來,連同今天的日期。 這是你唯一的基準線。

    找不到 Recorder 那一段 → 往下捲,系統資訊頁很長,recorder 通常在中間偏後。

    數字是 0 或沒有這一行 → 你可能用的是 MariaDB 或 PostgreSQL,估算功能對外部資料庫不一定可用。那種情況直接去資料庫伺服器上查表大小。

    步驟 2:找出誰在狂寫(不要憑感覺)

    這一步是整篇的核心。 不查就直接抄一份 exclude 清單,你會排除掉一堆根本沒在寫的東西,而真正的元兇還在。

    兩條路,看你的安裝方式選。

    路 A:SQLite Web(HA OS / Supervised,最直覺)

    到 設定 → 應用程式 → 應用程式商店,搜尋 SQLite Web,安裝 → 啟動 → 打開。

    ⚠ 這個選單改過名字:2026.2 起「附加元件(Add-ons)」在介面上叫應用程式(Apps),社群倉庫的名稱也一併改了。舊教學寫的「設定 → 附加元件」現在是設定 → 應用程式,而且找不到時不會有任何提示。

    你會看到一個網頁介面,左邊列出資料庫裡所有的表:states、states_meta、state_attributes、statistics、statistics_short_term、events 等等。

    點上方的 Query 分頁,貼上:

    以下還有約 82% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-11-10 00:38 , Processed in 0.125313 second(s), 25 queries .

    快速回覆 返回頂部 返回列表