【教程】安卓设备使用AidLux部署高版本HomeAssistant(2023.2及以上)及安装HACS

本文发布于:2023年7月1日

备注:Python3.11装起来问题比较多不建议使用


1. 首先安装AidLux,这一步省略

2. 从源码编译Python3.10(HomeAssistant 2023.7需要Python3.11)

        由于AidLux应用商店提供的Python版本最高只支持到3.9,对HomeAssistant的支持只到2023.1版本,而且问题比较多。

        本文先安装一个Python3.10。为了能跟系统自带的Python3.7共存,使用源码编译。

        (1)先安装依赖

aid install gcc
aid install make
aid install build-essential
aid install libssl-dev 
aid install libffi-dev 
aid install zlib1g-dev

        (2)从官网拉取Python3.10.12源码并解包

# Python3.10
wget https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz
tar xzf Python-3.10.12.tgz
cd Python-3.10.12

#Python3.11,如安装此版本后续的教程需自行修改
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
tar xzf Python-3.11.4.tgz
cd Python-3.11.4

        (3)编译

./configure --enable-optimizations --prefix=/usr/local/python3.10
# --enable-optimizations为优化性能选项,--prefix=PATH 指定安装目录……,可根据需要进行选择。
# 默认安装路径为 /usr/local/bin

make -j8 && make altinstall
# 使用8个线程进行编译
# altinstall安装方式可以跟系统自带的python版本共存

        (4)测试

ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3.10
# 做个软链接,可以直接用python3.10命令
python3.10 --version
# 正确安装会显示版本号

3. 安装HomeAssistant Core

        (1)创建一个账户

                为避免权限问题使用root账户执行       

        (2)创建虚拟环境

mkdir /srv/homeassistant
cd /srv/homeassistant
python3.10 -m venv .
source bin/activate

        (3)安装HomeAssistant

python3.10 -m pip install --upgrade pip
python3.10 -m pip install wheel
python3.10 -m pip install homeassistant==2023.6.3

        (4)启动

hass
# 等待一段时间后,可以从http://X.X.X.X:8123(将 X.X.X.X 替换为安卓设备的 IP 地址)访问HomeAssistant

4. 安装HACS

        (1)下面的命令

cd /srv/homeassistant
wget -O - https://ghproxy.com/raw.githubusercontent.com/hasscc/get/main/get | HUB_DOMAIN=ghproxy.com/github.com DOMAIN=hacs REPO_PATH=hacs-china/integration ARCHIVE_TAG=china bash - 
# 获取 HACS 的安装包

        (2)重启 HomeAssistant

        (3)登录 HomeAssistant 管理台,点击管理台首页右上角的搜索图标,搜索 > 集成,并点击进入对应页面

        (4)在集成页面点击添加,输入 HACS 进行添加,后续基本可以根据提示自动完成

5. 解决部分error(适用于Python3.10)

  • No module named '_sqlite3'

        (1)安装sqlite3

wget https://www.sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
tar -xvzf sqlite-autoconf-3420000.tar.gz
cd sqlite-autoconf-3420000/
./configure --prefix=/usr/local/sqlite
make -j8 && make install

        (2)修改Python源码路径下的setup.py文件

cd ../Python-3.10.12/
vi setup.py

        (3)查找" sqlite_inc_paths",新增

                 '/usr/local/sqlite/include'

                '/usr/local/sqlite/include/sqlite3'

074b02f704554645a8504de6826c281f.png

        (4)执行编译

make -j8 && make install

         (5)安装完执行以下命令查看_sqlite3.so情况

find /usr -name _sqlite*.so

        发现python3.10 多了

92a51758cc3746dd9e43911773678054.png

        接下来我们在执行

cp /usr/local/python3.10/lib/python3.10/lib-dynload/_sqlite3.cpython-310-aarch64-linux-gnu.so /usr/local/python3.10/lib/python3.10/lib-dynload/_sqlite3.so

         (6)重新编译安装Python3.10,问题解决

cd ../Python-3.10.12/
make -j8 && make altinstall