第 20 章

Add-on 與 Docker 架構

你在商店裡按下「安裝」的那個 Add-on,其實是一個 Docker 容器。這章把 Supervisor、映像檔、資料卷、連接埠這些名詞用便當店講清楚,帶你裝完必備的幾個 Add-on,設好備份自動上傳雲端,並學會看記錄檔自己排錯。

為什麼要搞懂 Add-on 底下那層

你在附錄 A已經知道 Add-on 商店在哪、怎麼按安裝。那一篇是「會用」,這一章是「知道它為什麼會壞」。

差別在哪?舉幾個真實會發生的狀況:

  • 你在筆電上裝了 Home Assistant,結果左邊選單根本找不到 Add-on 商店 —— 不是你手殘,是安裝方式不對
  • 你裝了 Zigbee2MQTT,它一直起不來,頁面只寫「已停止」。你不知道要去哪看它到底在抱怨什麼。
  • 你同時裝了 Node-RED 和另一個網頁工具,第二個死活起不來 —— 兩個搶同一個門牌號碼。
  • 你把整台機器重灌了,才發現備份全都躺在那台已經死掉的機器裡。

這四件事的解法,全部藏在同一層知識裡:Add-on 是容器、容器有映像檔、有資料卷、有連接埠、有記錄檔。看完這章,你遇到上面任何一種狀況,都知道第一步該點哪裡。

注意:從 Home Assistant 2026.2 版開始,官方把「Add-on(附加元件)」正式改名叫「Apps」,選單也從「設定 → Add-ons」變成「設定 → Apps」。技術上完全沒變,就是換個好懂的名字。這章兩個詞會混用,指的是同一件事;你自己畫面上顯示哪個,就以你的版本為準。

四種安裝方式,和「有沒有 Add-on 商店」的關係

這是新手最大的一個坑:不是每一種 Home Assistant 都有 Add-on 商店。有沒有商店,在你當初決定怎麼安裝的那一刻就註定了,之後不能靠設定打開。

安裝方式白話說明有 Add-on/Apps 商店嗎一鍵更新目前支援狀態
Home Assistant OS(HAOS) 整台機器只跑 Home Assistant,作業系統是官方做的。Home Assistant Green、Yellow、樹莓派燒錄官方映像檔都算這種。 官方主推、完整支援
Home Assistant Container 你自己的 Linux/NAS/群暉上,用 Docker 跑一個 Home Assistant 容器。 沒有 沒有(要自己拉新映像檔重建容器) 官方支援
Home Assistant Supervised 自己的 Debian 上手動裝 Supervisor 那一整套,硬湊出接近 HAOS 的環境。 已淘汰,自 2025.12 起官方停止支援
Home Assistant Core 直接在 Python 環境裡跑,什麼外殼都沒有。 沒有 沒有 已淘汰,自 2025.12 起官方停止支援
注意:官方在 2025 年 5 月宣布淘汰 Core 與 Supervised 兩種安裝方式,並在 2025.12 版正式結束支援;同時淘汰的還有 i386、armhf、armv7 這幾種 32 位元架構。舊機器技術上還跑得動、也還更新得了,但出事沒有官方支援。現在只剩 HAOS 與 Container 兩種是官方支援的。

所以結論很簡單:

  • 你想要 Add-on 商店 → 裝 HAOS。Green、Yellow、樹莓派燒官方映像檔、或是一台空的迷你主機裝 HAOS,都可以。
  • 你用 Container(例如群暉 NAS 上的 Docker)→ 沒有商店,永遠不會有。需要 MQTT broker、Node-RED 這些東西,就自己另外開一個 Docker 容器來跑,功能一樣,只是要自己動手。
觀念:官方文件明講,Thread、Z-Wave 這類整合有一部分是靠 Add-on 撐起來的,所以 Container 安裝沒有開箱即用的支援。如果你打算玩 Zigbee/Z-Wave/Thread,又不想折騰,直接選 HAOS 會少掉一半的麻煩。

Add-on 的本質:一個被 Supervisor 管起來的 Docker 容器

官方開發文件寫得很直白:Apps(也就是舊稱的 Add-on)底層就是發佈到容器登錄檔(container registry)的容器映像檔,來源例如 GitHub Container Registry 或 Docker Hub。

換句話說,當你在商店裡按「安裝」,發生的事情是:

  1. Supervisor 去網路上抓映像檔

    它看那個 Add-on 的設定檔,知道要去哪個網址、抓哪個版本、抓對應你 CPU 架構(arm64 或 amd64)的那一份。這一步最花時間,也最容易因為網路不通而失敗。

  2. Supervisor 用那份映像檔開一個容器

    順便照 Add-on 的設定,決定要開哪些連接埠、要把哪些資料夾掛給它、要不要給它 USB 裝置。

  3. Supervisor 幫你把設定介面接進 Home Assistant

    所以你才會在 Home Assistant 網頁裡看到那個 Add-on 的「設定」分頁、「記錄檔」分頁,而不用自己去打 Docker 指令。

  4. Supervisor 持續盯著它

    它負責啟動、停止、更新、看門狗(Watchdog)重啟、開機自動啟動。這些就是你在 Add-on 頁面上看到的那幾個開關。

所以 Supervisor 就是「管家」。Home Assistant 本體是一個容器,每個 Add-on 各自也是一個容器,Supervisor 站在旁邊管所有人的生死。這也解釋了為什麼 Container 安裝沒有商店 —— 它根本沒有管家,只有 Home Assistant 自己一個容器孤零零地跑著。

觀念:Add-on 和「整合(Integration)」是兩件完全不同的事,這是新手最常搞混的地方,也正是官方要改名叫 Apps 的原因。整合是把外面的裝置和服務「接進」Home Assistant(例如小米、Google、天氣);Add-on/App 是在 Home Assistant「旁邊」多跑一個獨立的程式(例如一台 MQTT 伺服器)。有些東西兩邊都要:Zigbee2MQTT 是 Add-on,Mosquitto 也是 Add-on,但要讓 Home Assistant 看到燈泡,還得再去裝 MQTT 整合

Docker 白話版:一家便當店

Docker 的名詞聽起來很硬,但其實每一個都對應得到日常生活。我們把它想成一家連鎖便當店。

Docker 名詞便當店比喻在 Home Assistant 裡實際是什麼
映像檔
Image
中央廚房的「食譜+調理包」。它本身不能吃,但照著它做,每一家分店做出來的便當一模一樣。調理包本身是唯讀的,你不會去改它。 從網路上抓下來的那包程式。同一版本的 Mosquitto 映像檔,裝在你家跟裝在別人家內容完全相同。
容器
Container
照調理包現做出來的那一份便當。吃完可以丟,丟了再做一份就好,反正調理包還在。 正在跑的那個 Add-on。你按「重新啟動」,就是把便當丟掉重做一份。
資料卷
Volume
你自己帶的保鮮盒。便當丟了,保鮮盒裡的東西還在。 你的設定、資料庫、Zigbee 配對清單。所以更新 Add-on 不會讓你的裝置全部脫網 —— 那些資料不在容器裡,在保鮮盒裡。
連接埠
Port
店門口的取餐窗口號碼。同一個號碼窗口,同一時間只能給一家店用。 Home Assistant 本身是 8123,Mosquitto 是 1883,Node-RED 有自己的號碼。兩個 Add-on 搶同一個號碼 → 第二個起不來。
重啟策略
Restart policy
「不管怎麼打烊,隔天一定自動開店」的規定。 Add-on 頁面上的「開機時啟動」與「看門狗(Watchdog)」開關。官方 Container 安裝的 Docker 指令用的是 --restart=unless-stopped,意思是「除非你自己把它關掉,否則出事就自己爬起來」。

如果你是 Container 安裝的使用者,官方文件給的 Docker Compose 範例長這樣,正好把上面幾個名詞全部串起來:

services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /PATH_TO_YOUR_CONFIG:/config
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host
    environment:
      TZ: Asia/Taipei

對照一下:image 是調理包、volumes 是保鮮盒(左邊是你電腦上的資料夾,右邊是容器裡看到的路徑)、restart 是開店規定、TZ 是時區(第 2 章那個時區設定,在這裡也要對)。network_mode: host 表示它直接用主機的網路,所以連接埠 8123 就直接開在你機器上。

提示:HAOS 使用者完全不需要打上面這些指令,Supervisor 都幫你做掉了。放這段是為了讓你「看得懂」,將來在網路上查資料時不會被嚇到。

動手:裝一個 Add-on 並看懂每個開關

我們用「檔案編輯器(File editor)」當練習,因為它輕、無害、而且之後很好用。

  1. 打開商店

    左下角設定 → 找到 Apps(2026.2 之前叫 Add-ons)。進去之後按安裝 App(Install app)按鈕,就會看到整排可以裝的東西。舊版上這顆按鈕寫的是「ADD-ON STORE」。

    Apps 首頁:已裝的 Add-on
    圖 20-1Apps 首頁(Supervisor):已經裝過的 Add-on 都列在這,右下角的「Add-on store」是進商店的入口。
    Add-on 商店
    圖 20-2Add-on store:分成 Local apps(自建)/Official apps(官方)/社群 repository。
  2. 找到「File editor」並安裝

    它在官方(Official)那一區。點進去按安裝,然後就是等。第一次安裝要下載映像檔,樹莓派上花個三五分鐘很正常,畫面沒動不代表當掉。

  3. 先別急著啟動,看一下那四個開關

    安裝完會出現幾個切換開關:開機時啟動(機器重開後自動跑)、看門狗 Watchdog(它掛掉時自動把它拉起來)、自動更新(有新版就自己更新)、顯示在側邊欄(左邊選單直接出現捷徑)。檔案編輯器建議:前三個都開,第四個也開。

  4. 按「啟動」

    狀態會從「已停止」變成「執行中」。如果變成「已停止」又跳回去,就是它啟動失敗了 —— 這時候直接跳到下一節去看記錄檔。

  5. 從側邊欄開它

    左邊選單應該多了一個「File editor」。點進去,你會看到 /config 資料夾 —— 那就是上一節講的「保鮮盒」,你的 configuration.yaml 就在裡面。

  6. 試著改一個字再改回來

    不是要你改設定,是要你確認「我真的能寫入」。改完存檔,再改回原樣。這一步做過,將來真的需要編設定檔時你就不會怕。

危險:檔案編輯器可以直接改到會讓 Home Assistant 開不起來的檔案。動 configuration.yaml 之前,先確定你第 9 章教的備份是有在跑的。改壞了不可怕,沒得還原才可怕。

Add-on 頁面的分頁各是幹嘛的

每個 Add-on 點進去,上面會有幾個分頁。名字依版本略有差異,但功能大同小異:

分頁裡面有什麼什麼時候會用到
資訊 Info 啟動/停止/重新啟動按鈕、版本號、四個開關、「開啟網頁介面」連結。 日常操作。看版本號在這裡。
說明文件 Documentation 作者寫的完整說明,每個設定選項是什麼意思。 設定選項看不懂的時候第一個來這裡,不要去 Google,作者寫的最準。
設定 Configuration 這個 Add-on 自己的選項。有些是表單,有些要你直接改 YAML。 設帳號密碼、設資料夾、設 Zigbee 棒子的路徑。
網路 Network 連接埠對應表。左邊是容器裡面用的號碼(固定),右邊是要開在你機器上的號碼(可以改)。 Port 衝突時就改這裡。右邊留空=不對外開放,只有 Home Assistant 內部連得到,最安全。
記錄檔 Log 這個 Add-on 從啟動到現在講的每一句話。 它起不來、它怪怪的、它連不上東西 —— 一律先看這裡。
提示:「網路」分頁右邊那格,是這整章最實用的知識。假設 Node-RED 預設要用某個號碼,而那個號碼被別的東西占走了,你不用去改另一個程式,只要在這裡把右邊改成一個沒人用的號碼(例如 18818099 這種),存檔重啟就好。

看記錄檔排錯:三個關鍵字就夠

記錄檔(Log)看起來像亂碼,但你不需要全部看懂。你要做的只有三件事:

  1. 從最下面往上看

    記錄檔是由上往下按時間排的,最新的在最下面。它為什麼掛掉的原因,通常就在最後那五到十行。上面幾百行開機訊息可以全部無視。

  2. 找這幾個字

    ERRORFATALTracebackPermission deniedAddress already in useNo such file or directory。看到其中一個,那一行前後就是答案。WARNING 通常可以先忽略。

  3. 把那一行原文拿去搜尋

    連同 Add-on 名字一起搜,例如「zigbee2mqtt Address already in use」。不要用自己的話描述,直接複製那行英文,找到答案的機率高十倍。

  4. 還是沒頭緒就重看一次

    把 Add-on 停掉,重新整理記錄檔頁面,再按啟動,然後盯著它。這樣看到的就是「乾淨的一次啟動」,比在幾千行舊訊息裡撈快得多。

對照一下常見訊息的中文意思:

記錄檔訊息白話翻譯怎麼修
Address already in use這個號碼窗口已經有人在用了去「網路」分頁換一個連接埠
Permission denied它沒有權限碰某個檔案或裝置多半是 USB 裝置路徑設錯,或設定填的資料夾不存在
Connection refused它要連的對象沒開門它依賴的另一個 Add-on(常見是 MQTT)沒啟動
No such file or directory找不到你指定的檔案/裝置檢查設定裡打的路徑有沒有打錯字
No space left on device硬碟滿了看本章「常見卡關」最後一條
觀念:Add-on 的記錄檔和 Home Assistant 本體的記錄檔是分開的。Add-on 的在它自己頁面的「記錄檔」分頁;Home Assistant 自己的在設定 → 系統 → 記錄檔。找錯地方會什麼都看不到。

必裝 Add-on 巡禮

不用全裝。看你要做什麼,對著挑。「來源」欄的意思:官方=商店裡本來就有;社群=要先加第三方存放庫(下一節教)。

Add-on來源它幫你做什麼誰該裝
File editor
檔案編輯器
官方 在瀏覽器裡直接開 /config 改檔案,附語法檢查。 幾乎所有人。輕、無腦、救急好用。
Studio Code Server 社群
(hassio-addons)
把整套 VS Code 搬進瀏覽器,內建 Home Assistant 與 YAML 擴充套件,會自動補實體名稱。 YAML 寫比較多的人。比檔案編輯器強很多,但也重很多。
Terminal & SSH 官方 瀏覽器裡的終端機,也可以用 SSH 從別台電腦連進來,內建 Home Assistant CLI。 需要下指令的人。要先在個人資料頁打開「進階模式」才看得到它。
Mosquitto broker 官方 一台 MQTT 訊息伺服器。很多裝置和工具靠它互相講話。 要玩 Zigbee2MQTT、Tasmota、ESPHome 進階玩法的人。
Zigbee2MQTT 社群
(官方 Z2M 團隊維護)
接管你的 Zigbee 協調器(那根 USB 棒),把 Zigbee 燈泡開關轉成 MQTT 訊息。支援的裝置型號比內建方案廣。 Zigbee 裝置多、或買到冷門品牌的人。要先裝 Mosquitto。
Node-RED 社群
(hassio-addons)
用拉線的方式做自動化流程,不用寫 YAML。 自動化邏輯很複雜、或視覺型思考的人。簡單自動化用內建的就夠。
Samba share 官方 configbackupmediashare 等資料夾變成網路磁碟機,Windows/Mac 直接拖拉。 想用電腦上習慣的編輯器改設定、或想把備份拉下來的人。
Advanced SSH & Web Terminal 社群
(hassio-addons)
官方 Terminal & SSH 的加強版,可以關掉保護模式做更多事。 知道自己在幹嘛的進階使用者。新手先用官方版。
注意:Mosquitto 的帳號設定方式跟很多舊教學不一樣了。不要在 Mosquitto 的設定分頁裡建使用者,官方文件明講要去設定 → 人員 → 使用者另外開一個專門給 MQTT 用的 Home Assistant 使用者,然後在 Zigbee2MQTT 那邊填這組帳密。啟動 Mosquitto 之後,去設定 → 裝置與服務,MQTT 會出現在最上面的「已探索」區塊,按一下就設定完了。
提示:Samba share 的分享資料夾名稱也跟著改名了:舊的 addonsaddon_configs 現在叫 local_appsapp_configs,舊名稱仍然保留相容。看到兩種寫法不用慌。

加第三方存放庫:商店裡沒有的怎麼辦

商店預設只有官方那幾十個。像 Node-RED、Studio Code Server、Zigbee2MQTT 這些,要先把它們的「存放庫(Repository)」加進去,商店才會多出一整排新東西。

  1. 複製存放庫網址

    常用的兩個:社群 Add-on 大集合是 https://github.com/hassio-addons/repository,Zigbee2MQTT 官方的是 https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

  2. 進入 Add-on 商店

    設定 → Apps,然後按安裝 App(Install app)進到商店。

  3. 打開右上角三點選單裡的「存放庫(Repositories)」

    官方文件寫得很清楚:在商店頁面右上角的三點選單Repositories。舊版可能顯示中文「存放庫」,是同一個東西。

  4. 貼上網址、按新增,然後重新整理

    加完商店會多出好幾區。找不到新東西就按 Ctrl + F5 強制重新整理一次。重整還是沒出現,就去設定 → 系統 → 記錄檔,右上角切到 Supervisor,那裡會寫網址是不是打錯了。

危險:加存放庫等於「我信任這個作者,願意讓他的程式在我家裡跑」。Add-on 是有相當權限的容器,來路不明的東西可以翻你的設定檔。只加你查得到、有很多人在用、最近還在更新的存放庫。上面列的幾個都是社群公認的大型專案。
觀念:存放庫(Add-on 用)跟 HACS(自訂整合與儀表板卡片用)是兩套不同的東西,別搞混。附錄 A有兩者的對照。

備份自動上傳雲端:讓備份離開這台機器

備份怎麼建、排程怎麼設、保留幾份、為什麼不能只存本機,第 9 章已經講完了,這裡不重複。

這一節只補第 9 章沒細講、又剛好跟本章有關的一件事:把備份送上雲端這件事,現在完全內建,不需要裝任何 Add-on。以前這是第三方 Add-on 的地盤,現在備份頁面的「位置(Location)」可以同時勾好幾個地方,每次備份自動送到每一處。各個目的地的差別在這裡 —— 尤其是那些會咬人的限制:

備份位置怎麼啟用要花錢嗎限制
Home Assistant Cloud(Nabu Casa) 已訂閱的話直接在備份設定裡勾起來 要有 Cloud 訂閱,但備份本身不另外收費 只保留最新一份,舊的自動刪;單檔不能超過 5GB
Google Drive 設定 → 裝置與服務 → 新增整合 → Google Drive 免費(用你自己的 Drive 空間) 要自己去 Google 開發者後台申請一組 OAuth 憑證,步驟有點長
Microsoft OneDrive 設定 → 裝置與服務 → 新增整合 → OneDrive 免費(用你自己的 OneDrive 空間) 需要個人 OneDrive 帳號;用預設憑證時需啟用 mycloud 整合
網路儲存(NAS) 設定 → 系統 → 儲存空間,加一個網路儲存並標記可用於備份 免費(你已經有 NAS 的話) NAS 沒開機的時候那次備份會失敗;跟主機在同一個屋簷下,火災水災一起完蛋

接一個雲端目的地上去,只有三步:

  1. 先把目的地接進來

    有 Nabu Casa 訂閱的話什麼都不用做,它本來就在。沒有的話去設定 → 裝置與服務 → 新增整合,裝 Google Drive 或 OneDrive,跟著畫面走一次帳號授權。要用家裡 NAS 的話走另一條路:設定 → 系統 → 儲存空間加一個網路儲存,並標記它可以用來放備份。

  2. 回備份頁面把它勾起來

    設定 → 系統 → 備份,在自動備份設定的「位置(Locations)」裡,把剛接好的目的地打開。排程和保留份數照第 9 章設就好。本機 /backup 記得也留著:還原時本機那份快很多,雲端是機器整台死掉時的保命符。

  3. 手動跑一次,然後親眼去雲端看檔案在不在

    這步不能跳,沒有驗證過的備份等於沒有備份。真的去 Google Drive 或 OneDrive 的資料夾裡看到那個檔案,才算設定完成。如果你選的是 Home Assistant Cloud,這時就會撞到 5GB 上限 —— 傳不上去的話,回備份設定把媒體(media)資料夾取消勾選,那通常是最肥的一塊,瘦身效果最好。

提示:備份設定裡還有一個「更新前先自動備份」的選項,強烈建議打開。它只是設一個預設值,每次真的要更新前你還是可以臨時改。這是更新踩雷之後最快的回頭路,而 Add-on 更新踩雷的機率比你想像的高。
注意:網路上很多舊教學會叫你裝「Home Assistant Google Drive Backup」這個第三方 Add-on。在內建雲端備份出來之前它是神器,現在對新手來說內建的 Google Drive 整合是更好的起點:官方維護、不用多跑一個容器。第三方 Add-on 仍有它的優勢(例如日/週/月/年的世代保留策略),但如果你只是想「備份不要死在本機」,內建的就夠了。同理,把備份丟到 Samba 網路磁碟的需求,現在也可以用內建的「網路儲存」達成,不一定要裝 Samba Backup。
危險:備份是加密的,還原時一定要有加密金鑰。第一次設定自動備份時,畫面會讓你下載一份備份緊急救援包(backup emergency kit)—— 那是一個檔案,裡面裝著你的加密金鑰。立刻把它存到 Home Assistant 以外的地方(密碼管理器、雲端硬碟、印出來夾進資料夾都行)。官方講得很白:沒有金鑰就沒有任何辦法還原加密備份。金鑰弄丟=雲端那份備份只是一堆打不開的亂碼。之後想再拿一次,回到設定 → 系統 → 備份的備份設定頁可以重新下載目前這組金鑰。

資源占用:低階硬體怎麼取捨

每個 Add-on 都是一個真的在跑的程式,會吃 CPU、吃記憶體、吃硬碟。樹莓派 4 的 2GB 版本、或是老舊的迷你主機,裝著裝著就會開始卡 —— 網頁變慢、自動化延遲、更新失敗。官方沒有公布每個 Add-on 吃多少資源,下面這張表是相對的輕重分級,不是實測數字,拿來排優先順序用。

Add-on 類型吃資源程度低階硬體上的建議
File editor、Samba、Terminal & SSH很低,幾乎感覺不到放心裝
Mosquitto broker放心裝,它很省
Zigbee2MQTT中,會持續跑著值得裝,但別跟一堆重的東西擠
Node-RED中偏高,記憶體吃得比較兇2GB 記憶體以下要斟酌。簡單自動化用內建的就好
Studio Code Server高,開著網頁時特別明顯低階機器改用 File editor
資料庫(MariaDB)、Grafana、InfluxDB 這類很高,還會狂寫硬碟樹莓派+SD 卡不建議。SD 卡被寫爆是真實會發生的事
語音相關(Whisper、Piper 等)很高,尤其 CPU需要比較有力的硬體,樹莓派上會慢到不堪用

幾條實用原則:

  • 用不到的就移除,不要只是停用。停用的 Add-on 還是占著硬碟空間。
  • 一次只裝一個新東西。裝完觀察一兩天再裝下一個,出事你才知道是誰害的。
  • 樹莓派請用 SSD 或 USB 開機,不要用 SD 卡。SD 卡最容易掛的原因就是被寫太多次,而資料庫類的 Add-on 專門幹這件事。
  • 先看內建功能能不能解決。很多人裝 Node-RED 只為了做一個「日落開燈」,那件事內建自動化三行就搞定了(見第 8 章)。
提示:想知道現在到底有多擠,去設定 → 系統 → 儲存空間看硬碟;想看版本、安裝方式這類系統資訊,走設定 → 系統 → 修復右上角三點選單的系統資訊。發現硬碟用超過八成,就該清東西了。

常見卡關

  1. 找不到 Add-on 商店

    先確認你是哪種安裝方式:設定 → 系統 → 修復(Repairs),點右上角的三點選單 → 系統資訊(System information),裡面會寫你這台到底是 OS 還是 Container。如果是 Container 或 Core,那就是結構上沒有商店,怎麼找都不會有,唯一解是改用 HAOS 重裝(記得先備份,再從備份還原)。如果你是 HAOS 卻找不到某個特定 Add-on,例如 Terminal & SSH,那多半是進階模式沒開 —— 點左下角你的名字進入個人資料頁,把「進階模式(Advanced Mode)」打開。

  2. Add-on 裝不起來,卡在安裝中或直接失敗

    九成是下載映像檔失敗。依序檢查:(1) 網路通不通,Home Assistant 出得去外網嗎;(2) 硬碟還有空間嗎,看設定 → 系統 → 儲存空間;(3) 你的 CPU 架構有沒有對應版本 —— 冷門 Add-on 常常只出 amd64,樹莓派裝不了,這種會直接說找不到映像檔。先重試一次,第一次失敗有時候只是抓到一半斷線。

  3. Port 衝突:第二個 Add-on 起不來

    記錄檔會出現 Address already in useport is already allocated。去那個 Add-on 的網路分頁,把右邊那格改成一個沒人用的號碼(例如原本 1880 改成 1881),存檔重啟。改完之後你連它的網址也要跟著改成新號碼。如果你根本不需要從外面連它,右邊直接留空,衝突瞬間消失。

  4. 更新之後起不來了

    先看記錄檔最後幾行,作者常常會直接寫「這版設定格式改了,請把某某選項改成某某」。如果看不懂,最快的路是用更新前的備份還原(第 9 章)—— 這就是為什麼「更新前先備份」那個開關要打開。另外去設定 → 系統 → 修復(Repairs)看看,重大變更常常會在那裡留一張說明卡。

    設定 → 修復 頁面
    圖 20-3設定 → 修復(Repairs):整合異常、統計錯誤、重大版本變更都會列在這,沒問題時會顯示 no repairs pending。
  5. 磁碟空間不足

    症狀是各種奇怪的失敗,記錄檔裡有 No space left on device。清理順序:(1) 刪掉舊備份,這通常最肥;(2) 移除(不是停用)用不到的 Add-on;(3) 檢查 mediashare 資料夾裡有沒有堆積的錄影檔;(4) 資料庫太大的話,調整 Recorder 保留天數。做完前三項還是滿,就該考慮換更大的儲存裝置了。

  6. Add-on 一直反覆重啟

    狀態在「執行中」和「已停止」之間跳,通常是看門狗(Watchdog)在把一個本來就會壞的程式反覆拉起來。先把看門狗關掉,讓它安靜地停在失敗狀態,這樣你才看得到完整的錯誤訊息。修好之後再打開。

  7. Zigbee2MQTT 找不到 USB 棒

    記錄檔通常是 No such file or directory。去設定 → 系統 → 硬體,點右上角三點選單 → 全部硬體(All Hardware),就會列出目前接上的裝置與它們的路徑,找出那根棒子的路徑複製回 Zigbee2MQTT 的設定裡。不要照抄網路教學上的路徑,每台機器不一樣。另外官方建議優先用 /dev/serial/by-id/ 開頭的那個長路徑,不要用 /dev/ttyUSB0 這種短的 —— 短路徑會隨插拔順序和重開機而變,長路徑綁在裝置本身,插哪個孔都不會跑掉。

常見問題

Add-on 現在到底叫 Add-on 還是 App?
從 2026.2 版開始官方統一叫 Apps,選單也變成「設定 → Apps」。底層技術(Docker 容器、Supervisor)一個字都沒改,純粹是換名字,讓新手不要把它跟「整合(Integration)」搞混。網路上絕大多數教學還是寫 Add-on,兩個詞看到都當同一件事就好。如果你的版本比 2026.2 舊,畫面上會繼續顯示 Add-ons。
我用群暉 NAS 的 Docker 跑 Home Assistant,可以想辦法把 Add-on 商店裝出來嗎?
不行,也不該試。Add-on 商店需要 Supervisor 這個管家,而 Container 安裝沒有它。以前有一種叫 Supervised 的裝法可以硬湊出來,但官方已經在 2025.12 版停止支援了。正確做法是:需要 Mosquitto、Node-RED 這些東西,就在你的 NAS 上另外開一個 Docker 容器來跑,功能完全一樣,只是要自己寫 compose 檔、自己更新。真的想要一鍵的舒服,就開一台 VM 或找台小主機裝 HAOS。
更新 Add-on 會不會把我的設定弄不見?
正常情況不會。設定和資料存在「資料卷(Volume)」裡,更新換掉的是「映像檔」,兩者是分開的 —— 就像換調理包不會動到你的保鮮盒。但更新有可能改變設定的格式,導致舊設定不再合法而啟動失敗。所以規矩是:重要的 Add-on 不要開自動更新,更新前確認備份有跑過,更新後看一眼記錄檔。輕量無害的(File editor、Samba)開自動更新沒差。
備份已經上傳到 Google Drive 了,本機那份還要留嗎?
要。兩份的用途不一樣:本機那份是給「我手殘改壞了設定」用的,還原很快;雲端那份是給「機器整台死掉」用的。備份位置本來就可以同時勾多個,一次備份送去多處,沒有必要二選一。真正該注意的是保留份數要設好,不然本機硬碟遲早被塞爆。
Zigbee2MQTT 一定要先裝 Mosquitto 嗎?我可以只裝 Zigbee2MQTT 嗎?
Zigbee2MQTT 的工作是「把 Zigbee 訊號翻譯成 MQTT 訊息」,它需要一個 MQTT 伺服器來收這些訊息,所以一定要有 broker。官方安裝說明第一步就是叫你先裝 Mosquitto。順序是:Mosquitto → 建一個給 MQTT 用的使用者 → 設定 MQTT 整合 → 加 Zigbee2MQTT 存放庫 → 裝 Zigbee2MQTT → 填上 broker 位址和帳密。跳步驟的話,Zigbee2MQTT 的記錄檔會滿滿都是 Connection refused
「網路」分頁的連接埠留空,會不會害 Add-on 不能用?
不會。留空的意思是「不要在我的機器上開這個對外窗口」,Add-on 本身照跑,Home Assistant 內部照樣連得到它。以 Mosquitto 為例,如果只有 Home Assistant 和幾個 Add-on 會用到它,留空反而更安全 —— 家裡網路上其他裝置就摸不到它了。只有當你需要從別的電腦、別的程式直接連進去時,才需要填號碼。這是最簡單也最有效的一個資安習慣。
我該裝 File editor 還是 Studio Code Server?
兩者都是在瀏覽器裡改設定檔。File editor 是官方的、輕、開得快,偶爾改幾行足夠,樹莓派也帶得動。Studio Code Server 是社群的完整 VS Code,會自動補實體名稱、會即時抓 YAML 語法錯誤,寫大量設定時效率差很多,代價是吃資源明顯較重、載入較慢。建議:新手先裝 File editor,等到你發現自己一天要開好幾次、開始寫比較長的 YAML,再換 Studio Code Server。低階硬體就別考慮後者了。