
1. 項目概述為什么我們需要自定義 Home Assistant如果你已經玩膩了智能家居設備自帶的App或者厭倦了不同品牌設備之間“老死不相往來”的割裂感那么Home Assistant簡稱HA就是你一直在找的那個“中央控制塔”。它不是一個成品硬件而是一個開源的、高度可定制的家庭自動化平臺。簡單來說它能把你的小米傳感器、飛利浦Hue燈泡、蘋果HomeKit設備、甚至是一臺老舊的空調遙控器全部整合到一個統一的、本地化的控制界面和自動化邏輯里?!白远x”是Home Assistant的靈魂。官方的默認安裝只是一個功能強大的“毛坯房”。它提供了基礎框架和連接能力但真正讓它變得智能、貼心、符合你個人生活習慣的正是后續的深度自定義。這包括了從界面UI的個性化布局到編寫復雜的自動化腳本再到集成非官方支持的“野路子”設備。整個過程就像是在組裝一臺專屬于你個人習慣的超級電腦。最近很多新手朋友喜歡通過VirtualBox虛擬機來安裝和體驗Home Assistant這確實是一個風險低、易上手的入門方式避免了直接折騰實體硬件可能帶來的麻煩。這篇文章我將以一個多年HA玩家的視角帶你從虛擬機安裝開始一步步深入到核心的自定義環節。我不會只告訴你“點這里點那里”而是會重點解釋每一步背后的邏輯和選擇的原因并分享那些官方文檔里不會寫的“踩坑”經驗和實用技巧。無論你是想打造一個炫酷的控制面板還是實現“人離開家自動關燈關空調”的自動化這里都有你需要的干貨。2. 基礎搭建從虛擬機安裝到首次登錄在深入自定義之前一個穩定可靠的基礎環境是前提。對于絕大多數初學者和希望靈活測試的玩家在VirtualBox虛擬機中安裝Home Assistant Operating SystemHAOS是最佳起點。HAOS是一個包含了HA核心、管理工具和依賴環境的完整操作系統鏡像省去了手動配置Python、數據庫等一堆依賴的麻煩。2.1 虛擬機環境準備與關鍵參數解析首先你需要準備兩樣東西最新版的VirtualBox和Home Assistant OS的虛擬機鏡像.vhd格式。去官網下載時務必選擇對應你電腦CPU架構的版本通常是x86_64。創建虛擬機時有幾個參數設置至關重要它們直接決定了HA運行的流暢度和未來的擴展性系統類型選擇Linux版本選擇Other Linux (64-bit)。這里不要選錯雖然HAOS是特制系統但內核是Linux。內存至少分配4GB4096 MB。這是底線如果同時運行較多插件或進行日志分析建議分配到6-8GB。內存不足是導致HA卡頓、插件啟動失敗的最常見原因。硬盤虛擬硬盤務必選擇VDI格式并選擇動態分配。初始大小建議設置為32GB或更大。動態分配意味著它不會立刻占用你32GB的物理空間而是隨著HA里日志、數據庫、插件的增多而逐步增長。別設太小因為HA的數據庫和日志文件會隨時間膨脹空間不足會導致系統崩潰。網絡這是最關鍵的一步。必須將網卡連接方式設置為“橋接網卡Bridged Adapter”。它的作用是讓虛擬機從你的家庭路由器那里直接獲取一個獨立的IP地址就像你家里新接入了另一臺真實的電腦或手機一樣。這樣做有兩個巨大好處第一你的手機、電腦在同一局域網下可以直接通過這個IP訪問HA無需復雜配置第二未來HA需要發現和連接同一局域網下的智能設備如燈泡、插座時橋接模式是必要條件。如果選擇默認的“網絡地址轉換NAT”HA將處于一個虛擬的子網中無法直接與你的物理設備通信很多自動化功能會直接失效。注意在啟動虛擬機前還需要在虛擬機的“存儲”設置里將下載好的HAOS的.vhd鏡像文件加載到虛擬光驅中。這是為了讓虛擬機從該鏡像啟動并完成系統安裝。2.2 首次啟動與核心服務等待配置完成后啟動虛擬機。屏幕會顯示一個啟動過程最終會停留在一個命令行界面顯示著Home Assistant的Logo和一行IP地址信息。請務必記下這個IP地址例如192.168.1.100。此時打開你物理電腦的瀏覽器輸入http://你記下的IP地址:8123。你大概率會看到一個提示“正在準備 Home Assistant…”的頁面并告訴你這可能需要20分鐘左右。這是完全正常的請耐心等待。在這段時間里HA在后臺進行初始化工作建立數據庫、創建默認配置、下載核心組件等。很多新手在這里會頻繁刷新頁面或重啟虛擬機反而可能導致問題。你可以去喝杯咖啡20分鐘后回來應該就能看到創建初始管理員賬戶的頁面了。設置好用戶名、密碼和家庭名稱、位置時區等信息就正式進入了HA的儀表盤。實操心得首次啟動的等待時間取決于你的網絡速度和虛擬機性能。如果超過30分鐘仍無進展可以去VirtualBox里查看虛擬機的“日志”或者回到HA的命令行界面查看是否有錯誤輸出。常見問題包括網絡未連通檢查橋接設置、宿主機防火墻/安全軟件攔截等。3. 核心自定義一集成與實體——連接你的智能世界登錄后看到的默認儀表盤幾乎是空的因為HA還沒有和任何你的設備“對話”。自定義的第一步就是通過“集成”來添加和管理你的設備。3.1 理解“集成”與“實體”的核心概念這是HA里最重要的兩個概念理解它們才能玩得轉。集成可以理解為一個驅動程序或連接器。它負責與某一類或某一個品牌的設備/服務進行通信。例如“Hue”集成用于連接飛利浦Hue橋接器和燈泡“MQTT”集成用于連接那些通過MQTT協議通信的DIY設備“Xiaomi Miot Auto”集成用于連接小米生態鏈的大部分設備。實體是集成連接后暴露給HA進行控制的具體對象。一個設備可能包含多個實體。例如一個小米溫濕度計通過集成連接后會生成兩個實體sensor.temperature溫度傳感器實體和sensor.humidity濕度傳感器實體。一個智能插座則會生成switch.plug開關實體和可能存在的sensor.power功率傳感器實體。你的所有自動化、儀表盤都是基于“實體”來操作的。因此添加集成的過程就是為HA“安裝驅動程序”從而發現并創建“實體”的過程。3.2 添加集成的實戰流程與避坑指南進入HA側邊欄的“設置” - “設備與服務”。點擊右下角的“添加集成”按鈕。你會看到一個龐大的集成列表可以通過搜索框快速查找。以添加“Xiaomi Miot Auto”這個強大的第三方小米集成為例搜索并點擊“Xiaomi Miot Auto”。通常它會提示你選擇登錄方式。對于小米設備推薦使用“賬號模式”即輸入你的小米賬號和密碼或令牌。授權成功后集成會自動掃描你的小米賬號下綁定的所有設備并列出清單讓你選擇哪些需要添加到HA。勾選你需要的設備確認。稍等片刻這些設備對應的實體就會出現在你的HA中。你可以在“設置” - “設備與服務” - “實體”中查看所有實體。注意事項與高級技巧優先使用本地通信集成在添加集成時留意集成的說明。如果某個集成支持“本地控制”如Zigbee2MQTT、ZHA對于Zigbee設備應優先選用。這意味著設備指令通過你的本地網關如Zigbee USB棒直接發送不依賴設備廠商的云服務器。其優點是響應極快毫秒級且即使外網斷開家庭內自動化仍可正常運行。實體ID的重命名與區域劃分自動生成的實體ID如sensor.xxxx_temperature通常很長且難以記憶。你可以在“實體”頁面點擊任意實體在彈出頁面中直接修改它的“名稱”。修改后HA會生成一個友好別名方便你在自動化中調用。同時強烈建議為每個實體設置“區域”如客廳、臥室、廚房。設置區域后在儀表盤和語音控制中會有更直觀的上下文。關于云集成對于必須通過云服務的集成如一些品牌的空調、掃地機器人要接受其延遲稍高1-3秒和依賴外網的事實。你可以利用HA的“輔助元素”功能為這些云設備創建一個本地的虛擬開關通過自動化來觸發從而在儀表盤上獲得更快的本地反饋體驗。4. 核心自定義二打造個性化儀表盤當實體越來越多默認的儀表盤就顯得雜亂無章。一個精心設計的儀表盤不僅能提升顏值更能極大提高控制效率。HA的儀表盤編輯功能極其強大。4.1 視圖與卡片儀表盤的骨架與血肉HA的儀表盤由“視圖”和“卡片”構成。視圖相當于儀表盤里的一個分頁。你可以創建不同的視圖來分類管理例如“總覽”、“燈光”、“安防”、“多媒體”??ㄆ欠胖迷谝晥D中的內容塊。每一種卡片類型用于展示或控制一類信息。最常用的卡片包括實體卡片最基礎直接顯示一個實體的狀態和控制按鈕。網格卡片一個容器可以將多個卡片以網格形式整齊排列。按鈕卡片可以自定義圖標、文字和點擊動作常用于觸發腳本或場景。地圖卡片顯示人員設備追蹤器的位置。圖片/圖片實體卡片顯示靜態圖片或根據實體狀態變化的圖片如攝像頭快照。4.2 從零開始編輯你的第一個視圖點擊HA儀表盤右上角的“編輯儀表盤”按鈕鉛筆圖標然后點擊右下角的“添加視圖”。給你的新視圖起個名字比如“燈光控制”?,F在這個視圖是空的。點擊“添加卡片”我們從最簡單的“網格卡片”開始。選擇“網格卡片”后你不需要在它的配置YAML里寫復雜代碼可以直接點擊“添加卡片”來向這個網格卡片內部添加其他卡片。例如在網格卡片內添加一個“實體卡片”然后在實體選擇器中搜索并選擇你客廳的燈實體如light.living_room_ceiling。保存后一個帶有開關滑塊和亮度色溫控制的燈光卡片就出現在了你的“燈光控制”視圖中。高級自定義技巧使用YAML模式進行精細控制雖然UI編輯器很方便但想要實現更炫酷的效果必須接觸YAML配置。在添加卡片時選擇“手動”就可以輸入YAML代碼。一個簡單的按鈕卡片YAML示例用于一鍵關閉所有燈type: button name: 一鍵關燈 tap_action: action: call-service service: light.turn_off target: entity_id: all icon: mdi:lightbulb-off這段代碼的意思是創建一個按鈕名為“一鍵關燈”點擊動作是調用“關燈”服務目標實體是所有燈圖標是一個關掉的燈泡。實操心得善用“儀表盤”與“配置”分離在“編輯儀表盤”時右上角可以切換“UI編輯器”和“YAML編輯器”。對于復雜布局我習慣用YAML直接編寫更精確。所有視圖和卡片的配置實際上都保存在HA配置目錄下的ui-lovelace.yaml文件或數據庫中。你可以定期備份這個文件。主題與外觀HA支持自定義主題。在“配置文件”目錄下創建themes文件夾放入你的主題YAML文件然后在“設置”-“儀表盤”-“主題”中啟用。網上有大量社區制作的精美主題可以一鍵改變HA的整體配色、字體、圓角等視覺效果。移動端優化HA的儀表盤是響應式的但在手機小屏幕上建議將關鍵控制卡片做得更大、更緊湊??梢詾橐苿佣藛为殑摻ㄒ粋€視圖或者使用“條件卡片”來根據訪問設備類型顯示不同的內容。5. 核心自定義三自動化與腳本——賦予家居以靈魂自動化是智能家居的“大腦”它讓設備之間能夠根據條件自動協作。腳本則是可重復使用的動作序列。5.1 自動化三要素觸發器、條件、動作每一個自動化都像一條“如果…那么…”的規則由三部分組成觸發器什么情況下啟動這條自動化例如時間到了晚上10點、傳感器檢測到有人移動、門被打開、開關被單擊。條件可選在觸發器滿足后執行動作前需要檢查的額外條件。例如如果是工作日、如果太陽已落山、如果家里沒人。條件用于讓自動化更精準。動作當觸發器觸發且所有條件滿足時要執行什么操作例如打開燈、調節空調溫度、發送一條通知到手機。5.2 創建一個實用的自動化實例讓我們創建一個經典的“回家模式”自動化當我的手機通過HA的官方App被追蹤為設備在晚上6點后進入家庭區域時自動打開門廳和客廳的燈。創建觸發器在“設置”-“自動化與場景”-“創建自動化”中選擇“從空白自動化開始”。觸發器類型選擇“設備”。選擇你的手機設備觸發條件選擇“從‘未在家’變為‘在家’”。這樣只有當你從外面回來時才觸發避免在家內移動時誤觸發。添加條件點擊“添加條件”。條件類型選擇“時間”。設置為“在…之后”輸入18:00。這保證了只有晚上6點后回家才會開燈??梢栽偬砑右粋€條件“太陽”選擇“低于地平線”這樣即使夏天天黑得晚也能確保只在天黑后開燈。定義動作點擊“添加動作”。動作類型選擇“設備”。選擇“門廳燈”實體動作選擇“打開”。點擊“添加動作”再添加一個選擇“客廳燈”實體動作選擇“打開”。你還可以繼續添加動作比如“媒體播放器播放歡迎回家的音樂”。保存并啟用這個自動化。現在當你晚上回家時燈光就會自動亮起迎接你。5.3 腳本封裝復雜操作用于復用腳本是一系列動作的集合它本身沒有觸發器和條件需要被自動化或其他腳本調用。它適合封裝那些需要多次使用的復雜操作。例如創建一個“影院模式”腳本動作1調用服務light.turn_off關閉所有燈。動作2調用服務media_player.volume_set將客廳電視音量設置為30%。動作3調用服務media_player.play_media讓電視打開某個流媒體應用。然后你可以創建一個自動化當你說“嘿Siri打開影院模式”通過HomeKit集成時觸發這個腳本或者在你的儀表盤上放一個按鈕點擊即運行此腳本。常見問題與排查技巧實錄自動化不觸發首先去“設置”-“自動化與場景”-點擊對應自動化-“歷史記錄”查看。這里會清晰記錄每次觸發的時間、條件和動作執行結果。最常見的原因是條件不滿足。檢查你的設備追蹤是否準確手機App的后臺權限是否給足時間、狀態條件是否寫對。動作執行失敗在自動化歷史記錄里失敗的動作會有錯誤提示。常見原因有實體ID寫錯、設備未響應離線、服務調用參數不正確。根據錯誤信息去社區搜索基本都能找到答案。調試利器開發者工具。側邊欄的“開發者工具”是你的最佳幫手。“服務”選項卡可以手動調用任何服務來測試動作“狀態”選項卡可以查看所有實體的當前狀態和屬性確認觸發器的狀態是否如你預期。使用“選擇”輔助元素簡化控制如果你有一組燈如所有筒燈經常需要一起操作不必在自動化里一個個列出??梢韵葎摻ㄒ粋€“選擇”輔助元素在“設置”-“設備與服務”-“輔助元素”中將這組燈實體添加進去。之后在自動化或儀表盤中你只需要操作這個“選擇”實體就能同時控制組內所有燈。6. 核心自定義四高級集成與社區插件當基礎功能滿足后你會渴望更多可能性。這時HA強大的社區生態就派上用場了。6.1 HACSHome Assistant的“應用商店”HACS是一個非官方的社區商店但它幾乎是HA高級用戶的標配。它讓你可以輕松地安裝和管理社區維護的集成、前端主題、卡片插件等。安裝HACS在HAOS中確保你的HA可以訪問互聯網因為需要從GitHub下載。在HA的“設置”-“加載項”中安裝“SSH Web Terminal”加載項并啟動。這為你提供了一個命令行界面。在Web Terminal中輸入官方的一鍵安裝命令命令請在HACS官網獲取最新版。安裝完成后重啟HA。重啟后在側邊欄會出現“HACS”選項。首次進入需要輸入GitHub令牌進行認證按照頁面指引在GitHub生成一個即可。通過HACS你可以搜索并安裝像“Xiaomi Miot Auto”、“Baidu Map Card”百度地圖卡片等成千上萬的社區集成和卡片極大地擴展了HA的能力邊界。6.2 集成非標設備MQTT與ESPHome對于DIY愛好者或者那些HA沒有官方/社區集成的設備MQTT和ESPHome是兩把終極利器。MQTT一種輕量級的發布/訂閱消息協議。你可以將任何能連接Wi-Fi并運行了MQTT客戶端代碼的設備如ESP8266開發板接入HA。設備將傳感器數據“發布”到某個主題HA通過訂閱該主題來獲取數據HA將控制指令“發布”到另一個主題設備訂閱該主題來接收指令。你需要先在HA中安裝“Mosquitto broker”加載項一個MQTT服務器然后在“集成”中添加MQTT。ESPHome這是一個更高級的框架專門為ESP8266/ESP32等開發板設計。你通過編寫簡單的YAML配置文件來描述你的設備如定義了哪個引腳接了什么傳感器ESPHome會幫你編譯并燒錄固件到開發板。燒錄后設備會自動連接到你的HA并完美集成生成對應的實體無需你手動處理MQTT的主題訂閱。對于DIY傳感器、開關ESPHome是體驗最好的方式。6.3 備份與恢復自定義成果的保險箱你的所有自定義配置集成、自動化、腳本、儀表盤都保存在HA的配置目錄中。定期備份至關重要。最可靠的備份方式快照功能HAOS提供了完整的系統快照功能在“設置”-“系統”-“備份”中。它可以備份整個系統的狀態包括數據庫、配置、加載項。這是最徹底的恢復方式。建議在做出任何重大改動前手動創建一個快照。文件備份對于高級用戶可以通過Samba加載項或SSH直接訪問HA的文件系統將/config目錄整體復制出來。這里面包含了你的configuration.yaml主配置文件、automations.yaml、scripts.yaml、ui-lovelace.yaml等所有核心配置。我個人習慣是每周自動創建一個快照HA可以設置自動快照計劃并存到網絡存儲或另一臺電腦上。同時使用Git對/config目錄進行版本管理每次修改配置后提交一次這樣能清晰地追蹤每一次變更方便回滾到某個特定版本。自定義Home Assistant是一個持續的過程它沒有終點因為你的需求和想象力會不斷增長。從虛擬機安裝起步逐步添加設備、設計界面、編寫自動化再到探索社區插件和DIY硬件每一步都在讓你的家變得更智能、更貼合你的習慣。關鍵在于動手嘗試從一個小自動化開始遇到問題善用官方文檔和活躍的社區論壇。記住最酷的智能家居系統永遠是那個為你量身定制的系統。