安卓設(shè)備使用AidLux部署高版本HomeAssistant(2023.2及以上)及HACS
?本文發(fā)布于:2023年7月1日
備注:Python3.11裝起來(lái)問(wèn)題比較多不建議使用

1. 首先安裝AidLux,這一步省略
2. 從源碼編譯Python3.10(HomeAssistant 2023.7需要Python3.11)
? ? ? ? 由于AidLux應(yīng)用商店提供的Python版本最高只支持到3.9,對(duì)HomeAssistant的支持只到2023.1版本,而且問(wèn)題比較多。
? ? ? ? 本文先安裝一個(gè)Python3.10。為了能跟系統(tǒng)自帶的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)從官網(wǎng)拉取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.tgzcd Python-3.10.12
#Python3.11,如安裝此版本后續(xù)的教程需自行修改
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz?
tar xzf Python-3.11.4.tgzcd Python-3.11.4
? ? ? ? (3)編譯
./configure --enable-optimizations --prefix=/usr/local/python3.10
# --enable-optimizations為優(yōu)化性能選項(xiàng),--prefix=PATH 指定安裝目錄……,可根據(jù)需要進(jìn)行選擇。
# 默認(rèn)安裝路徑為 /usr/local/bin
make -j8 && make altinstall
# 使用8個(gè)線程進(jìn)行編譯
# altinstall安裝方式可以跟系統(tǒng)自帶的python版本共存
? ? ? ? (4)測(cè)試
ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3.10
# 做個(gè)軟鏈接,可以直接用python3.10命令
python3.10 --version
# 正確安裝會(huì)顯示版本號(hào)
3. 安裝HomeAssistant Core
? ? ? ? (1)創(chuàng)建一個(gè)賬戶
????????????????為避免權(quán)限問(wèn)題使用root賬戶執(zhí)行? ? ? ?
????????(2)創(chuàng)建虛擬環(huán)境
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)啟動(dòng)
hass
# 等待一段時(shí)間后,可以從http://X.X.X.X:8123(將 X.X.X.X 替換為安卓設(shè)備的 IP 地址)訪問(wèn)HomeAssistant
4. 安裝HACS
? ? ? ? (1)執(zhí)行下面的命令
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 管理臺(tái),點(diǎn)擊管理臺(tái)首頁(yè)右上角的搜索圖標(biāo),搜索 > 集成,并點(diǎn)擊進(jìn)入對(duì)應(yīng)頁(yè)面
? ? ? ? (4)在集成頁(yè)面點(diǎn)擊添加,輸入 HACS 進(jìn)行添加,后續(xù)基本可以根據(jù)提示自動(dòng)完成
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)執(zhí)行編譯
make -j8 && make install
? ? ? ? ?(5)安裝完執(zhí)行以下命令查看_sqlite3.so情況
find /usr -name _sqlite*.so
? ? ? ? 發(fā)現(xiàn)python3.10 多了

? ? ? ? 接下來(lái)我們?cè)趫?zhí)行
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,問(wèn)題解決
cd ../Python-3.10.12/?
make -j8 && make altinstall