我安装的是当前(2020.06.28)最新的版本
Home Assistant 0.111.4
其实官网也有很详细的安装方法,但是实际安装时可能会有些依赖需要自己解决,这里记录一下
使用命令
python --version
可以看到默认使用的Python版本(我这里是Python 2.7.16
)
然后使用命令
which python
可以看到Python所在的位置(我这里是/usr/in/python
)
把默认的Python删掉,然后创建新的软连接指向python3.x
cd /usr/bin/
sudo rm -rf python
sudo ln -s /usr/bin/python3.7 python
然后使用命令
python --version
可以看到Python版本号Python 3.7.3
sudo apt-get install python3-pip
pip3 install homeassistant
然后就会遇到两个错误
c/_cffi_backend.c:15:10: fatal error: ffi.h: 没有那个文件或目录
#include <ffi.h>
^~~~~~~
compilation terminated.
error: command 'aarch64-linux-gnu-gcc' failed with exit status 1
这只需要安装libffi-dev
就好了
sudo apt-get install libffi-dev
安装完后重新执行pip3 install homeassistant
build/temp.linux-armv7l-3.7/_openssl.c:498:10: fatal error: openssl/opensslv.h: 没有那个文件或目录
#include <openssl/opensslv.h>
^~~~~~~~~~~~~~~~~~~~
compilation terminated.
error: command 'arm-linux-gnueabihf-gcc' failed with exit status 1
这个是要安装依赖libssl-dev
sudo apt-get install libssl-dev
安装完后重新执行pip3 install homeassistant
,如无意外就可以了。
一般来说,使用命令hass
就能够启动HA
,但是现在执行命令,就会报错误
-bash: hass:未找到命令
原因在上面安装的时候最后有给出了
The script hass is installed in '/home/pi/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
由于是在pi
用户下安装的HA
,所以hass
脚本被安装到/home/pi/.local/bin
这个目录里,但是这个目录不在环境变量里面,所以找不到hass
这个命令。
提示是说考虑把目录
/home/pi/.local/bin
加到环境变量PATH
里面,但是我偏不…创建一个软连接就好了,如果以后遇到问题再回来改吧,如果还能看到这句话就是我暂时还未发现问题。
创建软连接
sudo ln -s /home/pi/.local/bin/hass /usr/local/bin/
运行HA
hass
然后,官方说法就是漫长的等待,第一次成功启动是需要安装各种组件的,所以慢慢等。然而我每次刚安装完,第一次乃至第二次启动都会遇到找不到某组件->自动安装组件->Error->启动完毕
就不动了,或者直接卡死停住了。这时候只需要Ctrl + C
退出,然后重新hass
就可以了。
自动安装组件是需要一些时间的,我试过安装/启动某个组件在那里卡个5分钟,挺正常的,看似没反应,然后成功了,接着安装下一个组件。但是如果超过8分钟左右没反应的话,还是Ctrl + C
退出重新启动可能会快点。
一直等到看到
2020-02-06 23:34:08 INFO (MainThread) [homeassistant.core] Starting Home Assistant
2020-02-06 23:34:08 INFO (MainThread) [homeassistant.core] Timer:starting
并且没有错误提示的话,就是成功启动。在浏览器输入pi.local:8123
就能进入到HA
界面了。第一次进入是需要配置的,自己按照提示配置就好。
home-assistant@pi.service
mkdir -p ~/.local/lib/systemd/system/
cd ~/.local/lib/systemd/system/
vi home-assistant@pi.service
把以下内容粘贴到文件里面[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
ExecStart=/home/pi/.local/bin/hass
[Install]
WantedBy=multi-user.target
创建软连接到/etc/systemd/system/
sudo ln -s /home/pi/.local/lib/systemd/system/home-assistant@pi.service /etc/systemd/system/
sudo systemctl enable home-assistant@pi.service
sudo systemctl start home-assistant@pi.service
然后可以通过命令去查看服务状态了systemctl status home-assistant@pi.service
● home-assistant@pi.service - Home Assistant
Loaded: loaded (/home/pi/.local/lib/systemd/system/home-assistant@pi.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-02-06 23:54:56 HKT; 15min ago
Main PID: 1298 (hass)
Tasks: 35 (limit: 4915)
Memory: 79.5M
CGroup: /system.slice/system-home\x2dassistant.slice/home-assistant@pi.service
└─1298 /usr/bin/python3 /home/pi/.local/bin/hass
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_15) [homeassistant.loader] Loaded velbus from homeassistant.components.velbus
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_10) [homeassistant.loader] Loaded luftdaten from homeassistant.components.luftdaten
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_0) [homeassistant.loader] Loaded coolmaster from homeassistant.components.coolmaster
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_1) [homeassistant.loader] Loaded owntracks from homeassistant.components.owntracks
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_6) [homeassistant.loader] Loaded rainmachine from homeassistant.components.rainmachine
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_19) [homeassistant.loader] Loaded unifi from homeassistant.components.unifi
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_18) [homeassistant.loader] Loaded nest from homeassistant.components.nest
2月 06 23:55:14 pi hass[1298]: 2020-02-06 23:55:14 INFO (SyncWorker_12) [homeassistant.loader] Loaded ambiclimate from homeassistant.components.ambiclimate
2月 06 23:55:15 pi hass[1298]: 2020-02-06 23:55:15 INFO (SyncWorker_14) [homeassistant.loader] Loaded samsungtv from homeassistant.components.samsungtv
2月 06 23:55:15 pi hass[1298]: 2020-02-06 23:55:15 INFO (SyncWorker_11) [homeassistant.loader] Loaded gios from homeassistant.components.gios
可以看到,服务启动成功了。没啥的,我就是不想用
8123
这个端口,所以改了
vi ~/.homeassistant/configuration.yaml
在default_config
下面增加以下内容
http:
server_port: 端口号
重启HA
sudo systemctl restart home-assistant@pi.service
这就能够在浏览器通过pi.local:新端口号
访问HA
了。
困了,这篇就写到这里吧。后面应该是加点设备进去,弄个音乐播放器啥的,广域网访问,加入HomeKit装逼的Siri控制,NodeRed流之类的,想到其它在写咯。