window從零搭建homeassistant

閑著沒事瞎研究一下,主要是根據網上已有的教程自己嘗試搭建home-assistant,本文檔僅記錄一下自己的搭建過程。

一、事前準備

pc(必須為windos專業版,如果不是,可以退出本文章了)、網絡(可以訪問github)、github賬號,以及一些智能家居設備(非必需,只是為了驗證最終效果)

homeassistant(簡稱ha、hass)可以裝在任何機器上,本次采用的方式是在window電腦上安裝docker,再起linux容器進行安裝。

homeassistant作為智能家居的控制核心,是需要7*24小時待機的,正常情況下應當部署在如樹莓派、NAS上。本次只是興趣使然想要體驗一遍安裝過程,同時看下效果,判斷以后有沒有長期使用的必要。

二、安裝docker

docker是什么這里不再過多介紹,可以通俗的理解為一個虛擬機的管理器,利用它可以實現在window上跑linux,想要在windows上安裝docker,windows版本必須是專業版。

可以進入官網下載:https://www.docker.com/products/docker-desktop/,

下載完成后一路默認安裝,可以直接安裝在C盤,如果覺得C盤空間不夠,也可以指定到其他路徑,推薦安裝在固態硬盤上。

安裝完成后檢查是否安裝成功,打開一個終端(在任意文件夾路徑下,按 shift + 鼠標右鍵,選擇在此處打開powershell窗口,下方提到打開終端都是這樣操作)

輸入 docker --version

正確顯示版本號即安裝成功,(我的docker安裝較早,沒有進行升級,官網下載安裝后,可能版本不一樣)

安裝成功后啟動docker,由于默認鏡像庫地址是國外的,使用起來不方便,需要設置一下鏡像庫地址,在電腦右下角找到docker的圖標,右鍵setting,打開docker管理面板,在Docker Engine里粘貼以下內容

"registry-mirrors": ["https://mkts104l.mirror.aliyuncs.com"]

此為阿里云鏡像庫,如有需要也可以自己找其他的。

三、拉取鏡像并創建容器

docker安裝完成后,我們就可以拉取鏡像以創建容器了,為了方便下邊操作,先簡單介紹幾個需要用到的docker常用命令

 docker --help 查看幫助,以下命令均可以在幫助里找到
 docker images 查看鏡像
 docker ps 查看正在運行的容器
 docker ps -a 查看所有容器
 docker search 在鏡像倉庫里搜索鏡像
 docker pull [鏡像名]  拉取鏡像
 docker network create 為docker創建網橋
 docker run [鏡像名] 使用指定鏡像創建容器
 docker start [容器id]  啟動指定容器
 docker stop [容器id] 停止指定容器
 docker exec [容器id] 進入指定容器
 docker cp [文件路徑] [容器id:文件路徑] 向容器指定路徑拷貝文件

以上就是接下來會用到的所有docker相關命令。

  1. 查找home-assistant鏡像

    打開終端,輸入 docker search home-assistant

  2. 拉取第一個星標最多的鏡像(忘截圖了,一般只要替換了阿里云的鏡像庫,這里都不會出錯)

docker pull homeassistant/home-assistants

  1. 拉取完成后查看鏡像列表

可以看到鏡像出現在本地,正常情況下接下來只要使用該鏡像創建一個容器就好了。

根據本人的踩坑經驗,這里還需要加入一些其他步驟,因為最終homeassistant是運行在容器里的,我們想要在外部訪問,就必須要訪問容器的ip和端口(homeassistant的默認端口是8123)

但是本人實測,宿主機,即我的windows電腦,無法訪問到容器里邊的ip和端口(也有可能是我自己的問題,故這里需要加入一個步驟,以把容器的ip固定下來,同時將容器里的端口映射出來,這樣我們就可以在局域網里的任何設備上訪問了。當然,如果你事先有過docker的使用經驗,且確保自己電腦不存在這樣的問題,那以下步驟可以跳過

  1. 為docker創建一個網橋

    docker network create --subnet=172.30.0.0/16 docker01

    這里我指定的ip號段為172.30.0.0/16,后續使用該網橋生成的容器都會屬于該網段

  2. 使用之前的鏡像創建容器

    docker run -itd --privileged=true --name hass --network=docker01 --ip 172.30.0.6 -p 8123:8123 -p 6021:21 -p 6022:22 -v /sys/fs/cgroup:/sys/fs/cgroup homeassistant/home-assistant

    創建容器的標準命令為 docker run -ti [鏡像名] ,這里加入了一些其他參數,簡單介紹下其含義

--name 為容器指定別名,不指定時由docker自行分配

--network 為容器指定網橋

--ip 指定ip,ip 要在網橋設置范圍內,如果不指定ip,容器重啟后ip可能會變

-p 進行端口映射,即將宿主機端口和容器端口建立連接


根據需求修改 --name --network --ip -p 配置即可。

創建成功會返回一串id,這是新創建容器的唯一標識,記住這個id,后續會用到,不過不用全部記住,一般前3位就足以標識

  1. 啟動容器

    docker start 686 (686要替換成你的id前三位)

  2. 進入容器

    docker exec -it 686 /bin/bash

    此時會進入linux命令行模式,默認進去的路徑是 /config,這里就是 homeassistant所在路徑。

    需要注意,該鏡像生成的容器是基于 linuxkit的,內核為Alpine,默認支持的命令非常少(連vim都沒有),如果需要,可以通過 apk add命令添加(apk即為其包管理工具,如果找不到需要的內容,可以瀏覽器搜索 Alpine如何安裝xxx)

四、設置homeassistant

如果前邊的步驟順利的話,容器啟動后,我們就可以在windows上訪問homeassistant了。

  1. 登錄并注冊

    打開瀏覽器,輸入 127.0.0.1:8123,進入 homeassistant界面

    根據提示進行注冊,記好自己設置的賬號和密碼,其他的設置不重要,后期可以改。

  2. 注冊成功后即可進入homeassistant的管理界面,到這里,ha部署就算完成了。但為了將我自己米家的設備添加進來,同時也為了使用方便,還有一個重要的步驟要完成。

五、安裝HACS

hacs可以理解為homeassistant的應用商店,我們可以通過它方便的獲取到github上其他人開發的ha新內容。

安裝方式有很多,我這里采用離線安裝的方式,在github上找到hacs對應的項目,下載文件直接上傳到容器內,重啟容器即可

打開終端,進入容器,并進入homeassistant路徑,創建兩個文件夾: www 和 custom_components

docker exec -it 686 /bin/bash
cd /config
mkdir {www,custom_components}

然后從github下載hacs所需文件:https://github.com/hacs/integration/tree/main/

通過github下載,我們只需要找到custom_components/hacs 這個文件夾將其上傳即可(所有插件下載同理,在github上ha相關的項目里都會有custom_components文件夾,將其里邊的內容上傳到容器對應目錄即可 )

然后將該文件上傳到容器內,假設文件路徑為 D:\Download\hacs

新開一個終端,輸入以下命令

docker cp D:\Download\hacs 686:/config/custom_components/

進入容器內確認文件上傳成功后重啟容器

docker restart 686

容器重啟后刷新瀏覽器,重新進入hass管理界面

依次選擇 配置 -> 設備與服務 (忽略我截圖左側列表的HACS,這是添加成功后才會有的)

第一次打開時,這里應該是空的,點擊右下角添加集成,搜索HACS

選擇進行添加,由于我已經添加成功,沒辦法重復添加,在網上找了幾個添加過程的截圖:

這里四個勾全選,右下角有繼續按鈕,

這里需要復制最下方的八位字符,然后選中github的鏈接,右鍵在新的標簽頁打開,將復制的字符粘貼進去,根據提示進行認證

等待片刻就會添加成功,如果過程失敗就重新添加試試,如果多次嘗試都不成功,再考慮homeassistant和hacs版本是否兼容的問題。

添加完成后,在 配置-> 設置與日志 里找到服務管理,點擊重新啟動,不需要刷新頁面,等待片刻即可重啟成功(也可以直接重啟容器)

這時,左側列表就會出現HACS了,以后需要安裝其他插件可以通過它來安裝。

六、安裝Xiaomi MIoT

為了將米家設備接入進來,我們還需要另一個插件:Xiaomi MIoT,可以像安裝HACS那樣安裝,也可以直接通過HACS安裝,

通過HACS安裝:

依次選擇 HACS -> 集成 ,點擊右下角 瀏覽并下載存儲庫,搜索 xiaomi,找到Xiaomi MIoT進行安裝。

通過下載文件的方式離線安裝,github地址:https://github.com/ha0y/xiaomi_miot_raw

后續安裝步驟參考 hacs安裝,不再重述。

只需要登錄小米賬號,即可獲取到米家里的所有設備信息,然后就可以將它們選擇性的添加到hass了。

添加完成后,即可在首頁看到它們,也可以自定義顯示樣式

查看pc的內網ip地址,就可以在內網的任一設備上訪問(容器需要保持運行狀態),平板訪問示例:


至此,windows部署hass結束。可以愉快的玩耍啦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容