筆記(一)Home Assistant簡介
Home Assistant 是一款基于 Python 的智能家居開源系統,支援衆多品牌的智能家居裝置,可以輕松實作裝置的語音控制、自動化等。
Home Assistant 運作在 Python 3.5.3 及以上 環境下,一般來說,符合 Python 運作條件的系統皆可安裝 Home Assistant。
1、安裝運作
Home Assistant支援四種不同的安裝方式,表中比較了這幾種安裝方式所支援的功能:
OS | Container | Core | Supervised | |
---|---|---|---|---|
Automations | ✅ | ✅ | ✅ | ✅ |
Lovelace | ✅ | ✅ | ✅ | ✅ |
Integrations | ✅ | ✅ | ✅ | ✅ |
Blueprint | ✅ | ✅ | ✅ | ✅ |
Users Container | ✅ | ✅ | ❌ | ✅ |
Supervisor | ✅ | ❌ | ❌ | ✅ |
Add-ons | ✅ | ❌ | ❌ | ✅ |
Snapshots | ✅ | ❌ | ❌ | ✅ |
Managed OS | ✅ | ❌ | ❌ | ❌ |
官方推薦使用以下兩種安裝方式:
- Home Assistant Operating System(HassOS):Home Assistant作業系統,使用
管理Home Assistant Core和預裝的附加元件。Supervisor
- Home Assistant Container:獨立的基于容器的 Home Assistant Core 安裝(例如 Docker)。
對于有經驗的使用者可以使用以下兩種安裝方式:
- Home Assistant Supervised:手動安裝Supervisor。
- Home Assistant Core:使用Python虛拟環境安裝。
PS:推薦使用Raspberry Pi 4B + HassOS,這樣就可以獲得Home Assistant的完整體驗,該安裝方式會在之後的筆記中進行說明。
安裝方式詳情如下:
Home Assistant Installation
Home Assistant 中文文檔 安裝
2、基本配置
Home Assistant安裝完成并啟動後,通過
http://<ip>:8123
通路,初次使用會要求配置管理使用者等資訊。
Home Assistant 當中各類智能家居裝置以元件(Components)的形式,通過配置
configuration.yaml
檔案接入,該檔案通常位于
~/.homeassistant/
目錄下。
YAML 基本文法規則:
- 大小寫敏感
- 使用縮進表示層級關系
- 縮進時不允許使用Tab鍵,隻允許使用空格。
- 縮進的空格數目不重要,隻要相同層級的元素左側對齊即可
【注意】yaml配置檔案修改後,需要在網頁管理頁面的 配置-服務控制-配置檢查 處檢查配置檔案格式是否正确**。**
3、概念說明
Home Assistant需要明确**實體(entities)、裝置/服務(devices/services)、區域(areas)、內建(integrations)**這幾個概念,下圖是其相關關系:
3.1 實體(entities)
**實體(entities)**可以說是Home Assistant的最小機關,表示某種單一的屬性或者狀态。如燈的亮滅、開關的閉合、以天為機關的天氣預報、以小時為機關的天氣預報、手機的電池電量、手機的IP位址、手機的内部存儲或外部存儲、地點(公司、家、學校等)、系統使用者等。
實體可以單獨存在,也可以由各種裝置或者服務包含。
3.2 裝置/服務(devices/services)
**裝置(devices)**對應某種具體的裝置,如小米電鍋、小米台燈、手機、列印機等。
**服務(services)**對應某種具體的服務,如天氣。
通常情況下,裝置或者服務包含一個或者多個實體。
3.3 區域(areas)
**區域(areas)**是某個指定範圍,區域是多個實體、裝置或服務的集合,在使用過程中,卧室、客廳、廚房、衛生間等都是一個區域。
3.4 內建(integrations)
**內建(integrations)**通常指同一類型的裝置或服務的集合,或是對應的平台。截止到2021年04月26日,Home Assistant已收錄1771類內建服務。
如小米的Xiaonmi Router、Xiaomi Sensor、Xiaomi Switch等:
如天氣相關的各種服務:
如各種hub:
4、功能說明
Home Assistant有藍圖(blueprint)、自動化、場景、腳本、輔助元素、标簽幾個主要功能,通過各個功能的配合使用,實作家庭自動化。
4.1 藍圖(blueprint)
**藍圖(blueprint)**提供一系列的自動化模闆,通過藍圖可以快速建立家庭自動化執行個體,以下為 移動亮燈 和 地點離開提醒 的兩個藍圖。
點選建立移動亮燈的自動化應用,會進入自動化建立頁面,選擇檢測傳感器實體、需要控制的燈和一些其它配置資訊就可以建立該自動化應用。
4.2 自動化
自動化是智能家居系統的核心,Home Assistant 提供了豐富的自動化配置模闆和延展性。預設安裝環境下,自動化相關檔案為
automations.yaml
,使用者也可通過前端頁面 (配置——自動化)編輯自動化,在前端編輯儲存後,
automations.yaml
檔案将自動同步更新。
Home Assistant 中的自動化遵循觸發條件
trigger
—— 環境條件
condition
—— 執行動作
action
的三步邏輯。
觸發條件是我們傳統意義上的條件,即某個事件的發生啟動了自動化的程序,觸發條件可為多個;環境條件是附加條件,可為空,即在觸發條件發生下,自動化還受某些環境因素所制約;動作則是自動化的目标和終點,即自動化最終要實作的操作。
執行的動作可以為多種類型,如打開裝置、服務調用、場景激活等。
4.3 場景
定格一組裝置的狀态,後續可一鍵恢複,配合自動化使用。
4.4 腳本
執行一系列的動作,配合自動化使用。
4.5 輔助元素
輔助建構自動化的元素,主要有開關、文本、數值、日期時間、下拉菜單、計數器、計時器等。
如在執行自動化時,可以将添加的計數器作為一個環境條件,用于判斷是否執行,也可以将其作為執行動作。
4.6 标簽
标簽分NFC和二維碼兩種,用于觸發自動化。
5、其它功能
5.1 開發人員工具
用于開發人員對系統進行調試,分狀态、服務、模闆和事件四部分,分别用于實體狀态、服務調用、顯示模闆以及事件觸發的調試和開發
5.2 自定義實體
調整每個實體的屬性。添加/編輯的自定義設定将立即生效,删除的自定義設定将在實體更新時生效。實體添加後,可通過該功能修改實體資訊
5.3 lovelace 儀表盤
自定義卡片布局,讓控制裝置更友善。
5.4 人員
管理Home Assistant跟蹤的人員,可以和手機等裝置綁定,實作人員運動軌迹跟蹤,協助自動化執行。
5.5 地點
管理要跟蹤人員的區域,如可以添加公司、學校等,但人員進入或者離開地點時,可以觸發自動化任務。
5.6 使用者
系統背景使用者管理。
參考連結
Home Assistant 官方文檔
Home Assistant 中文文檔
Xiaomi Smart Home Ecosystem.xlsx
樹莓派、HomeAssistant、微信小程式實作智能家居互聯
智能家居從零開始(Home Assistant)
樹莓派 + Home Assistant + HomeKit 從零開始打造個人智能家居系統(5):進階配置 Home Assistant
樹莓派 + Home Assistant + HomeKit 從零開始打造個人智能家居系統(7):平面圖(Floorplan)
Home Assistant git倉庫位址