跳至內容

一份 Home Assistant 備份,就已經帶走了 Pi Agent 幾乎所有的東西

你的對話、供應商金鑰、Skill 跟 rclone 授權,全都放在 Home Assistant 主機上的同一個資料夾裡。你可能早就在跑的備份能把這個資料夾連同其他一切一起帶走——但前提是你有選這個 add-on,而且你證明過一次這份存檔真的能還原。
2026年9月12日
一份 Home Assistant 備份,就已經帶走了 Pi Agent 幾乎所有的東西
OdooBot
keep it safe
Pi Agent 指南 · 第 14 篇

一份 Home Assistant 備份,就已經帶走了 Pi Agent 幾乎所有的東西

你的對話、供應商金鑰、Skill 跟 rclone 授權,全都放在 Home Assistant 主機上的同一個資料夾裡。你可能早就在跑的備份能把這個資料夾連同其他一切一起帶走——但前提是你有選這個 add-on,而且你證明過一次這份存檔真的能還原。這篇要講清楚什麼會被帶走、什麼被刻意排除,以及那五分鐘怎麼把一份備份變成一份真正的復原計畫。

720 MB
工具鏈被排除在每份存檔之外,因為它會自己重新下載
3-8 分鐘
還原之後、影片管線能用之前的重建時間
一週一次
一個合理的節奏,加上每次升級前手動備份一次
為什麼現在很重要

一張壞掉的 SD 卡,代價比以前更高了

你的 Home Assistant 主機已經在管燈光、門鎖跟能源儀表板。以前弄丟它,頂多是花一個晚上重新配對裝置。Pi Agent 加上了一層重建起來難得多的東西:你每一次的對話、你設定過的每一把供應商金鑰、你裝過或寫過的每一個 Skill,還有上傳到 Google Drive 的 rclone 授權。加起來可能是好幾週的心血。

有四種狀況常見到值得先做好準備:

  • 儲存裝置故障。 SD 卡或硬碟可能毫無預警地變得讀不出來。
  • 升級失敗。 一次 Home Assistant 版本更新或 add-on 更新,可能讓服務起不來,沒有最近的備份,要 rollback 會很困難。
  • 手滑誤刪。 在 File editor 或 SSH 裡打錯一個指令,就把你需要的設定砍掉了。
  • 換主機搬家。 從 Pi 4 換到 Pi 5、從 Pi 換到 NUC,或搬到另一棟建築物,這種操作之所以行得通,就是因為有備份存在。

Home Assistant Backup 會把你選的系統設定、資料庫、共用資料,加上每個你選的 add-on 的 /data/ 目錄,打包成一個 .tar 存檔。Pi Agent 就是為了搭上這班順風車才以 add-on 的形式運作,這樣它的資料才能跟著同一個存檔走。不需要另外設第二套備份系統,也不需要再多寫一個排程工作。

Backup 還是 snapshot? 目前的 Home Assistant 介面把這個功能叫做 Backup。比較舊的文件跟社群討論串則把同一個東西叫做 snapshot(快照)。這兩個名字指的是同一套機制,這篇文章兩個都會用。
什麼會被帶走

成果會進存檔;工具鏈不會

講白一點

把它想成搬家。你會打包相簿跟文件,不會打包自來水,因為新家本來就有水龍頭。Pi Agent 的備份劃的就是同一條線:你的對話跟金鑰是相簿,它下載下來的 Python 環境是自來水。

你完全不用透過 SSH 打開這個資料夾,但看過它的結構,這條界線就一目瞭然了。

在 /data/pi-agent/ 底下裝著什麼會進存檔嗎?
sessions/*.jsonl每一次對話,一個 Session 一個檔案
models.json供應商設定跟你的 API 金鑰
skills/你安裝或自己寫的 Skill
auth.jsonOAuth 登入 token,檔案權限 600
home/pi-cwd-YYYYMMDD/coding agent 建立的工作目錄
projects/<name>/final.mp4完成的影片、script.md 跟配音輸出
rclone/rclone.conf你的 Google Drive 授權 token
venv/影片工具用的 Python 環境不會
playwright-cache/Playwright 用的 Chromium 瀏覽器不會
projects/<name>/clips/*.webmPlaywright 錄下的原始畫面不會
projects/<name>/segments/*.mp4ffmpeg 產生的中間段落不會

這四項排除是刻意的,理由是大小。 venv/playwright-cache/ 加起來大約用掉 720 MB。把它們包進去,每份存檔都會多將近 1 GB,保留十份備份就多花大約 10 GB,去存那些會自己重新下載的檔案。clips 跟 segments 可以從你留下來的腳本跟旁白重新生成。

有一個後果會讓人意外。那個空的標記檔 .video-tools-installed 會進存檔——但光還原它,並不會跳過那次下載,因為啟動檢查同時也要找那個 Python 執行檔。

flowchart TD
  A["還原之後 add-on 啟動"] --> B{"Is .video-tools-installed there?"}
  B -->|"是,它是從存檔裡帶回來的"| C{"Is venv/bin/python3 there?"}
  B -->|"任何"| D["重新下載,3-8 分鐘"]
  C -->|"否,venv 被排除在外了"| D
  C -->|"是"| E["跳過,立刻就緒"]
  D --> F["Log 顯示 video-tools-init done"]
為什麼那段等待會再回來那個檢查同時需要標記檔跟執行檔。一次還原只會帶回標記檔,帶不回執行檔,所以下載會再跑一次。
動手做一份

五個步驟,大約五分鐘

  1. 步驟 1

    打開備份頁面

    前往 Settings → System → Backups。第一次可能是空的,也可能已經顯示某個既有排程做出來的東西。2023 年之前的版本,這個功能放在 Settings → System → Server Controls;那條路徑現在已經不存在了。

  2. 步驟 2

    點 Backup now,再點 Manual backup

    在資料選擇畫面,第一次全部保持勾選:設定、每個 add-on、共享資料夾跟媒體。這樣才能把 Woow HA Pi Agent 跟它的 /data/pi-agent/ 包進存檔裡。之後你可以拿掉大型媒體來縮小檔案——但要讓 Pi Agent 保持勾選。

  3. 步驟 3

    取一個你認得出來的名字

    把預設那個版本加時間戳記的通用名稱,換成有意義的: 2026-08-14-fullbefore-pi-agent-upgradeprovider-keys-configured。半年後,這是唯一能告訴你該挑哪一份存檔的東西。

  4. 步驟 4

    下載 Backup Emergency Kit

    2025 年後的 Home Assistant 版本會自動產生一把加密金鑰,並提供給你 Backup Emergency Kit,一個裝著那把金鑰的 .txt 檔。把它放進密碼管理器,或印出來。讓它遠離主機跟存檔本身——不要放在跟它能解鎖的檔案同一個雲端資料夾裡。

  5. 步驟 5

    選擇目的地,再把一份副本帶離這台裝置

    本地儲存、Nabu Casa、掛載的網路儲存空間,或像 Google Drive BackupSamba Backup。家用備份通常花 1-10 分鐘。出現在清單裡之後,用它的選單下載那個 .tar ,把這份副本存到別的地方。

講白一點

這把加密金鑰不是一個能重設的密碼。它是保險箱唯一的鑰匙。如果保險箱跟鑰匙都弄丟了,沒有任何人——包括 Home Assistant 本身——能幫你打開。沒有官方的後門。

節奏: 一週一次是個實用的預設值,能把任何損失限制在七天內。每次重大變動前——Pi Agent 升級、Home Assistant 升級、大規模改寫自動化——都再加做一次手動備份。
證明它真的能還原

沒測試過的備份只是個猜測

講白一點

一份你從沒還原過的存檔,就像一支從沒有人檢查過的滅火器。它掛在牆上看起來很安心。而你會在唯一一個「知道太晚了」的那天,才發現它到底能不能用。

在一台 不是 你正式主機的機器上測試:另一台 Pi、一台閒置的 NUC、一台 Home Assistant OS 虛擬機,或一台跑 Home Assistant Supervised 的小型 VPS。還原會覆蓋現有資料,所以在正式機上測試失敗,可能會讓你兩份都沒了。

在那台機器上裝好 Home Assistant,打開 Settings → System → Backups,上傳 .tar 從右上角選單,打開它的卡片,選 Restore backup。被問到的時候輸入 Emergency Kit 裡的金鑰;沒有那把密鑰,還原沒辦法繼續。讓它重啟,接著給 video-tools-init 3-8 分鐘的時間。

現在打開 pi-web,檢查四件事。少檢查一項都不算真正測試過:

  • Session 清單 ——之前每一次對話都在。
  • Models 面板 ——每個供應商都在,而 Test 在每一個上都測試成功。
  • Skills 面板 ——每個已安裝的 Skill 都出現。
  • 一次新對話 ——選定的供應商能回答一個簡單的問題。
接著把這台測試系統停用。 兩套共用同一個網址或 device_id 的 Home Assistant,會在整合、webhook 跟 Nabu Casa 遠端存取上互相搶奪。把它關機重灌,或至少從網路上拔掉。

如果十分鐘後影片管線還是沒反應,或 log 顯示的是錯誤而不是 video-tools-init done,就強制乾淨重建:打開 reset_video_tools 在這個 add-on 的 Configuration 分頁上,同一個頁面也放著 log_leveltimezone,接著存檔重啟這個 add-on。這個開關不是新的;0.13.0 只是後來加上了自動清理,讓 add-on 事後自己把選項改回 false 。比較舊的版本會讓它一直開著,得自己手動關掉。

Home Assistant 裡 Woow HA Pi Agent add-on 的 Configuration 分頁。一個 Options 面板依序列出供應商金鑰欄位:api_key、minimax_api_key、openai_api_key 跟 openrouter_api_key 已經填了,值都用一排點點遮起來,各自右側有個眼睛圖示;anthropic_api_key、deepseek_api_key 跟 groq_api_key 是空的。
Configuration 分頁填了四把供應商金鑰,留了三個空白——每一個都是備份必須帶走的 add-on 狀態。
  • Configuration 是最上方四個分頁之一——Info、Documentation、Configuration、Log。這個 add-on 讓你設定的每一項,都藏在它後面。
  • Options 面板是一份簡單的欄位清單,在畫面下方 groq_api_key 這裡被截斷了。這裡的東西不會有人幫你重建。
  • 眼睛圖示 在每個已填欄位旁邊,能用明文顯示那把金鑰。這個畫面一鍵就能揭露的東西,一份沒加密的存檔,會揭露給任何拿到它的人。
你的金鑰就在裡面

存檔裡的憑證是明文儲存的

Pi Agent 把供應商金鑰以明文存在 models.json,而 rclone 把它的 Google Drive refresh token 存在 rclone.conf。這個 add-on 備份時兩者都會被包進去。這在還原那天很方便,其他每一天都很危險。

所以每一把金鑰都在密碼管理器裡留一份副本——1Password、Bitwarden、iCloud 鑰匙圈——理由有兩個:

復原如果存檔不見了、壞了,或太舊了,密碼管理器裡的副本還是能恢復供應商的存取權。
輪替如果沒加密的存檔外洩,那份清單能精確告訴你該撤銷、更換哪些憑證。rclone 的話,到你 Google 帳號的已連接應用程式裡撤銷它,再重跑一次授權流程。

建立每把金鑰時就幫它標籤:用途、日期、供應商網站。每次在 Models 面板換金鑰時就更新它。離開這台裝置的每份存檔都要加密,絕對不要把備份附在支援請求裡。

絕對不要把金鑰放進 Skill 檔案裡。 Skill 的內容可能會被送到選定的供應商那邊。金鑰該放在 models.json ,透過 Models 介面設定,還有你的密碼管理器裡。別的地方都不行。
升級跟換新主機

有兩種時刻,備份就不再是可有可無的了

每次 add-on 更新之前

Pi Agent 的 add-on 頁面沒有 Downgrade 按鈕,add-on 商店通常也只提供目前的版本。如果一次更新改變了行為、或直接起不來,升級前的那份備份就是實際上唯一的回頭路。

Home Assistant 裡 Woow HA Pi Agent 的 add-on Info 頁面,顯示 Current version 0.12.0,帶一個 Changelog 連結、一個綠色的 Rating 徽章跟一個藍色的 Ingress 徽章,四個開關——Start on boot 開、Watchdog 開、Autoupdate 關、Add to sidebar 開——底部一排是 Stop、Restart、Uninstall 跟 Open web UI。
更新之前先記下這件事你現在跑的版本號,就是你以後會後悔沒寫下來的那個數字。
  • Current version ——這裡是 0.12.0。把它寫進備份名稱裡,讓這份存檔自己說清楚它能還原到哪個版本。
  • Autoupdate 應該保持關閉。一次自動到來的更新,背後不會有一份剛做好的備份撐著。
  • 有一個 沒有 Downgrade 按鈕 在這個頁面上。這個缺失,就是備份存在的全部理由。
轉變改了什麼沒備份的風險
~ v0.13.0API 金鑰從 add-on 設定搬進了 pi-web 的 Models 面板這是一次沒有自動遷移的硬切換。先把每把金鑰記下來,再一一重新輸入一遍。
~ v0.10.0coding agent 的工作目錄搬到了 /data/pi-agent/home/舊的 pi-cwd-* 目錄可能在升級過程中被移除、弄丟。
影片管線重構video-tools 的 venv 結構可能會改變管線可能會短暫用不了。重建通常就能解決;備份保護的是你的專案資料。

整套流程就一行: Settings → System → Backups → Backup now → Manual backup,取名叫「Before upgrade <日期>」,等它跑完,再回到 add-on 頁面點 Update。

搬到新主機

機制一樣,但風險更高,因為新機器會變成正式環境。在舊主機上做最後一次乾淨的備份,接著 停止使用它 ——在那之後開始的對話不會在存檔裡。在新硬體上安裝 Home Assistant,但先不要裝 任何 add-on;還原時會把 Pi Agent 跟它的資料一起帶回來。輸入金鑰,再給影片工具 3-8 分鐘的時間。這段期間聊天功能跟 Session 紀錄照樣能用。

能不能只備份 Pi Agent?
可以。建立一份部分備份,只選 Woow HA Pi Agent 這個 add-on 跟它的資料。當 Pi Agent 壞了、但 Home Assistant 其他部分都健康時,這是對的選擇。要搬到新主機的話,就用完整備份,這樣區域、實體、自動化跟帳號才會一起帶過去。部分備份只保護你選的那部分。
能不能直接 rsync /data/pi-agent 到另一台主機就好?
這看起來等效,其實不是。 models.jsonsessions/*.jsonl 的格式在不同版本之間可能會變,所以舊資料放進較新的 add-on 可能讀不了;手動複製的版本很容易漏掉像 options.json;而且可能留下一個標記檔,卻沒有完整的環境。單獨複製一個資料夾出來,拿去分享一個 Skill 是合理的——把 skills/<a-skill>/ 打包成 zip——因為 Skill 是 Markdown,不是綁定版本的狀態。
金鑰還原了,但 Models 測試失敗
先確認這把憑證是不是還有效。如果有效,可能是那個服務換了 endpoint——去 Models 面板更新 base URL,再測試一次。如果已經過期或被撤銷了,建一把新的,兩邊都存好。備份沒辦法重新啟用一把已被撤銷的憑證。搬機之後出現 401 或 403,也可能是供應商拒絕了一個新的網路 IP。
備份跑的時候 Pi Agent 會不能用嗎?
會。Home Assistant 會暫停這個 add-on,讓它硬碟上的資料保持一致。那幾分鐘裡 pi-web 可能會回傳 504,訊息也送不出去。它會自己恢復。把備份排在比較安靜的時段,也不要在等回覆的時候啟動備份。
能從備份裡讀出一段舊對話嗎?
可以。需要的話先解密,解開 .tar,去 data/pi-agent/sessions/ 底下找 .jsonl 檔案。每一行都是一則 JSON 訊息,文字編輯器就能顯示。你不用還原整個 Home Assistant,就能救回一段舊的提示。這些檔案裝著私人的對話內容——用完之後要安全地刪除。
接下來

接下來往哪走

繼續

你已經有了一個復原點。現在該用上它了。

第 15 篇要講升級這個 add-on:版本之間到底改了什麼、按 Update 之前怎麼讀更新說明,以及當你升到的新版本跟你離開的舊版本行為不一樣時該怎麼辦。

打開完整教學手冊

Pi Agent 入住指南》系列第 14 篇,由 WoowTech 渥屋科技 製作。

內容出自 Woow HA Pi Agent 入住指南,依 CC BY 4.0 釋出。

The Smart Space Solution · 智慧空間解決方案 · © 2026 WOOW Technology Co., Ltd.

網誌: Pi Agent 指南
分享這個貼文