[教學] Home Assistant 的安裝方式 - 1. Raspberry Pi

什麼是 Home Assistant


Home Assistant(後面以 HA 稱呼)是一套開放原始碼的軟體(後來已經演變成連作業系統都包辦的完整方案),可以用來整合許多不同廠牌的裝置於一個單一平台,讓原本因為各家標準不一導致無法互通的裝置,能透過 HA 以及上面內建的各種自動化功能互相連動。

HA 也內建有能把整合的裝置再導入到其他平台中使用的能力,例如 Apple Home(HomeKit)、Google Home(Google Assistant)、Amazon Alexa 等等。雖然 HA 本身是免費的自由軟體,但由於透過社群維護的關係,有許多人投入開發各種不同的套件以及各種硬體的整合,使得 HA 變得十分強大且彈性,甚至比起昂貴的商用方案也毫不遜色。


Home Assistant 的 Lovelace 面板介面



如何取得 Home Assistant?


HA 可從官方網站直接免費下載,支援多種平台及安裝方式。完整的 Home Assistant 包含了 Home Assistant Core(核心功能的 Python 程式)、Supervisor(一個管理 Core、OS、以及擴增套件的管理層)以及 OS(底層的作業系統)等多個組件統合為一體的環境,而進階的使用者可以只安裝 Home Assistant Core,並依照自身需求手動增加需要的組件。

初次使用 HA 的人大多會感到學習門檻很高,主因還是出在安裝方式太多,加上不同時期的教學文章跟不上 HA 改版後的變化,或網路上的教學使用比較進階的安裝方式,導致相關領域經驗不足的初學者遭遇太多突發問題,而讓整個學習過程感到挫折連連。

因此我個人會建議先從官方完整套裝的裝法開始體驗,降低初期使用的門檻,等待自己能力跟經驗跟得上後,再使用其他進階裝法。以這篇教學來說,會先從 Raspberry Pi 的安裝方式開始,之後會有另外一篇教學教大家如何使用 Virtual Machine(虛擬機器)的方式在其他平台安裝 HA。

目前預計會有 1. Raspberry Pi、2. Windows / Mac 上的 Virtual Machine、3. Synology NAS(VM)、4. Home Assistant Supervised 等幾篇安裝教學。


什麼是 Raspberry Pi?為何要用它?


簡單來說,Raspberry Pi 是一台小電腦。一般我們使用的桌上型電腦包含有處理器、記憶體、主機板、顯示卡、輸入輸出介面等可替換升級的組件,而 Raspberry Pi 是一台 SBC(Single Board Computer,單板電腦),也就是完整電腦該有的主要組件都做在一塊電路板上的高度整合裝置。這種類型的電腦架構比較常在工業嵌入式系統裡看到,但近年由於 maker(創客)風氣的提升,也開始有許多 SBC 被用於教育市場以及快速開發流程上,而 Raspberry Pi 就是其中一種比較廣為人知且被大量使用的 SBC,主要就是便宜、小巧、容易取得、且相關資源豐富。(以最新款的 Raspberry Pi 4B 4GB 來說不到台幣兩千)

HA 是一套統合大量不同裝置的平台,因此一但設置完成,就會 24/7 不間斷的開機運轉。前面有提到 HA 可以被安裝在許多不同的平台上,包含完整功能的桌上型電腦也行,但考量桌機運作時的能源耗損,這樣不間斷開機的使用似乎不是很有經濟效益,但像是 Raspberry Pi 這樣的小電腦就很適合。除了可以無風扇無噪音的運作(但會建議使用較大散熱片),效能對於 HA 來說也十分堪用,加上體積小巧,設置在任何地方都很方便。

HA 官方有提供完整的 Raspberry Pi 磁碟映像檔案(一種紀錄磁碟完整結構的檔案,便於複製、還原磁碟),寫入到記憶卡後就能開機使用,十分簡便。



raspberry_pi

Raspberry Pi 4B 連接埠示意

Image Credit: https://www.raspberrypi.org/




我需要準備什麼?


  1. Raspberry Pi 4B(記憶體有 2GB/4GB/8GB 三個版本,8GB 建議 64 位元作業系統)

  2. 能達到 3A 以上輸出電流的 Type-C 變壓器/充電器(舊手機的充電器如果規格達到也能用)

  3. 一張 Micro SD 記憶卡(建議 32GB 以上能支援 A2 效能的)或 SSD 固態硬碟(推薦)

  4. 能讀取 Micro SD 記憶卡的讀卡機(如果電腦沒內建的話)

  5. Raspberry Pi 的外殼/散熱片(非必備)

很多人一開始玩 HA 的時候常常會忽略記憶卡效能的重要性。記憶卡等同於 Raspberry Pi 的系統磁碟,使用低效能的記憶卡除了執行緩慢外,品質不佳的卡片甚至會導致寫入錯誤、系統當機等問題,壽命也撐不久。因此官方建議使用能支援 A2 程式執行效能的記憶卡。我個人都使用高品質的工業或耐久性記憶卡,目前還沒有遇到操掛的情況。

有些地方會販售包含外殼、散熱片、記憶卡、以及變壓器的同捆包,整體價格有時會單獨買便宜一些,但隨附的記憶卡通常等級不會太好,還是建議另購使用。

由於目前 SSD 的價位已經低到等同高階記憶卡,甚至更便宜的程度,故也推薦使用 SSD 安裝,整體啟動速度感受會提高很多,SSD 有分散寫入的機制,寫入耐久性也比記憶卡好很多。相關說明可以捲到最下面查閱。


安裝流程 - Home Assistant 官方提供的方式


  1. 下載 balenaEtcher 並安裝。(這是一套用來將磁碟映像檔寫入到記憶卡的軟體)網站會自動偵測使用的作業系統並提供對應的連結。如果連結不正確也可以使用下拉選單選擇正確的版本。

按紅框處的按鈕下載 balenaEtcher 安裝檔



執行 balenaEtcher,可以透過 HA 官方連結下載磁碟映像檔離線燒錄,或選擇不下載,透過 URL 網頁連結直接讓 balenaEtcher 處理。由於每次版本更新檔案連結就會不同,故這裡就不直接提供連結,請直接到官網下載

依照下面圖片上的位置,選擇要使用的版本。Raspberry Pi 4B 可以選擇 64 位元或 32 位元的版本來使用,如果買的是 8GB 的版本,建議要使用 64 位元的版本,因為有記憶體定址的問題。如果未來想要使用 Raspberry Pi 上面的 GPIO(通用輸入/輸出的針腳)來控制一些外部裝置或擴增模組,則需要使用 32 位元的版本。由於目前一些套件逐漸往 64 位元版本靠攏,建議使用 64 位元的版本。

選擇好燒錄來源後,將記憶卡放入讀卡機,用中間的選項選定要寫入的讀卡機,確認後按最後一個 “Flash” 燒錄按鈕,整個流程就會開始。(剛開始系統可能會有安全警告確認是否要對記憶卡做寫入動作,需要同意才可繼續)

燒錄完成後卸載記憶卡,安裝上最困難的步驟就結束了。

如果已經下載磁碟映像檔,就選擇 “Flash from file” 並選擇下載的檔案,或透過 “Flash from URL” 用網路連結燒錄。




在官方網頁上找到框選處的位置,選擇要下載的版本。(滑鼠移到連結位置會有複製的選項,複製後貼上 balenaEtcher 或瀏覽器下載)



  1. 將記憶卡置入 Raspberry Pi 的記憶卡插槽,接上網路線(因為安裝過程會從網路下載需要的檔案)與電源,會看到 Raspberry Pi 上的指示燈亮起,接著會花點時間開機並進行初始程序。

Home Assistant 的整個設定介面主要都是透過網頁進行,因此可以不用將螢幕、鍵盤等接到 Raspberry Pi 上,只是需要點耐心等待整個開機過程。數分鐘後,可以嘗試用瀏覽器查看 homeassistant.local:8123 或 homeassistant:8123 ,我大部分會直接開路由器/網路分享器的 DHCP 連線裝置清單,當有名為 homeassistant 的裝置連上時,把那個裝置取得的 IP 複製,並在瀏覽器輸入 http://ip_address:8123(把 ip_address 用查到的 IP 取代)就會看到下面圖例的畫面:

看到此畫面務必耐心等待,切勿重開機或干擾背景作業…




如果將 Raspberry Pi 接上螢幕,會看到此登入畫面,但其實所有的操作都會由網頁介面進行,文字介面一般使用者沒有操作的必要性。HA 後來的版本都會在此畫面上顯示 IP 位址以及 mDNS 網址,對於不懂得怎麼查詢 IP 位址來連網頁介面的人來說多了不少便利性。


  1. Home Assistant 完成整個環境的建置後,網頁會切換到下面的狀態,這時整個 HA 已經完成安裝,可以開始依照畫面的指示進行各項設定。



安裝流程 - 使用 Raspberry Pi Imager 的安裝方式(SSD 推薦)


二月寫這篇教學的時候,使用 SSD 安裝覺得步驟有點多,要注意的眉角也不少(例如要能 USB 開機 bootloader 要更新、SSD 的相容性以及額外電源需求等),但最近買的 Raspberry Pi 4B 發現預設的 bootloader 都可以透過 USB 開機,網上相關的相容性資料也多了不少,故提供另一種安裝的方式供參考。

Raspberry Pi 官方其實有提供一個免費好用的映像檔寫入工具,叫做 Raspberry Pi Imager。它的功能與 balenaEtcher 差不多,但是直接內建了許多 Raspberry Pi 可以安裝的系統或工具的選擇,而 Home Assistant 也是其中之一,因此只需滑鼠點幾下,Raspberry Pi Imager 就可以幫你將 SD 卡或是 SSD 準備好。




按下 CHOOSE OS > Other specific purpose OS > Home Assistant,然後選擇使用的 Raspberry Pi 硬體版本即可。剩下的步驟與 balenaEtcher 大同小異。

這樣是不是很簡單呢?

如果有多餘的預算,個人是蠻建議改用 SSD 的。除了啟動速度大幅度提升外,SSD 有平均寫入的演算法,整體使用壽命還有穩定度也會較 SD 卡好很多。以我個人使用的工業等級耐寫入的記憶卡而言,售價與 SSD 其實相去不遠,由於目前 SSD 整體來說價格已經非常平易近人,似乎也沒有繼續用 SD card 的必要性。

不過使用 SSD 還是有些事情要注意,不是每家的 SSD 都能正常在 Raspberry Pi 上開機使用。由於有些 SSD 使用較高電流,有可能會遇到 Pi 的 USB 埠無法供應足夠電流的問題,會需要串接一個可插外部電源供應器的 USB hub 去補足。

此外有些 SSD 的介面轉換晶片或許也會有相容性的問題。所幸這在一些國外論壇或網站上都有人分享可用的型號或一些常見型號會遇到的問題。對此有疑慮的話可以參考例如這個網站,或相關論壇討論。

5個讚

最近也會買一台回來試裝看看,感謝分享。
:smiling_face_with_three_hearts: :smiling_face_with_three_hearts:

1個讚