前言
昨天,已经运行半年 HomeAssistant
服务的那个树莓派,我决定对 HomeAssistant 进行升级,但是升级之后导致出现一系列问题,最终导致 HomeAssistant 服务无法启动,所以决定重装,鉴于之前安装时没有任何记录,所以决定记录下来最详细的安装步骤,给自己留下一个记录,也希望,这篇文章能够帮助到更多的人。
截止到写这篇文章的时候,HomeAssistant 更新的最新版本是 0.65.5 所以这篇文章就基于此版本进行介绍。
1. 树莓派安装系统
请参考 https://www.jianshu.com/p/0884f105fd50
2.安装 HomeAssistant
以下内容与官方指导的参考页面完全一致: https://home-assistant.io/docs/installation/raspberry-pi/
以下内容都是在树莓派终端或者 通过 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
此过程也可以参考 https://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 来说你可以通过以下方式,其他操作系统请参考官方文档 https://home-assistant.io/docs/autostart/ 。
4.1.1 创建文件
执行如下指令创建文件:
pi@raspberrypi:~ $ sudo nano -w /etc/systemd/system/[email protected]
然后将如下内容复制到文件中,然后按 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
重启即可。