Home Assistant - Arch Linux 中文维基

跳至內容

# Home Assistant

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Home Assistant，最近一次同步於 2025-08-26，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Home Assistant Supervised

Home Assistant 是一個開源的家庭自動化軟體，它把本地控制和隱私放在首位。由全球的 DIY 愛好者和技術愛好者組成的社區提供支持。

## 安裝

安裝 home-assistant包 包。

注意：Home Assistant Core 版本已被棄用，將不再由上游提供技術支援。參見 [1]

### Home Assistant Supervised

參見 Home Assistant Supervised.

## 配置

配置文件存儲在 `/var/lib/hass/` 中。如果不存在配置，則在啟動時將寫入默認配置。

## 用法

要啟動 Home Assistant，請啟動/啟用 `home-assistant.service`。

第一次啟動可能需要 20 分鐘，因為將下載並安裝所需的軟體包。[2] 您可以在日誌中看到進度。

提示：使用 journalctl 跟蹤首次更新的過程：

    # journalctl -fu home-assistant

默認情況下，Web 界面位於 `http://localhost:8123`。

備份還原功能在 Web 界面中不可用。如需還原備份，請以 hass 用戶身份解壓備份的 tar.gz 文件：

    # tar --strip-components=1 -xzf homeassistant.tar.gz -C /var/lib/hass

### 使用 MariaDB

默認情況下，Home Assistant 的 recorder/history 集成使用 SQLite。使用 MariaDB 可顯著提升性能（尤其在配置規模較大時）。Home Assistant 通過 SQLAlchemy 支持多種後端，例如 MySQL、MariaDB、PostgreSQL 或 MS SQL Server。此處僅介紹 MariaDB，其他後端請參考 recorder 集成文檔。

如果尚未安裝 MariaDB，請參考 MariaDB 了解安裝詳情。

安裝 python-mysqlclient包 依賴包。

創建新資料庫，下面示例為每個服務創建一個用戶名，並授予該用戶名前綴的所有資料庫通配符訪問權限：

    $ mysql -u root -p

    CREATE USER username@'localhost' IDENTIFIED BY some_pass;
    CREATE DATABASE username;
    GRANT ALL PRIVILEGES ON username.* TO username@'localhost';
    FLUSH PRIVILEGES;
    quit;

在配置文件中添加：

    /var/lib/hass/configuration.yaml

    recorder:
      db_url: !secret recorder_mariadb_url

在 secrets 文件中添加（若未使用 Unix socket，請參考 recorder 集成文檔 了解其他 URL 格式）：

    /var/lib/hass/secrets.yaml

    recorder_mariadb_url: "mysql://USER:PASSWORD@localhost/DATABASE?unix_socket=/var/run/mysqld/mysqld.sock&charset=utf8mb4"

最後，重啟 `home-assistant.service` 服務。資料庫將開始填充數據。更多信息請參考 recorder 集成文檔。

### 使用 PostgreSQL

你需要在 hass 的虛擬環境中安裝名為 psycopg2 的 Python 模塊。

你需要為 systemd 添加一個 附加配置片段：

    /etc/systemd/system/home-assistant.service.d/postgresql.conf

    [Service]
    ExecStartPre=/var/lib/hass/.venv/bin/python -m pip install psycopg2

這確保了 psycopg2 模塊始終被安裝。

創建角色並建立資料庫：

    [postgres]$ createuser homeassistant
    [postgres]$ createdb homeassistant -O homeassistant

配置 Home Assistant，在配置文件中添加 PostgreSQL 資料庫 URL：

    /var/lib/hass/configuration.yaml

    recorder:
      db_url: !secret recorder_postgresql_url

在 secrets 文件中添加資料庫 URL：

    /var/lib/hass/secrets.yaml

    recorder_postgresql_url: "postgresql://homeassistant@127.0.0.1/homeassistant"

最後，重啟 `home-assistant.service` 服務。資料庫將開始填充數據。

## 故障排查

### 無法訪問 USB 設備

在默認安裝中，Home Assistant 可能沒有足夠權限訪問某些設備（如 Zigbee USB 加密狗），因為這些設備受 `uucp` 系統組控制。

編輯 `home-assistant.service` 文件，在 `[Service]` 部分添加 `SupplementaryGroups=uucp`，使默認的 `hass` 用戶擁有正確的權限組。

然後，執行 daemon-reload 並 重啟 `home-assistant.service` 服務，即可正常運行。[3]

### 日誌中出現 ModuleNotFoundErrors

如果在系統軟體包升級後 Home Assistant 出現異常，可能是系統軟體包與 Home Assistant 管理的 Python 庫之間不兼容導致的。要重置 Home Assistant 的 Python 庫並重新安裝，請刪除 modules 目錄：

    # rm -r /var/lib/hass/deps/lib

然後 重啟 `home-assistant.service` 服務。

如果首次重啟後仍出現 ModuleNotFoundErrors，可能需要再次重啟。Home Assistant 會檢測到缺失的模塊並自動重新安裝。

## 參見

- Home Assistant 主頁
- Home Assistant 文檔

分類：​

- 伺服器
- 網絡應用

Home Assistant
新增話題