上篇發布到現在有幾周的時間了,由于工作原因此篇也是斷斷續續的寫了好久才完成 這里討論的方案是基于使用威聯通453A NAS上搭建Home Assistant服務并結合ifttt等第三方服務來實現跨平臺智能硬件統一控制,并且可以同時支持 Amazon Echo, Google Home和蘋果的HomeKit等智能終端來控制不同品牌的智能硬件產品。例如,小米生態鏈系列(燈,開關,傳感器等),Broadlink系列(開關,萬能遙控器等),電視,羅技harmony,空調等不同品牌的產品。 首先如果大家沒有看過前幾篇文章強烈建議先看一遍,這里講解的智能家居平臺是基于之前提到的家庭網絡部署方案及硬件 - 良好的家庭基礎網絡覆蓋是保障智能設備能良好運行的基礎哦! ![]() ![]() ![]()
方案思路首先LZ為什么要選擇Amazon Echo、Google Home,而不是國內的智能音箱品牌?因為:
關于Amazon Echo和Google Home的優缺點,使用了幾個月下來大概的感受是: 優點:
缺點:
優點:
缺點:
另外這2種音箱共同的缺點也許就是不支持中文語音控制了,這個也給國產的各種智能音箱帶來了競爭的資本。而水果家的Homekit的優勢在這里就能完全發揮出來,Siri原生支持中文并且支持語意分析。 服務端選擇Home Assistant作為主要智能平臺的原因是強大的智能硬件產品庫支持,及友好的前端界面,另外還支持自定義腳本來實現高級的自動化功能(下篇會講到)。下面是HA的簡要介紹
選擇Home Assistant作為服務端搭配的硬件很多人選擇的是樹莓派3,很多網絡上的文章也講解了樹莓派3+HA搭建智能化平臺的方案,這個方案其實也是LZ最早選擇的方案,但是我后期棄用了這個方案,原因是雖然樹莓派的硬件配備滿足HA的運行環境,但是由于HA中的產品庫品牌眾多,很多組件開發的好壞會直接影響到HA的性能,LZ遇到的一大問題就是某些組件運行一段時間后會導致不釋放內存直到消耗完,另外如果設備較多的話也會把本身并不是很大內存的樹莓派硬件消耗光,讓HA直接停止工作,這種情況下只能重啟HA或者樹莓派。甚至后來LZ自己設置了每天樹莓派必須自動重啟一遍才行。。。 遇到這個問題后LZ希望能有個更強大的硬件平臺來支撐HA的服務,最后終于在威聯通的NAS中實現了,如果大家看過系列的第二篇文章 - 手把手教你打造多功能家庭娛樂中心(硬件篇)可以看到LZ的家庭娛樂中心實際上是圍繞著威聯通的453A NAS實現的,那么能不能直接把HA搭建在NAS上呢?答案是通過威聯通自家的Container Station 其中一個重要的部分就是Container Station,威聯通官方的介紹是
HA使用的就是Container Station中的Docker虛擬化技術,Docker這種輕量級虛擬化技術給HA來使用太合適不過了! 可以看到我實際上是使用了2個docker,其中Homebridge鏡像是把HA中所有的智能設備轉化為Homekit服務的,這個稍后再說。 最后整體智能設備配置完成后完整的設備分布圖 - 圖太大,看不清楚可以點擊進去看全圖。 按照語音控制設備分解后單獨看3個部分的內容(隱藏了最后一層設備,看起來方便點)
可以看到3個終端有部分服務是特有的,例如,Google的Google Assistant服務和Homekit的Sense組件。這些稍后再細說。 實戰操作1.1 Home Assistant Docker的安裝及配置講解完方案后就可以開始實際操作啦!這里我盡量講解的細一點,基本上新手小白也可以一步步照著做完成 首先我們來看看安裝前需要準備的工具有哪些
準備好后,開工咯~ 首先進入NAS管理界面安裝好Container Station,在App Center中直接可以找到,點擊安裝即可 安裝完Container Station后點擊桌面上的圖標打開APP 進入后選擇左邊的創建新的鏡像 搜索欄中輸入 homeassistant/home-assistant 并點擊搜索,在返回結果后選擇 Docker Hub,并選擇第一個結果右邊的創建 (也就是前面數字最大的那個,注意別選錯了) 彈出的版本選擇latest最新版并點擊下一步 在參數配置頁面可以設置CPU限制和內存限制,因為HA所需的資源非常少,所以可以限制為15-20%完全足夠了,內存如果足夠的話(例如NAS安裝的是8G內存)可以設置為1024,比較緊的話512應該也夠了。 打開下面的高級設置,網絡設置里面把網絡模式更改為Host 在環境設置內新增一條時區設置,名稱為TZ,值為實際所在地的時區,時區列表可以在這里查到 https://en./wiki/List_of_tz_database_time_zones 最后在共享文件夾設置內,找到掛載本地共享文件夾,然后點擊新增,前面的路徑設置為準備步驟中新建的HomeAssistant文件夾,掛載路徑則設為/config,確保有讀/寫權限,最后點擊下方的創建。 等待一會后就可以在主界面上看到已經安裝完成啦!
到這里為止就完成了Home Assistant主程序的安裝!可以嘗試打開NAS內網IP地址+8123端口,例如,http://192.168.1.100:8123,如果一切正常的話就可以看到HA的管理頁面啦。 什么都沒有?別急,這個是首次安裝完的默認頁面哦~ 還需要我們來添加各個設備! 添加設備前記得先做一件事,在家里主路由里面添加端口映射到8123端口,這樣做是不光為了可以從外網打開家里的HA控制臺,另外一個重要的原因是后面一些高級自動化動作需要實時能和手機端通訊的,這個后面篇幅再詳細講解。每個路由設置端口映射的設置方式都不同,可以自己查找一下,我家的路由是Linksys WRT1200AC,在里面叫端口轉發:
設置完成后有的路由需要重啟才能生效。生效后可以在外網直接打開家里的NAS外網地址+8123端口就可以看到HA管理界面啦 終于可以開始配置Home Assistant,首先HA的各種功能基本上全是通過配置文件實現的,配置文件本身基于YAML格式。放心,其實并沒有那么復雜 先打開下載的WinSCP工具,創建一個新的站點l連接到NAS機器上,注意因為我們安裝的是Docker鏡像,所以我們需要連接的是NAS本機,而不是HA,連接創建后是可以看到NAS整個機器目錄下的所有文件的。
保存成新的站點后登錄。如果是按照我上面說的步驟配置并安裝的homeassistant鏡像,在登錄后應該可以在/share目錄下找到一個叫HomeAssistant的目錄,這個就是我們以后配置所有設備及調試的地方 進行下一步前我們再做一個事情,在程序配置中添加Notepad++(或其它之后會用來編輯配置文件的文本編輯工具)為默認的編輯器,這樣方便后面調試及修改 完成后我們進入HomeAssistant目錄,雙擊configuration.yaml這個文件,會用默認的編輯器打開,這個文件是HA的核心,所有的配置功能及設備都放在這個文件里面定義。 如果用的是Notepad++雙擊打開文件后第一件事需要做的是確認文件系統格式是UNIX格式,而非Windows格式,因為如果在Windows機器上打開這個文件,很有可能會自動轉成Windows格式,如果不改回去的話修改后保存回NAS后是無法被識別的 - 在文件的右下角這里直接可以右鍵點擊選擇文件格式 打開后首先來設置基本配置內容 文件往下拉,在這里強烈建議設置訪問密碼(特別是打開了外網訪問的情況下),除非你想讓別人隨意操作你家的燈電視空調,順便看看你的攝像頭。。。
1.2 添加智能設備配置完HA基礎信息后就可以開始添加各種智能設備啦!添加前務必先確認每個設備已初始化并在自有APP中可以正常工作,例如,Yeelight燈泡/燈帶等設備在Yeelight APP中可以正常工作,小米智能網關/開關/傳感器等設備可以在米家APP中正常工作。 下面我們要去HA的官網上找對應智能設備的接入方式,目前HA已支持上千種不同品牌的設備接入,所以幾乎市面上銷售的品牌90%都能找到,設備查找頁面 https://www./components/ 拿LZ家主力軍Yeelight智能燈泡,燈帶舉例,輸入yeelight查找可以找到2個組件,第一個應該是海外版的燈泡,國內好像沒有銷售,我們用第二個組件 點擊進入后會詳細說明這個組件的配置方式 我們只需把同樣格式的內容復制粘貼到上面的configuration.yaml文檔中然后編輯相關參數為實際設備的參數即可,如果有多個燈泡,可以全部列在 devices這個標簽下,配置完后在configuration.yaml中是這樣的
注意yeelight和很多米家設備必須還要在官方APP中打開局域網控制模式(極客模式),這樣設備才允許第三方服務接入,已yeelight設備舉例,在APP的開啟入口為 另外一個用的非常廣泛的智能設備是小米的智能網關,智能網關下面還可以添加多個子設備(藍牙通訊方式)實現各種智能自動化及通過各種感應器實現數據監測。智能網關的組件可以搜索關鍵字Xiaomi
點進去后看到所需的配置格式為 需提供的參數為網關mac地址(如果是單網關模式則無需)和key - 這個是需要我們手動到米家APP中記錄下來后填進去的,入口為打開米家APP,找到智能網關然后點擊右上方的 ... 然后
把網關添加完成后HA會自動把網關所連接的子設備自動帶入進來,不用一個個手動配置啦!
用同樣的方式來添加其他智能設備,下面是我添加的多媒體設備 設備全部添加完后可以看到已經可以使用HomeAssistant界面來控制燈光,控制電視/音響及查看各種傳感器信息等智能設備了! 結語+下集預告做到這里已經可以實現基本的遠程控制(通過HA控制界面),不過最多也只能算用軟件實現了遙控開關功能,離真正的自動化 還有一定距離,由于篇幅原因,上篇就先到這里結束咯~ 未完待續!!! 在下一篇中計劃講解的內容包括
|
|