树莓派不完全手册——安装与启动Home Assistant

轩辕远
2023-12-01

转到(树莓派不完全手册——目录)


1、安装Home Assistant(后面简称HA)

我安装的是当前(2020.06.28)最新的版本Home Assistant 0.111.4其实官网也有很详细的安装方法,但是实际安装时可能会有些依赖需要自己解决,这里记录一下

1.1、更改默认的Python版本

使用命令

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

1.2、安装pip工具包

sudo apt-get install python3-pip

1.3、安装HA

pip3 install homeassistant

然后就会遇到两个错误

1.3.1、安装HA提示“ffi.h”错误❌

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

1.3.2、安装HA提示“openssl/opensslv.h”错误❌

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,如无意外就可以了。

2、 启动Home Assistant

一般来说,使用命令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界面了。第一次进入是需要配置的,自己按照提示配置就好。

3、让Home Assistant加入服务管理并开机自启

  1. 创建并编辑文件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/
    
  2. 开机自启动
    sudo systemctl enable home-assistant@pi.service
    
  3. 启动服务
    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
    
    可以看到,服务启动成功了。

4、修改浏览器访问的端口

没啥的,我就是不想用8123这个端口,所以改了

vi ~/.homeassistant/configuration.yaml

default_config下面增加以下内容

http:
  server_port: 端口号

重启HA

sudo systemctl restart home-assistant@pi.service

这就能够在浏览器通过pi.local:新端口号访问HA了。


困了,这篇就写到这里吧。后面应该是加点设备进去,弄个音乐播放器啥的,广域网访问,加入HomeKit装逼的Siri控制,NodeRed流之类的,想到其它在写咯。

转到(树莓派不完全手册——目录)


 类似资料: