前言
這些年寫了不少智慧家居教程,但是基本都是基於米家或者homekit,屬於廠家搭建的平臺,也比較小白化,自動化場景根據提示來完成就OK。
無論是米家還是homekit,都有一定侷限性,比如產品本身不支援平臺,就無法接入系統了,又比如條件設定比較簡單,不能完成一些自己想要的自動化場景。
不是每位消費者都研究那麼仔細,另外由於品牌自我圈地保護意識,當你選購了不同的產品需要多個APP操作,不能實現整體統一,會比較鬧心。
比如現在流行的homekit和米家,有多個品牌在做,有的品牌同時支援米家和homekit,有的僅支援homekit,有的兩者都不支援。
開源平臺就是因此而誕生,可以相容多家的裝置,自己diy感測器,以及透過反向接入,進入到homekit介面裡,包括自定義自動化場景,並且隨著加入的人越來越多,現在開源平臺homeassistant已經沒有那麼複雜了,眾多大神貢獻著自己的力量,你所要做的就是拿過來為我所用。
homeassistant其實並不複雜,至少從現在的趨勢來看是越來越簡單了,本文就是從零開始,主要講解前期homeassistant的搭建、UI美化、裝置接入,未來還有更多的系列教程,這大概是每一個玩智慧家居都會經歷的路線。
前期搭建所需的裝置及搭建過程
開源智慧家居因為需要長期線上,那麼低功耗且一直可以開機的裝置尤為關鍵,目前來看主要是NAS和更加複雜一些的樹莓派,從效能裝置上來說,主要區分為X86和ARM裝置。
從入手難易程度來看,NAS更適合初步接觸開源智慧家居的小白,真的全部從零開始,包括學習電路板的焊接和程式設計,估計會勸退一大堆觀望的使用者。
這次主要以群暉的X86架構的NAS為平臺搭建,畢竟群暉的NAS特性很適合小白使用,不會太過Geek範,介面平易近人,系統生態也很齊全。
我這裡使用的平臺為群暉的DS920+,也是我目前使用作為備份的一臺NAS裝置。
這臺DS920+我是設定了四盤RIAD10陣列,兼顧效能和安全,就是比較浪費硬碟空間,四塊8T硬碟總共提供了14T左右備份空間。
日常使用中群暉920+負責同步備份我的mac mini 雷電外設中的影片、圖片檔案,之前使用其他品牌,在win下同步備份執行穩定,但是到MAC系統中就出現了很奇怪的問題,幾個月解決無果後,我換了群暉,目前自動同步備份執行很穩定。
DS920+效能比較強大,同時記憶體也是筆記本規格的DDR4,可以自己拓展,除了作為homeassistant智慧家居的載體,還能同時勝任其他比如軟路由等工作,可以做到一機多用。
其他品牌的NAS也是可以的,但是在易用性和介面友好程度上,群暉基本可以說是一哥的位置,不用擔心太多么蛾子和奇怪的問題。
Synolgy 2022釋出會上也公佈了不少未來的功能點,包括macOS的按需同步、手機端應用的最佳化等,都提上了日程,還是值得期待一下的。
回到homeassistant上,讓我們開始。
對於小白們來說,我們的第一任務就是把系統裝到NAS上去,其他什麼都不需要思考。
如何安裝homeassistant?
這裡就要提及下群暉系統的一個套件,docker,你可以理解為一個容器,一個輕量化的虛擬機器。
群暉的Docker圖示是一個鯨魚加一堆集裝箱,你可以理解為homeassistant這個系統被打包成一個標準化的集裝箱,放到了鯨魚(Docker)上,鯨魚還可以運送其他標準化的集裝箱,這個集裝箱內部可以是其他應用程式和作業系統,而不是像之前不同的貨物不能混放運送。
所以我們現在要做的就是將homeassistant弄進Docker中。
Docker中的登錄檔,在這裡可以找到已經被打包好成集裝箱的程式或者系統,比如homeassistant,直接在搜尋,就能找到收藏量高達2k的一個集裝箱,我們選中後下載。
這個時候會彈出視窗讓你選擇標籤,其實就是選擇版本,一般情況下是推薦latest,也就是最新版本的homeassistant,但是這次教程我不建議選擇最新的版本,因為homeassistant更新比較勤快,新版本修復了一些bug,但是也帶來了不少bug,這次我就遇到了新版本homeassistant無法開啟介面的問題。
目前我自己嘗試可以正常執行的homeassistant版本是2021.11.5,高版本的問題應該會修復。
選定好了版本後等待下載完成。
下載完成後在映像中雙擊,開始配置homeassistant的一些引數和設定。
在資源限制中我們要為homeassistant設定一個CPU優先順序以及記憶體限制,我因為自己增加了一條記憶體,總容量為12GB,所以給homeassistant 設定了2G執行記憶體。
勾選下啟用自動重新啟動,桌面快捷方式則是在群暉的系統桌面上建立,這個就隨意了。
這裡我們在群暉的docker資料夾裡面建立一個資料夾,我這裡命名為homeassistant,系統的配置檔案、UI美化檔案,包括後期的所有檔案都在這個資料夾內。
裝載路徑是什麼?homeassistant需要一個資料夾來存放配置檔案,這個資料夾是我們剛才建立的,所以路徑就是/config,config就是配置的意思,同理,如果另一個系統需要一個資料夾來存放資料檔案,那麼路徑就會變成/db,db是datebase,也就是資料的意思。
理解裝載路徑後,就算你重新升級homeassistant,只要homeassistant這個資料夾內的資料沒有被刪除,所有的配置都還在,無需重新手動梳理一遍。
網路設定中我們直接勾選與docker host相同的網路,也就是和群暉使用同一個網路,省去了對映埠的麻煩。
環境中我們新增一個時間,也就是TZ,設定為Asia/Shanghai,其實就是東八區時間。
勾選嚮導完成後執行此容器,點選完成,就完成了最初的搭建。
在容器中可以看到目前執行的時間,在編輯中有重啟操作,我們接下來的很多步驟都需要在這裡進行重啟,如果你遇到了設定後homeassistant達不到預期目標,很可能就是沒有重啟。
輸入你的NAS IP地址:8123,就可以開啟homeassistant的初始介面了,預設埠號就是8123。
這裡使用者名稱可以是中文。
不過這樣的介面你覺得如何?是不是很簡單,內心毫無波瀾,我們玩開源智慧家居,除了整合不同平臺的裝置,美觀也是非常看中的,如果介面太過於樸素,那為什麼我不繼續玩單一的米家呢?
homeassistant介面的美化
因為開源,網上有很多超級大神做的UI美化包,拿來所用,豈不美哉,當然如果你有更強的設計動手能力,也可以自己製作更好的主題,並且更換。
主題的更換,包括我們後期很多裝置接入智慧家居,都需要一個homeassistant智慧家居平臺的一個內部商店,你可以理解為有了這個商店,我們才可以在這個商店內找到很多資源,才可以進行下去。
在安裝hacs這個商店之前,我們需要在群暉的homeassistant根資料夾下建立一個自定義元件的資料夾,命名為custom_components,在這個自定義元件資料夾下新建hacs的資料夾。
這裡其實還需要建立一個WWW的資料夾。
接下來需要下載HACS,玩homeassistant,我們需要經常訪問的一個網站叫做github,這個網站你可以理解為一個面向開源以及私有軟體專案的託管平臺,是程式猿心中的YYDS,是神。
HACS以及很多資源,都是從github上獲取的,這裡也需要註冊一個賬號,後續都會用到。
訪問https://github.com/hacs/integration/releases/,獲取最新版本的HACS。
下載好的HACS資料夾是一個壓縮包,直接解壓,並且複製所有的檔案到我們剛才新建的HACS檔案裡就好。
重啟容器,就是我剛才提及到重啟方式。
進入到homeassistant中,在配置中找到整合。
如果你操作步驟都沒有問題,可以在設定新整合中搜索到HACS,如果還是搜尋不到,那麼就是出錯了,或者沒有重啟。
搜到HACS繼續下去,這裡會彈出一個啟用視窗,建議搜之前先在github上登入自己的賬號。
彈出啟用視窗後會收到一串啟用碼,點選介面上出現的連結,在連結中填寫剛才的啟用碼就可以啟用裝置了。
出現HACS區域選項就意味著成功了。
此刻我們的左邊欄就多了HACS這個商店了,在商店裡可以找到很多我們需要的東西。
這個是正常的表現,稍等片刻就行,右側的前端就是我們要獲取精美UI需要關注的。
如果出現這個流量超限提示,那麼安心去睡個覺什麼的,第二天再繼續。
在前端中只勾選主題,可以找到很多主題,我這裡用的是一個比較知名大神做的IOS Dark mode and light mode主題。
選擇下載就行了,正常情況下可以直接安裝成功,重啟後就能在介面設定端選擇新主題。
但是,如果你的網路不是很好,或者奇奇怪怪的原因導致無法安裝成功,那就需要自己手動安裝主題了,這個稍微有一點複雜。
內建下載安裝失敗的手動安裝
首先是我們需要自己去下載這個主題,在主題介紹的介面有連結,直接點進去就可以看到檔案包。
下載按鈕在右側的code上,下載後我們其實只需要其中的themes資料夾中的檔案。
在homeassistant中新建一個主題資料夾,themes。
此刻我們開啟下載之後需要的themes資料夾,這些檔案就是我們需要的。
在我們剛才新建的themes資料夾下再建立一個和配置檔案同名的資料夾,為ios-themes,將剛才的檔案全部複製到這裡。
然後我們需要修改一個配置檔案,在根目錄下,為configuration.yaml。
修改配置檔案需要群暉docker下的一個文字編輯工具。
或者你可以將檔案下來在win中使用notepad++編輯器修改後覆蓋上傳,不能使用自帶的文字編輯器,會出現問題。
在這個配置檔案裡增加兩行就可以。
frontend: themes: !include_dir_merge_named themes
這兩行程式碼就是讓系統理解我們在新建檔案裡的配置檔案。
重啟後就能選用其他主題了。
是不是好看了很多?
接入智慧家居裝置(米家系)
接下來我們要進行智慧家居裝置的接入了。
HA本身程式碼是開源的,只要支援標準的藍芽mesh和wifi都可以接入HA。
如果你的裝置是米家系,那麼可以直接使用大神的高度整合外掛的方式,直接一次性接入。
如果你的裝置是一些常見體量很高的裝置,也同樣可以使用大神們早已搞定的方案接入,有些甚至已經整合到了官方APP中,可以直接授權接入到homeassistant中。
如果是一些小眾裝置,支援wifi接入的,需要透過一些手段去獲取這些裝置的一個關鍵key,配合IP地址去實現接入。
不過隨著廠商們出於自身利益的考慮,很多裝置無法去獲取這個關鍵引數,想要玩開源,可能真的需要從DIY感測器開始了。
這次我們先從最簡單的開始,也就是大神做的米家系高度整合外掛,接入米家的裝置可以全部打包接入到HA中。
一次性講解太多複雜的內容可能導致棄坑。
這個大神製作的整合外掛名稱是xiaomi mioT。
在配置中的整合是可以新增外掛的,但是xiaomi mioT直接搜尋是沒有的,需要我們在HACS商店中先新增這個外掛。
同美化介面一樣,HACS這次需要點選整合去搜索xiaomi mioT。
不過這次是國內大神製作的外掛,有中文版,正常情況下搜尋到直接安裝即可。
如果和美化UI一樣安裝失敗,外掛作者也貼心的給出了手動安裝的方法,這裡我就不詳細介紹了,中文寫的明明白白。
安裝重啟容器後此刻在配置中就能找到xiaomi mioT。
兩種方式可以接,第一種是最輕鬆,小白也可以快速搞定的接入方式,透過小米賬號,但是這種方式會接入所有你小米賬號下的裝置,包括不在區域網中,其他環境中的米家裝置。
而且這種方式也會受到賬號本身的一些限制。
第二種是透過IP/token,需要自己去用手段搜尋裝置的token新增,不是很複雜,但是數量上,像我動輒幾十個裝置就比較吃力,但是後期基本還是走這條路。
這裡就聊第一種,也是最合適小白的。
勾選中後可以選中需要接入的智慧家居裝置。
不過我這裡只是演示下,詳細的後續新增和設定自動化場景要在我手動token接入HA中另起爐灶,單獨出一篇後續。
總結
相對於早期HA需要手動新增程式碼,和安裝中大量程式碼的複雜方式,現在的HA對小白非常友好,基本上可以按照步驟一步一步來,有一點點基礎就能搞定。
下一篇屬於後續的區域網接入,包括一些非米家系裝置,自動化場景,以及更深的最佳化美化UI介面,屬於進階教程。