在Linux开发板上安装HomeAssistant

1. 什么是Home Assistant

Home Assistant 使用 Python3 开发的,是一个完整的 UI 管理的家庭自动化生态系统,它运行 Home Assistant Core、Home Assistant Supervisor 和附加组件。它预装在 Home Assistant OS 上,当然也可以安装在任何 Linux 系统上。它利用由 Home Assistant Supervisor 管理的 Docker,以及在 Home Assistant 环境中本地运行的数十个附加组件。

官网:https://www.home-assistant.io/

2. Home Assistant 安装方式

下面网址是官网介绍怎么安装 Home Assistant 的:

https://www.home-assistant.io/installation/

其中,Home Assistant 一共提供了4种安装方式:

  • Home Assistant Operating System:直接在你的硬件中烧录 Home Assistant 做好的系统镜像,比如官网就有基于树莓派硬件定制的 Home Assistant OS。但前提必须是官方的镜像是支持你的硬件设备的,比如官方做的树莓派的 Home Assistant 镜像,就支持树莓派的硬件。

  • Home Assistant Container:这是基于 Docker (容器)的一种安装方式。

  • Home Assistant Supervised:手动安装 Supervisor 。这种方式的优势就是可以在所有常规的 Linux 系统上运行。但是相对繁琐和困难。

  • Home Assistant Core : 使用 Python 虚拟环境手动安装。

其中,官方推荐的是前面两种方式进行安装,特别是基于官方做好的镜像安装,功能最全面,但是前提是他做好的镜像要支持你的硬件才行。比如官方就做好了树莓派的镜像,如果你的硬件使用的是树莓派,可以直接烧录人家做好的镜像就行。

下面是这4种安装方式所拥有的功能对比图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gxMjUYRg-1683978271123)(picture/image-20230513174825054.png)]

可以看到基于 OS 方式安装,功能最全面。

我在自己的Linux开发板上面安装,选择的是 Home Assistant Core 这种方式,也就是使用 Python 虚拟环境手动安装。

3. 安装环境介绍

我安装 Home Assistant 的软硬件环境如下:

硬件:STM32MP157,使用的是野火出的开发板。

软件:Debian ARM 架构制作的 Linux 发行版,版本信息如下:

  • Linux发行版本:Debian GNU/Linux 10

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rlq8gPTx-1683978271124)(picture/image-20230502233159734.png)]

  • 内核版本:4.19.94

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yu0BEgxe-1683978271124)(picture/image-20230502233606658.png)]

  • Python3版本

    安装Home Assistant 需要 Python3.8 以上的版本,我所使用的版本是:Python 3.10.9

4. 安装过程

在安装之前,请先确保自己的 Python3 版本在 3.8 及以上版本。不过官网又说要求要到 3.10 及以上版本,为了保险起见,大家还是安装 3.10 及以上的 Python 版本吧。

由于我的 Linux 系统使用 apt-get 命令安装时,只能安装到 3.7.3 版本,所以我是自己下载了 Python3.10 版本的源码到开发板上,然后编译安装的。这里我不多介绍,网上也有很多方法。

安装过程其实可以参考官网的安装介绍:

https://www.home-assistant.io/installation/linux

这个网址的安装介绍,是专门针对常规 Linux 系统进行安装的。

4.1 切换pip源

在/etc目录下,新建pip.conf文件(如果/etc目录存在这个文件,则可以不用新建),然后使用vi编辑器打开,输入一下内容:

[global]
timeout=100
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url=https://www.piwheels.org/simple
[install]
trusted-host=
	pypi.tuna.tsinghua.edu.cn
	mirrors.aliyun.com

上面这个 pip 源是我看到一篇文章,说必须使用官方的 pip 源,说是使用这个源可以解决在安装 Home Assistant 过程中出现的 ERROR:Failed building wheel for cryptigraphy 这个保存。但是我试过了依然解决不了(下面再讲安装遇到的这个问题)。不过后面我还是保持使用了这个源。

也有写文章说,使用下面的阿里云源:


[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
extra-index-url=https://www.piwheels.org/simple

上面这两个 pip 源大家可以选择试试。

4.2 安装依赖

1.首先更新 apt-get :

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

2.安装依赖项:

sudo apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata

4.3 创建 Home Assistant 运行的虚拟环境

1)添加一个名为homeassistant的用户

为 Home Assistant Core 添加一个名为 的帐户homeassistant。由于此帐户仅用于运行 Home Assistant Core,因此添加了额外的参数-rm以创建系统帐户并创建主目录。

sudo useradd -rm homeassistant

2)创建homeassistant目录,并更改该文件夹所有者为homeassistant账户

sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant

3)为 Home Assistant Core 创建和更改虚拟环境。

# 切换用户
sudo -u homeassistant -H -s

# 切换目录,并创建虚拟环境
cd /srv/homeassistant
python3 -m venv .
source bin/activate

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EWiYmIrM-1683978271124)(picture/image-20230503012303768.png)]

4.4 在虚拟环境下更新pip

pip install --upgrade pip

4.5 安装 wheel

python3 -m pip install wheel

4.6 安装 Home Assistant

到了最后一步,就是安装 homeassistant 了:

pip3 install homeassistant

安装开始过程中,打印信息如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtnlb3OC-1683978271124)(picture/image-20230512005701274.png)]

5. 遇到问题和尝试解决

5.1 Building wheel for bcrypt(pyproject.toml) … error

遇到错误截图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6EcTB6aU-1683978271125)(picture/image-20230503100122608.png)]

对于这个问题,我更新了 pip 源,然后再安装 pep517 之后就再也没有这个错误了。

1.更新pip工具

# 更新 pip
pip3 install -U pip

# 安装 pep517
pip3 install pep517

5.2 安装rust 1.56版本以上编译器

在安装过程中报错,说没有找到 rust 的编译器,而且还要求 rust 的编译器版本必须是 1.56 以上版本,于是我只能安装 rust 的编译器了。可以在网上找到安装 rust 编译器相关的文章。

最终安装完成 rust 编译器截图如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wX4ODOMY-1683978271125)(picture/image-20230503101903688.png)]

然后我们可以在终端输入:

rust --version

查看编译器版本信息。

5.3 Building wheel for cryptography (pyproject.toml) … error

问题如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DDzJcXlA-1683978271125)(picture/image-20230512010510899.png)]

该问题,对照着网上的解决办法,都试了一遍,最终还是解决不了,试了n多次,每次都是卡在这里。试过的解决办法有:

1)sudo apt-get install libffi-dev libssl-dev 安装这两个库

2)升级 pip 工具版本。我的已经是 23 版本了

3)pip3 install cryptography 使用该命令直接安装 cryptography ,也是没用,报同样的错误。

4)安装 pep517 。pip3 install pep517 。

5)更换 pip3 源。一开始我使用国内的阿里云源,但是又看到网上的一篇文章说,不能使用国内的源,只能使用官方的源。说是因为 pip 官方的源 piwheels.org 含有armv7 的 whl 文件,可以免编译直接安装。然后我更换为官方的源了,最后还是不行。

反正,上面的方法试了一个遍,最后还是解决不了,卡在这里了。这里记录下遇到的这个问题,希望有小伙伴看到有解决办法告知一下。

其实,Home Assistant 论坛也有人遇到这个问题:

https://community.home-assistant.io/t/error-failed-building-wheel-for-cryptography/352020/27

我看了官网一些人的回复,跟着试了一些方法,最后也还是不行。

下图是运行 pip3 install homeassistant 这个命令,最终打印的错误信息:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-myg9xjNr-1683978271125)(picture/image-20230512010723687.png)]

一直是卡在了这第三个问题上了,目前暂时找不到解决办法。

猜你喜欢

转载自blog.csdn.net/luobeihai/article/details/130661466