[SmartHome] 在樹莓派4B 安裝 Hass.io / HomeAssistant (with docker)

Hass.io 是安裝在作業系統層面上的一個軟體,他本身是一個 Docker 容器,同時 Hass.io 也具有 Docker 的控制許可權。

另系統層面上還有一個叫 hassio-hc 的腳本在運行,這個腳本會建立一個 sock 檔並建立 Hass.io 容器的時候用 -v 映射到 Hass.io 容器內部供容器使用。

Home-Assistant 則是跑在 Docker 下面的另一個容器,它享有與本機一樣的網路狀態,通過網路與 Hass.io 聯繫(應該是類似 Rest_api  的方式互通),而 Home-Assistant 則負責前端顯示,Hass.io 角色像是作為 Home-Assistant 的一個外掛程式那樣存在。

Addons 是依賴於 Hass.io 存在的,這些外掛程式其實就是基於 Hass.io 規範設計的 Docker 容器,發佈到 Docker Hub、Github 方便 Hass.io 調用。

1.安裝 Docker

系統中如果 Docker 已經安裝好了可以跳過這個步驟。
參考:Get Docker Engine - Community for Debian

更新 apt 索引
sudo apt-get update -y

安裝允許 apt 使用 HTTPs 取得來源的套件
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common

加入 Docker 的官方 GPG Key
curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -

安裝 Docker for Raspbian Buster (10)
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
Docker-CE need updating for raspbian buster #709

把pi user加入到 docker群組,免得每次跑docker都要sudo
sudo usermod -aG docker pi

測試 Docker 是否安裝成功 (Optional)
sudo docker run hello-world

增加Docker 的來源庫
sudo nano /etc/apt/sources.list
添加以下
deb https://download.docker.com/linux/raspbian/ buster stable
再更新一下
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade
安裝其他所需程式庫
sudo apt-get install -y bash jq curl avahi-daemon dbus network-manager apparmor-utils

2.安裝Docker 介面 Portainer(不裝也是OK, 裝只是方便管理Docker)

Portainer是Docker的圖形化管理工具,提供狀態顯示面板、應用模板快速部署、容器映象網路資料卷的基本操作(包括上傳下載映象,建立容器等操作)、事件日誌顯示、容器控制檯操作、Swarm叢集和服務等集中管理和操作、登入使用者管理和控制等功能。功能十分全面,基本能滿足中小型單位對容器管理的全部需求。
docker pull portainer/portainer:latest

設定及執行docker 介面
用宿主機9000埠關聯容器中的9000埠,並給容器起名為portainer-test。執行完該命令之後,使用該機器IP:PORT即可訪問Portainer。
docker run -d -p 9000:9000 \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --name prtainer-test \
    docker.io/portainer/portainer

3.安裝 Hass.io

查看官方支援的設備類型,自行更換為自己的設備,這邊我用的是樹梅派4B+Raspbian, 只有32bit
sudo su
curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh | bash -s -- -m raspberrypi4

如果有之前的 HomeAssistant備份,可以在此時將檔案複製到
/usr/share/hassio/homeassistant

透過瀏覽器 連接 8123 port, 有東西的話就完成囉~~~
(hassio-supervisor 會負責啟動 HomeAssistant, 需要一點時間)

參考資料: 
Installing Hass.io @ HomeAssistant
Install HASS.io on Docker – Run HASS.io on Ubuntu / Debian Systems
Install Hass.io @ GitHub



相關系列文章:

留言

這個網誌中的熱門文章

[TCL] 基本語法與指令 - 3. 資料型態

[TCL] 基本語法與指令 - 2. TCL 語法

[TCL] 基本語法與指令 - 1. TCL 簡介