在 Synology NAS 上用 Docker 跑 Home Assistant:智慧家庭控制中心完整教學
如果你家裡有幾個智慧裝置——燈、插座、門鎖、空調——你可能已經裝了三四個 App,每牌子各有一個,互不相通。
Home Assistant 要解決的就是這件事:把所有裝置整合進一個平台,讓它們可以互相聯動,然後讓你自訂自動化邏輯。
這篇帶你把 Home Assistant 裝在 Synology NAS 的 Docker 裡,完成基本設定,加入第一個裝置,寫出第一條自動化。
🎯 這篇適合誰
| 你的情況 | 建議先看哪段 |
|---|---|
| 第一次聽到 Home Assistant | 先看「Home Assistant 是什麼」 |
| 知道 HA,想直接裝在 NAS 上 | 跳到「安裝步驟」 |
| 裝好了,想加裝置 | 跳到「新增整合」 |
| 想讓手機離開家自動關燈 | 跳到「自動化入門」 |
🏠 Home Assistant 是什麼
Home Assistant(縮寫 HA)是一套開源的智慧家庭平台,跑在你自己的設備上。
它做的核心事情:
- 整合:把不同品牌的智慧裝置收進來,統一管理
- 儀表板:一個介面看所有裝置狀態
- 自動化:設定條件和動作,讓裝置自動運行
Home Assistant 支援哪些裝置
HA 目前支援 3000+ 種整合,涵蓋:
| 類別 | 常見品牌 |
|---|---|
| 智慧燈 | Philips Hue、IKEA TRÅDFRI、米家、Govee |
| 智慧插座 | TP-Link Kasa、Tuya、米家 |
| 溫濕度感測器 | SwitchBot、Aqara、Zigbee 裝置 |
| IP 攝影機 | Hikvision、Frigate(AI 偵測)、Synology Surveillance |
| 門鎖 / 門窗感測 | Aqara、Yale |
| 語音助理整合 | Google Home、Amazon Alexa |
| NAS / 伺服器監控 | Synology DSM(可以直接讀 NAS 狀態) |
為什麼選 Home Assistant 而不是用原廠 App
| 原廠 App | Home Assistant | |
|---|---|---|
| 支援裝置品牌 | 只有自家品牌 | 3000+ 整合 |
| 跨品牌聯動 | 非常有限 | 完整支援 |
| 資料存在哪 | 廠商伺服器 | 你自己的 NAS |
| 廠商停服後 | 失效 | 繼續運作 |
| 離線也能用 | 部分支援 | 支援 |
| 自訂彈性 | 低 | 極高 |
🛠️ 安裝前準備
需求
- Synology NAS 已安裝 Container Manager(DSM 7.2+)
- NAS 有足夠的記憶體(建議 4GB 以上,HA 本身約佔 512MB–1GB)
- NAS 和你的智慧裝置在同一個區網
建立資料夾
先在 NAS 建一個放 HA 設定的資料夾,這樣重建容器時設定不會丟失:
- File Station → volume1 → 新增資料夾
docker(如果沒有的話) - 在
docker裡建立homeassistant資料夾
路徑:/volume1/docker/homeassistant
📦 安裝步驟
方法一:Container Manager GUI(推薦新手)
- 開啟 Container Manager → 登錄檔
- 搜尋
homeassistant/home-assistant - 選擇 tag:
stable(穩定版) - 下載映像檔
映像檔下載完後:
- 容器 → 建立
- 映像選
homeassistant/home-assistant:stable - 容器名稱:
homeassistant - 網路設定:選
host(這很重要,HA 需要 host 模式才能偵測區網裝置)
為什麼要用 host 模式:HA 的很多整合需要透過廣播或 mDNS 自動偵測區網裝置(例如 Philips Hue、Chromecast),bridge 模式下這些會失效。
- 進階設定 → 磁碟區:
| 本機路徑 | 容器路徑 |
|---|---|
/volume1/docker/homeassistant |
/config |
-
環境變數(可選): -
TZ=Asia/Taipei -
建立並啟動
方法二:docker-compose(進階)
Container Manager → 專案 → 建立專案,貼入以下內容:
version: "3"
services:
homeassistant:
image: homeassistant/home-assistant:stable
container_name: homeassistant
network_mode: host
volumes:
- /volume1/docker/homeassistant:/config
environment:
- TZ=Asia/Taipei
restart: unless-stopped
儲存並啟動。
🚀 第一次設定
容器啟動後,等大約 30 秒讓 HA 初始化,然後:
- 瀏覽器開啟
http://NAS的IP:8123 - 建立帳號(這是你登入 HA 的帳號,不是 Synology 帳號)
- 設定地點(影響時區、日出日落時間的計算,用於自動化)
- HA 會自動偵測到一些區網裝置,可以先跳過,之後再加
第一次進去可能看到很多空白或預設儀表板,這是正常的,接下來要自己加裝置進來。
🔌 新增整合(加入你的裝置)
方法
設定 → 裝置與服務 → 整合 → 右下角「+ 新增整合」
搜尋你的品牌或通訊協定,HA 會引導你完成設定。
常見整合設定方式
米家裝置(Xiaomi):
- 搜尋 Xiaomi Miio 或 Xiaomi Home
- 需要米家 App 的 Token 或帳號授權
TP-Link Kasa 智慧插座:
- 搜尋 TP-Link Kasa
- 和 NAS 在同一個區網,通常自動偵測到
Philips Hue:
- 搜尋 Philips Hue
- 輸入 Hue Bridge 的 IP,然後按 Bridge 上的按鈕授權
Tuya 裝置(很多雜牌智慧裝置的底層):
- 搜尋 Tuya
- 需要 Tuya 開發者帳號和 API 金鑰(有點繁瑣,但一次設好之後很穩)
Synology DSM(監控你的 NAS):
- 搜尋 Synology DSM
- 填入 NAS 的 IP 和帳號,就能在 HA 看到 NAS 的 CPU、記憶體、硬碟狀態
Zigbee 裝置(需要 Zigbee 接收器): - 需要一個 USB Zigbee 協調器(例如 Sonoff Zigbee 3.0 USB Dongle Plus) - 接到 NAS 的 USB 口,然後在 HA 安裝 ZHA(Zigbee Home Automation)整合 - 之後所有 Zigbee 裝置(Aqara、IKEA 等)可以直接配對,不需要原廠 Hub
📊 建立儀表板
HA 預設的儀表板是「自動」模式,它會把你加進來的所有裝置自動排列。
如果想自訂,切換成「手動」模式:
- 儀表板右上角三點選單 → 編輯儀表板
- 右上角切換「手動」
- 新增卡片(Card):
| 卡片類型 | 用途 |
|---|---|
| 實體 | 顯示單一裝置的狀態或控制 |
| Glance | 多個裝置的緊湊檢視 |
| 統計圖表 | 溫度、能耗等歷史數據 |
| 地圖 | 顯示家人的位置(需要手機 App) |
| 天氣 | 當地天氣資訊 |
| 按鈕 | 觸發自動化或腳本 |
⚡ 自動化入門
自動化是 Home Assistant 最強大的地方,邏輯很簡單:
建立自動化
設定 → 自動化與場景 → 建立自動化 → 建立新的自動化
範例 1:回到家自動開燈
觸發:
- 類型:裝置追蹤
- 你的手機:進入「家」的區域
條件:
- 時間:日落後(否則白天回家不需要開燈)
動作:
- 服務:light.turn_on
- 目標:客廳的燈
範例 2:每天晚上 11 點關掉所有插座
觸發:
- 類型:時間
- 時間:23:00
條件:(不需要條件)
動作:
- 服務:switch.turn_off
- 目標:選擇所有智慧插座
範例 3:溫度超過 28°C 自動開冷氣
觸發:
- 類型:數值
- 實體:溫度感測器
- 超過:28
條件:
- 時間:08:00–22:00(避免半夜觸發)
動作:
- 服務:climate.set_temperature
- 目標:你的空調整合
📱 手機 App
Home Assistant 有官方 App(iOS / Android),可以:
- 在外面遠端控制家裡的裝置
- 把手機的 GPS 位置傳回 HA(用於回家觸發自動化)
- 把手機的感測器(電量、Wi-Fi 狀態、靜音模式)傳回 HA 當觸發條件
App 需要能連到 HA,分兩種情況:
在家(區網):
App 設定本機 URL:http://192.168.1.x:8123,自動連。
在外(遠端):
需要讓 App 從外部也能連到 HA。最簡單的方式是 Tailscale:NAS 和手機都裝 Tailscale,不用開 Port,在外面也能安全存取。
詳細的遠端存取設定可以參考:遠端訪問方式比較
⚠️ 常見問題
Q1:裝置偵測不到
- 確認 HA 容器使用
host網路模式 - 確認 NAS 和智慧裝置在同一個子網路
- 部分裝置需要手動輸入 IP,而不是自動偵測
Q2:HA 更新後出現問題
- HA 更新積極,偶爾有破壞性更新
- 更新前先在設定 → 備份做一個快照
- 出問題時可以從備份恢復
Q3:容器重啟後設定都不見了
- 確認磁碟區有正確對應
/volume1/docker/homeassistant→/config - 如果容器建立時沒有設磁碟區,重新建立容器並加上對應
Q4:HA 吃太多記憶體
- HA 本身約 512MB,但加上資料庫(記錄歷史)可能到 1–2GB
- 可以在設定 → 系統 → 儲存,調整記錄保留天數(預設 10 天,改成 5 天可節省空間)
- 或改用 MariaDB 取代預設的 SQLite(進階)
Q5:Zigbee USB 裝置 NAS 認不到
- Container Manager → 容器 → homeassistant → 編輯 → 裝置
- 加入 USB 裝置(通常是
/dev/ttyUSB0或/dev/ttyACM0) - 需要有讀寫權限,可能需要在 NAS 終端機執行
chmod 666 /dev/ttyUSB0
✨ 總結
Home Assistant 裝在 NAS 上是一個很划算的組合:NAS 本來就是 24 小時開著,讓它順便跑 HA 幾乎不需要額外成本。
幾個重點:
- 容器用 host 模式:不用 host 的話,自動偵測裝置會有問題
- 設定資料夾要掛載:
/volume1/docker/homeassistant→/config,否則重建容器設定全部消失 - 從一個整合開始:不要一次加太多,先把一個品牌設定好,再擴展
- 遠端用 Tailscale:最安全也最省事,不用開 Port
設定好之後,你會開始想把更多裝置加進來——這是 Home Assistant 的正常副作用。
🔗 延伸閱讀
- Synology 必裝 Docker 服務清單
- 把 Docker 資料移到 NVMe:設定方法與注意事項
- 遠端存取 NAS 的三種方式比較:QuickConnect、DDNS、Tailscale
- Synology NAS 三層防護實作:2FA、防火牆、Tailscale VPN