【教程】安卓设备使用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'
(4)执行编译
make -j8 && make install
(5)安装完执行以下命令查看_sqlite3.so情况
find /usr -name _sqlite*.so
发现python3.10 多了
接下来我们在执行
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