智能家居 篇一:华硕AX86U路由器梅林固件安装Homeassistant
前言
能够查到的文章都是20年前的,由此可见在路由器上跑通还是有些难度的,之前的文章仅供参考
一、安装KoolCenter梅林系统
二、软件中心安装 Entware和虚拟内存
三、安装Homeassistant
安装Python和依赖 homeassistant 更新很快所以一定要安装最新版本的python3
// 使用shell工具通过ssh进入路由,记得在路由系统设置中开启ssh
ssh admin@192.168.50.1
// 安装python及依赖
opkg install python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff6 libturbojpeg0-dev tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev
这一步很顺利,最好报一些包安装失败,不要紧,有些用不到有些可以后面一个一个安装~~
安装wheel
// 更新pip3
pip3 install--upgrade pip3
python3 -m pip install wheel
这一步也很顺利~~
安装homeassistant
pip3 install homeassistant==2024.2.5
这一步也很顺利,警告可以忽略,因为路由器没有root用户~~
接下来才是最重要的也是最麻烦的
// 进入u盘 sda1也可能是sda2 根据具体情况
cd /mnt/sda1
mkdir home
cd home
mkdir root
// 设置配置路径,将homeassistant 安装到u盘中,因为一般路由器没那么大存储,所以尽量安装在u盘中
hass -c /mnt/sda1/home/root/.homeassistant
在安装过程中报很多错误,但是很容易解决,主要是个体力活儿,这里不一一列举,只举几个例子
首先是第一个错误,注意圈出来的路径,以后出现类似问题同样的方式处理
上面的错误是最后一行 ModuleNotFoundError: No module named 'orjson.orjson' 这个应该是python环境原因导致的,修改也很容易
// 进入site-package目录
cd /opt/lib/python3.11/site-packages/
// 进入orjson
cd orjson
// 查看文件
ls
注意这个文件:“orjson.cpython-311-aarch64-linux-gnu.so ”上面的错误就是因为这个文件名问题,修改一下,用mv命令把第一个"."后的名称都去掉文件类型后缀保存,即“orjson.so ” 这样就可以了
// 修改文件名
mv orjson.cpython-311-aarch64-linux-gnu.so orjson.so
后面都是这种错误
主要有两个目录:
/opt/lib/python3.11/site-packages/
/mnt/sda1/home/root/.homeassistant/deps/lib/python3.11/site-packages/
只要把这种错误解决完homeassistant就能运行起来了
四、配置启动脚本,设置开机启动
vi /mnt/sda1/home/root/hass-daemon
复制以下内容
#!/bin/sh
PRE_EXEC=""
HASS_BIN="hass"
RUN_AS="admin"
CONFIG_DIR="/mnt/sda1/home/root/.homeassistant"
LOG_DIR="/opt/var/log/homeassistant"
LOG_FILE="$LOG_DIR/home-assistant.log"
FLAGS="-c $CONFIG_DIR --log-file $LOG_FILE"
start() {
create_piddir
if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then
echo 'Service already running' >&2
return 1
fi
echo -n 'Starting service… ' >&2
local CMD="$PRE_EXEC $HASS_BIN $FLAGS"
$CMD
if [ $? -ne 0 ]; then
echo "Failed" >&2
else
echo 'Done' >&2
fi
}
stop() {
if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then
echo 'Service not running' >&2
return 1
fi
echo -n 'Stopping service… ' >&2
kill $(cat "$PID_FILE")
while ps -p $(cat "$PID_FILE") > /dev/null 2>&1; do sleep 1;done;
rm -f $PID_FILE
echo 'Done' >&2
}
install() {
echo "Installing Home Assistant Daemon (hass-daemon)"
#update-rc.d hass-daemon defaults
mkdir -p $CONFIG_DIR
chown $RUN_AS $CONFIG_DIR
mkdir -p $LOG_DIR
chown $RUN_AS $LOG_DIR
}
uninstall() {
echo "Are you really sure you want to uninstall this service? The INIT script will"
echo -n "also be deleted! That cannot be undone. [yes|No] "
local SURE
read SURE
if [ "$SURE" = "yes" ]; then
stop
echo "Notice: The config directory has not been removed"
echo $CONFIG_DIR
echo "Notice: The log directory has not been removed"
echo $LOG_DIR
#update-rc.d -f hass-daemon remove
rm -fv "$0"
echo "Home Assistant Daemon has been removed. Home Assistant is still installed."
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
install)
install
;;
uninstall)
uninstall
;;
restart)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart|install|uninstall}"
esac
设置权限
chmod 777 hass-daemon
添加开机启动
cd /jffs/scripts/
vi nat-start
将以下命令追加到末尾行
/mnt/sda1/home/root/hass-daemon start
重启ok
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
jac0b2
校验提示文案
drashnane
校验提示文案
Patrick-Pan
校验提示文案
值友3523494152
pip install --upgrade pip
mv orjson.cpython-311-aarch64-linux-gnu.so orjson.so
mv _cffi_backend.cpython-311-aarch64-linux-gnu.so _cffi_backend.so
mv ciso8601.cpython-311.so ciso8601.so
cd /mnt/admin/home/root/.homeassistant/deps/lib/python3.11/site-packages/
cd /mnt/admin
mkdir home
cd home
mkdir root
hass -c /mnt/admin/home/root/.homeassistant
mkdir /tmp/mnt/admin/.cache
ln -s /tmp/mnt/admin/.cache /root/.cache
mv _lru.cpython-311-aarch64-linux-gnu.so _lru.so
mv zlib_ng.cpython-311-aarch64-linux-gnu.so zlib_ng.so
vi /mnt/admin/home/root/hass-daemon
mkdir /tmp/mnt/admin/.cache
vi /mnt/admin/home/root/hass-daemon start
cd /opt/lib/python3.11/site-packages/
cd /opt/lib/python3.11/importlib/
把前期所有运行的错误都按上面代码修改了,可以正常启动ha初始界面,到地址选择后就不能提交了,ssh后台持续报错,家里网就卡了,不知道什么原因,不折腾了直接上树莓派。
校验提示文案
Patrick-Pan
校验提示文案
采购
校验提示文案
值友8106588566
校验提示文案
值友8106588566
校验提示文案
值友3523494152
pip install --upgrade pip
mv orjson.cpython-311-aarch64-linux-gnu.so orjson.so
mv _cffi_backend.cpython-311-aarch64-linux-gnu.so _cffi_backend.so
mv ciso8601.cpython-311.so ciso8601.so
cd /mnt/admin/home/root/.homeassistant/deps/lib/python3.11/site-packages/
cd /mnt/admin
mkdir home
cd home
mkdir root
hass -c /mnt/admin/home/root/.homeassistant
mkdir /tmp/mnt/admin/.cache
ln -s /tmp/mnt/admin/.cache /root/.cache
mv _lru.cpython-311-aarch64-linux-gnu.so _lru.so
mv zlib_ng.cpython-311-aarch64-linux-gnu.so zlib_ng.so
vi /mnt/admin/home/root/hass-daemon
mkdir /tmp/mnt/admin/.cache
vi /mnt/admin/home/root/hass-daemon start
cd /opt/lib/python3.11/site-packages/
cd /opt/lib/python3.11/importlib/
把前期所有运行的错误都按上面代码修改了,可以正常启动ha初始界面,到地址选择后就不能提交了,ssh后台持续报错,家里网就卡了,不知道什么原因,不折腾了直接上树莓派。
校验提示文案
采购
校验提示文案
Patrick-Pan
校验提示文案
Patrick-Pan
校验提示文案
drashnane
校验提示文案
jac0b2
校验提示文案