樹莓派安裝 HomeAssistant

前言

昨天,已經運行半年 HomeAssistant

服務的那個樹莓派,我決定對 HomeAssistant 進行升級,但是升級之後導致出現一系列問題,最終導致 HomeAssistant 服務無法啟動,所以決定重裝,鑒於之前安裝時沒有任何記錄,所以決定記錄下來最詳細的安裝步驟,給自己留下一個記錄,也希望,這篇文章能夠幫助到更多的人。

截止到寫這篇文章的時候,HomeAssistant 更新的最新版本是 0.65.5 所以這篇文章就基於此版本進行介紹。

1. 樹莓派安裝系統

請參考 jianshu.com/p/0884f105f

2.安裝 HomeAssistant

以下內容與官方指導的參考頁面完全一致: home-assistant.io/docs/

以下內容都是在樹莓派終端或者 通過 SSH 遠程控制樹莓派操作,如果想要直接複製代碼到命令行,青蔥 $ 符號之後開始複製,不要複製 $ 符號及其之前的任何內容。

個人建議在網速良好的環境下安裝或者將軟體源更換到國內,否則很有可能安裝完之後無法打開頁面,或者頁面返回 404 錯誤

2.1 使用以下指令修改樹莓派 pi 用戶的默認密碼,注意,一定要修改,否則安裝會出錯。

$ passwd

2.2 更新系統

$ sudo apt-get update
$ sudo apt-get upgrade -y

2.3 安裝依賴

如果你是下載的最新的系統,此步驟應該會很快

$ sudo apt-get install python3 python3-venv python3-pip

2.4 使用如下指令添加為系統添加一個 名為 homeassistant 的賬戶

$ sudo useradd -rm homeassistant

2.5 創建安裝目錄,並將此目錄的所有者改為 homeassistant

$ cd /srv
$ sudo mkdir homeassistant
$ sudo chown homeassistant:homeassistant homeassistant

2.6 創建並進入到 homeassistant 虛擬環境

$ sudo su -s /bin/bash homeassistant
$ cd /srv/homeassistant
$ python3 -m venv .
$ source bin/activate

2.7 安裝依賴的 python 包

(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ python3 -m pip install wheel

2.8 安裝 Home Assistant

(homeassistant) homeassistant@raspberrypi:/srv/homeassistant $ pip3 install homeassistant

2.9 啟動 homeassistant

使用下面一條指令啟動 Home Assistant ,在此過程中將會創建配置文件,並且安裝所需要的一些軟體。此過程實測在 3B 上大約耗時20-30 分鐘。你可以打開瀏覽器,輸入 ipaddress:8123(將 ipaddress 換成樹莓派的 IP 地址),直到網頁成功載入即可。

(homeassistant) $ hass

如果你可到網頁載入成功載入了 homeassistant 的主頁,那麼切回命令行,先用 Ctrl + C 退出 homeassistant ,再輸入如下指令退出 python 虛擬環境,因為我們還要安裝其他軟體。

(homeassistant) $ exit

3. 安裝 Homebridge 與 Mosquitto

此過程也可以參考 sspai.com/post/38849 ,在我第二次安裝 homeassistant 的過程中,博主的文章給我提供了很多幫助,在此表示感謝。此部分以及下一部分中部分代碼部分參考了博主的文章,在此一併聲明。

3.1 安裝 Mosquitto

pi@raspberrypi:~ $ sudo apt-get install mosquitto

3.1 運行 Mosquitto

pi@raspberrypi:~ $ mosquitto

之後按下 Ctrl + C 退出 Mosquitto 。

3.3 安裝 Homebridge

pi@raspberrypi:~ $ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
pi@raspberrypi:~ $ sudo apt-get install -y nodejs
pi@raspberrypi:~ $ sudo apt-get install libavahi-compat-libdnssd-dev
pi@raspberrypi:~ $ sudo apt-get install npm
pi@raspberrypi:~ $ sudo npm install -g --unsafe-perm homebridge
pi@raspberrypi:~ $ sudo npm install -g homebridge-homeassistant

3.4 運行 Homebridge

pi@raspberrypi:~ $ homebridge

之後按下 Ctrl + C 退出 homebridge。

3.5 設置 Homebridge

pi@raspberrypi:~ $ sudo nano /home/pi/.homebridge/config.json

然後將下列內容粘貼到文件中,Ctrl + O 保存,回車確定,Ctrl + X退出。

{
"bridge": {
"name": "Homebridge",
"username": "B8:27:EB:DB:D8:84",
"port": 51826,
"pin": "123-45-678"
},

"platforms": [{
"platform": "HomeAssistant",
"name": "HomeAssistant",
"host": "http://127.0.0.1:8123",
"password": "oplm1234",
"supported_types": ["automation", "binary_sensor", "climate", "cover", "device_tracker", "fan", "group", "input_boolean", "light", "lock", "media_player", "remote", "scene", "script", "sensor", "switch", "vacuum"],
"default_visibility": "hidden",
"logging": true,
"verify_ssl": true
}
]
}

記得將 "username": "B8:27:EB:34:D8:84", 這一行的內容指的是樹莓派的 MAC 地址,記得改為你自己的樹莓派的 MAC 地址。所有字母一律大寫,小寫無效!!!

之後按下 Ctrl + C 退出 homebridge。

3.6 設置 mosquitto 用戶名與密碼

pi@raspberrypi:~ $ mosquitto_passwd -c /etc/mosquitto/passwd pi

這裡的 pi 是創建的 mosquitto 的用戶名,運行完之後將會提示輸入密碼,改密碼將會密文存儲,所以請牢記。你也可以將 pi 換成其他你喜歡的用戶名

4.設置開機自啟

4.1 設置 homeassistant 開機自啟

對於 raspbian 來說你可以通過以下方式,其他操作系統請參考官方文檔 home-assistant.io/docs/

4.1.1 創建文件

執行如下指令創建文件:

pi@raspberrypi:~ $ sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service

然後將如下內容複製到文件中,然後按 Ctrl + O 再按 Enter 保存,再按 Ctrl + X 退出。如果你的安裝目錄改變了,請將 ExecStart= 之後的 /srv/homeassistant/bin/hass 更改為你的 homeassistant 的安裝目錄,如果你是按照本教程操作,則無需更改。

[Unit]
Description=Home Assistant
After=network-online.target

[Service]
Type=simple
User=%i
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"

[Install]
WantedBy=multi-user.target

4.1.1 配置 systemd

先執行如下指令重新載入 systemd

pi@raspberrypi:~ $ sudo systemctl --system daemon-reload

再執行如下指令以重新以允許 homeassistant 開機自啟。

pi@raspberrypi:~ $ sudo systemctl enable home-assistant@homeassistant

4.1 設置 homebridge 與 mosquitto 開機自啟

注意:配置 HB 前程序會運行錯誤,提示缺少配置文件,可先不理會。

cd /etc/default
sudo nano homebridge

粘貼一下內容到文件中

# Defaults / Configuration options for homebridge
# The following settings tells homebridge where to find the config.json file and where to persist the data (i.e. pairing and others)
HOMEBRIDGE_OPTS= /home/pi/.homebridge

所有帶有 # 字的行皆為注釋,可整行刪除不影響。上述指令的作用是指定 Homebridge 的配置文件及緩存所在文件夾。

如果你想要 Homebridge 顯示更詳細的日誌,可以繼續添加如下欄位:

DEBUG=*

之後 Ctrl+X,Y,回車。繼續輸入:

cd /etc/systemd/system
sudo nano homebridge.service

複製粘貼

[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target
[Service]
Type=simple
User=pi
EnvironmentFile=/etc/default/homebridge
ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target

Ctrl+X,Y,回車

cd /
sudo systemctl daemon-reload
sudo systemctl enable homebridge
sudo systemctl start homebridge
sudo systemctl status homebridge
sudo systemctl enable mosquitto

然後執行sudo reboot 重啟即可。


推薦閱讀:

TAG:Linux | 樹莓派(RaspberryPi) | 單片機 |