前提
- 用安卓手机安装HomeAssistant前前后后尝试了N多种方法,都或多或少有问题,导致Hass不能运行或者运行一段时间就不能运行了,真的玄学,于是这篇文章记录一下到现在为止运行得比较好的方法。备用
步骤
-
安装并运行Alpine Term,每次启动app都要等待加载,持续几分钟到十几分钟不等,若想HA长时间在线,建议开启app的后台运行权限,以我的红米Note4X为例,手机设置-电量和性能-应用配置-选择Alpine Term-设置后台为‘无限制’;同时设置Wi-Fi为休眠状态下始终保持链接。其他品牌型号请自行探索。
-
首先切换到root用户: 执行
sudo -i输入默认密码alpine,此步骤用以省却后续重复sudo xxx的操作 -
开启SSH
编辑ssh配置文件
vi /etc/ssh/sshd_config
把下面两个配置的后的no 修改为 yes
PermitRootLogin
PasswordAuthentication
保存退出
:wq!
reboot (重启系统)
添加开机启动
rc-update add sshd boot
开启ssh
service sshd start
常用命令
service sshd restart 重启
service sshd status 查看状态
映射Linux端口到手机上,电脑端链接必须映射
因无法直接访问Alpine Term里Linux端口
所以想访问那个端口就得再Alpine Term里映射
如:映射ssh的22端口
在Alpine Term软件里,手指再软件的左上方向右滑,会出现菜单
点击QEMU,执行:hostfwd_add tcp::2222-:22
Linux的22端口映射到手机的2222端口上了
配置APK源
vi /etc/apk/repositories
https://mirrors.aliyun.com/alpine/v3.6/main/
@testing https://mirrors.aliyun.com/alpine/edge/testing
https://mirrors.aliyun.com/alpine/v3.6/community/
配置DNS 修改/etc/resolv.conf文件:
nameserver 114.114.114.114
nameserver 114.114.115.115
更改完 /etc/apk/repositories 文件后请运行 apk update 更新索引以生效。
更新软件包 : apk upgrade
安装常用包
apk add rpm
apk add wget
- 卸载掉自带的docker,1是不好换源2是似乎有兼容性的问题。
apk del docker
安装新的docker
apk add docker
测试
docker info
docker修改镜像源
找到 /etc/docker/daemon.json文件,没有该文件就新建一个
可以多加几个国内源,比如:
Docker 官方中国区:registry.docker-cn.com
中国科技大学:docker.mirrors.ustc.edu.cn
{undefined
“registry-mirrors”: [“https://bytkgxyr.mirror.aliyuncs.com”,“https://registry.docker-cn.com”,“http://hub-mirror.c.163.com”]
}
启动docker
service docker start
修改时区(可选?)
安装时区设置
apk add tzdata
复制上海时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
指定为上海时区
echo “Asia/Shanghai” > /etc/timezone
验证
date -R
输出,和当前时间对比
Thu, 14 Feb 2019 14:01:02 +0800
删除其他时区配置,节省空间,可不删,
apk del tzdata
docker修改时区
1.以root身份进入容器
docker exec -it -u root 24795ac94ae7 /bin/sh
可以使用date -R 查看时间
2.在容器中创建文件
mkdir -p /usr/share/zoneinfo/Asia
3.回到宿主机,复制宿主机里的文件到容器中
docker cp /usr/share/zoneinfo/Asia/Shanghai 容器ID或容器名:/usr/share/zoneinfo/Asia
- 进入容器
docker exec -it -u root 容器Id或容器名 bash
执行命令 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5.执行date -R 查看时区显示时间是否正确
原文链接:blog.csdn.net/wangxuelei0…
查看容器Id
docker ps
查看docker时间
docker exec 容器Id date
查看docker日志:查看运行中的container:docker ps,在主机中实时查看docker容器日志:docker logs -f -t --tail 行数 容器名[containerID] | 详情:blog.csdn.net/aoxixi/arti…
- 执行
docker pull homeassistant/home-assistant拉取船新版本的HA到 本地。
⚠️1.这个过程比较久,个人网络差异,建议做好2-3小时的心理准备;
⚠️2.timeout报错,直接点击键盘上方的向上箭头按钮⬆,再一次执行pull命令即可
⚠️3.报错"no space left on device",如果你有过其他操作,建议删除app清空app数据,重新安装
⚠️4.它显示的一个文件列表,逐个Download下载成功会后,会再逐个pull一遍,留意下这个特性,遇事不慌
⚠️5.pull成功后,会显示一长串 sha256:xxxxxxxxxx 和 Status: Downloaded newer image for homeassistant/home-assistant:xxxxxxxxx
⚠️6.这一步关掉vpn!关掉vpn!关掉vpn!
- 执行
mkdir hass创建安装目录,名字hass可以随意。
生成路径会是 /root/hass, 因为操作步骤1后你已经在root路径下了,执行ls命令应该能查看到创建好的hass文件夹
⚠️ 路径/root/hass会在步骤5中用到,请自行替换
- 开始安装
docker run -d --name="hass" -v /root/hass:/config -p 8123:8123 -e TZ="Asia/Shanghai" homeassistant/home-assistant
```
⚠️ --name="hass"目的是给HA加个名称,后续docker启动HA都会用到。
若遇到了--name报错命令不支持,可把--name="hass"干掉,但安装成功后需要执行docker ps,查看最后一项name字段找到程序的旧名字,然后"docker reanme 旧名字 新名字" 来重新取名,建议新名字hass。
⚠️ 如果遇到容器名字冲突,可能是存在同名容器,建议docker ps检查是否已经安装了。如果没有安装,建议重复执行一次步骤5,还不行的话删掉app重来
```
8. 启动HA,执行docker start hass 看到输出hass字样表示HA启动成功🍺
⚠️ 关闭HA 执行 "docker stop hass"
- 端口映射
hostfwd_add tcp::8123-:8123,可以理解成打破Alpine Linux与外层Linux之间的套娃壁垒,使局域网内的其他设备可以访问到内层的HA
⚠️操作和命令:在Alpine Term软件里,手指从屏幕的左向右滑会出现菜单
点击QEMU,执行命令 hostfwd_add tcp::8123-:8123
10.访问Home Assistant的两种方式:
当前手机浏览器访问127.0.0.1:8123
获取当前手机IP假设为192.168.0.xx,通过其他手机电脑访问192.168.0.xx:8123
重启
当Alpine Term应用重启后,需要再次执行的步骤有:
-
登录到alpine用户,账号密码默认
alpine -
执行
sudo -i输入默认密码alpine -
service docker start启动docker -
docker start hass启动HA -
端口映射
hostfwd_add tcp::8123-:8123,要去QEMU里操作,参照前面步骤7⚠️ HA重启后的3-5分钟内,浏览器访问不到HA属于正常现象 可能设备性能有差异,导致HA实际启动很慢,耐心等待即可 -
#关机:
poweroff
设置自启动
自启动会导致app启动等待时间变久,请自行判断是否启用
- 执行
rc-update add docker bootapp每次启动时,docker都会自启动 - 在HA运行状态下执行
docker update --restart=always hass每次docker启动后,HA都会自动运行
重启进阶
如果你使用了上面自启动设置,那么每次重启app后只需执行下方端口映射命令即可
hostfwd_add tcp::8123-:8123 要去QEMU里操作,参照前面安装步骤7
⚠️ HA重启后的3-5分钟内,浏览器访问不到HA属于正常现象
可能设备性能有差异,导致HA实际启动很慢,耐心等待即可
注意事项
- 遇到网络超时timeout错误,就多试几次问题不大,不需要换源啥的。
- 遇到HA启动报错的话就多执行两次
- 如果经过前面两步仍存在奇怪的问题,建议修改时区,再不行就手机恢复出厂设置重新来一遍防止有脏数据,防止有脏数据残留
- 通过此教程方式安装的HA,不包含SuperVisor,其实HACS完全能够平替
- 安卓版本/app版本/docker版本/HA版本,这种不太需要注意,只要能跑Alpine Term,能安装HA,能有什么压力。实在不行衫裤跑路也挺省心。
- 修改时区(可选项)
两条命令TZ='<UTC+8>' 修改完成后执行date查看时间,另外可按照 date -s "28 Mar 2022 13:20:00" 的格式修改具体时间
HACS
本教程安装的HA没有supervisor官方应用商店,hacs是HA的社区商店,基本可以平替,安装米家设备/美的空调什么的就靠它啦
HomeKit方向
本教程支持米家设备集成,不支持Homekit集成。
若想支持Homekit,请确保在本篇文章安装成功后,或熟悉安装流程的前提下,再查看如何支持HomeKit的教程
参考以下教程,我只是个搬运工
1. 安卓手机安装HomeAssistant(无需Root,不含Supervisor)
2. 安卓手机使用Alpine Term APK安装Linux系统,并安装docker