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

    長期數據:先搞清楚 HA 已經幫你留了什麼,再決定要不要架 InfluxDB

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 02:58:31 | 顯示全部樓層 |閱讀模式
    流傳最廣的一句話是:「HA 的資料庫只留幾天,想看長期趨勢就要把資料搬到 InfluxDB。」這句話的前半是對的,後半是錯的 —— 而且因為它,很多人架了兩個服務來解決一個自己沒有的問題。

    流傳最廣的一句話是:「HA 的資料庫只留幾天,想看長期趨勢就要把資料搬到 InfluxDB。」這句話的前半是對的,後半是錯的 —— 而且因為

    實際情況是這樣的:Home Assistant 的 `recorder` 有兩套資料,被 purge 清掉的只有其中一套。


    • 狀態歷史(states) —— 每一次狀態變化的完整紀錄。這一套會被 purge 清掉,預設只留 10 天
    • 長期統計(long-term statistics) —— 每小時一筆的最小值、最大值、平均值(或累積量)。這一套不會被 purge 清掉,是永久保留的


    這不是傳聞。去翻 Home Assistant 原始碼裡負責 purge 的那支程式,它只處理兩張表:`statistics_short_term`(五分鐘一筆的短期統計)和 `statistics_runs`。存著每小時統計的那張 `statistics` 表,從頭到尾不在它的處理範圍內。

    所以:你把 `purge_keep_days` 設成 3 天,三年前每小時的室內溫度仍然在資料庫裡,而且你現在就打得開。

    這一篇的順序因此是:先確認你現在已經有什麼 → 判斷你缺的是不是真的要 InfluxDB → 真的需要再裝。前兩步做完,很多人就可以收工了。

    步驟 1:先看你已經有的長期統計


    • 到 開發者工具 → 統計(Statistics 分頁)


    你會看到一張表,列出系統裡所有有長期統計的實體,每一列有實體 ID、統計類型、單位,以及最右邊的幾個圖示。

    如果看不到「統計」這個分頁 → 到個人資料頁把進階模式打開。

    這張表怎麼讀:


    • 出現在這張表上的實體 = 它的資料被永久保留
    • 沒出現的 = 它只有 10 天的狀態歷史,過期就真的沒了


    差別在於實體有沒有設 `state_class`。規則是:


    • `state_class: measurement`(溫度、濕度、功率、CO2 這種「當下的量測值」)→ 存每小時的最小值、最大值、平均值
    • `state_class: total` 或 `total_increasing`(累計用電量、水表、流量這種「一直累加的數字」)→ 存每小時的累積量
    • 沒有 `state_class` → 沒有長期統計


    步驟 2:實際把三年前的資料叫出來看

    不要只看表格,實際查一次,你才會相信它真的在。


    • 到 歷史 頁
    • 選一個你有的溫度感測器
    • 把時間範圍拉到 最近一年(或你 HA 裝多久就拉多久)


    你會看到一條完整的曲線,從一年前一路到現在,而且是有陰影帶的 —— 那條線是每小時平均值,上下的陰影是那一小時的最小值和最大值。

    這就是長期統計的長相。 它跟短期歷史的差別一眼就看得出來:短期歷史是鋸齒狀的原始資料點,長期統計是平滑的線加陰影帶。

    兩種看不到東西的狀況:


    • 曲線只有最近十天,前面是空的 → 這個實體沒有 `state_class`,只有狀態歷史。回步驟 1 的統計表確認
    • 整條線都在,但你只裝了三個月 → 那就是全部了,資料不會憑空出現


    步驟 3:判斷你到底缺什麼

    現在你知道手上有「每小時的 min / max / mean / sum,永久保留」。對著下面這張表,看你想做的事落在哪一格:


    • 想看「這三年夏天有沒有一年比一年熱」 → 內建的就夠。每小時平均值完全足以看出季節趨勢
    • 想比較「客廳和臥室哪間比較悶」 → 內建的就夠,但要用對卡片(步驟 4)
    • 想看「冷氣一開,溫度幾分鐘內掉幾度」 → 內建的不夠。這需要分鐘級甚至秒級的原始值,而長期統計只有每小時一個點
    • 想算「室內外溫差 × 冷氣功率」這種跨實體的算式 → 內建的不夠。HA 的圖表不能做跨實體運算
    • 想統計「門被開過幾次」「某個人不在家的時段」這種非數值的東西 → 內建的不夠。沒有 `state_class` 就沒有長期統計
    • 想把圖表做得漂亮、可以疊多條線、可以自訂顏色和軸 → 內建的不夠


    全部落在前兩項 → 做完步驟 4 就可以收工,不用往下看。

    有任何一項落在後四項 → 從步驟 5 開始裝 InfluxDB 和 Grafana。

    步驟 4:先把內建的用好(大部分人只需要這一步)

    4-1 用對卡片:statistic-graph,不是 history-graph

    HA 的圖表卡片有兩種,很多人只用過第一種:

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

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

    本版積分規則

    延伸閱讀

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

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

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

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