之前一直用树莓派安装homeassistant利用homeassistant连接了天猫精灵控制过家电,之前用了sonoff不知道有没有大神知道,反正用esphome刷代码就对了,之后换了小米的很多设备就就在手机app上点点算了,嫌麻烦,所以废弃了一段时间,然后拿出我上古树莓派(当时买了2个一个测试一个想就家里用着结果一个都没用积灰尘)然后升级,升级后发现了问题了,之前我也将python升级到3.7再升级homeassistant没有问题,这次再次闲置想升级的时候发现升级到python3.8.6问题一大堆,要知道我之前添加了一大堆智控呢,于是看到某大神itcommander也放弃了转战hassio的文章有了启发,作出了艰难的决定转战hassio。但是并不想按照他方式在openwrt下安装docker再安装hassio,自己摸索自己来。废话讲完了开始教程。
一、系统的安装
首先我们要去raspberrypi官网下载网线
interface eth0
static ip_address=自己IP
static routers=网关
static domian_name_servers=114.114.114.114
static domian_name_servers=114.114.115.115
注释)。
deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib rpi
2.修改/etc/apt/sources.list.d/raspi.list
3.修改pip源 sudo nano /etc/pip.conf
下面我们更新系统
sudo apt-get update
sudo apt-get upgrade
二、docker的安装
系统部分好了。下面我们需要安装docker
在凡是求方便的基础上我们使用一键脚本gogogo
sudo curl -sSL https://get.docker.com | sh
查看下docker版本
为了方便观察我们下载 Docker 图形化界面 portainer
- sudo docker pull portainer#
复制代码
创建 portainer 容器
- sudo docker volume create portainer_data
复制代码
运行 portainer
- sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
复制代码
其实你不在乎portainer_data位置的话直接最后一句会拉取的,我求方便最后一句
安装完成之后我们可以在浏览器里查看:你IP:9000 创建自己的用户名跟密码,之后选local
三、openwrt的安装
下面我们要安装openwrt系统,首先要感谢sulinggg提供的docker镜像,感觉比较全,但是大神现在这个版本有点问题上不了网的需要做修改,大家可以参考下,去使用别的镜像版本也可以流程一样。
打开网卡混杂模式
- sudo ip link set eth0 promisc on
复制代码
创建网络
- sudo docker network create -d macvlan --subnet=你IP/24 --gateway=你网关 -o parent=eth0 macnet
复制代码
看下成功没有
已看到macnet
下一步创建openwrt
- sudo docker pull registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest
复制代码- sudo docker run --restart always --name openwrt -d --network macnet --privileged registry.cn-shanghai.aliyuncs.com/suling/openwrt:latest /sbin/init
复制代码
接着我们修改网络不然无法使用
- sudo docker exec -it 你的containerID bash
复制代码- nano /etc/config/networkconfig
复制代码- interface 'lan'
- option type 'bridge'
- option ifname 'eth0'
- option proto 'static'
- option ipaddr '192.168.123.100'
- option netmask '255.255.255.0'
- option ip6assign '60'
- option gateway '192.168.123.1'
- option broadcast '192.168.123.255'
- option dns '192.168.123.1'
复制代码
修改自己的的IP 网关以及DNS 划重点 这个IP不是你当前树莓派的IP 而是你给openwrt的以后做网关的路由。处理好之后我们重启容器里面的网络
- /etc/init.d/network restart
复制代码
在浏览器输入 你刚才设定的那个IP
用户名:root
密码:password
到这就完成了openwrt的安装
里面的调试不在今天的范围内给个提示吧这个版本有问题进去记得关闭防火墙
openwrt 好了,我们接着搞hassio
四、hassio的安装
首先说下 itcommander 他的是这样的
本来我想这么干但是 sorry完全支持 docker 里的镜像会无限重启 我们来分析下问题吧
jobs.json 没问题反正就是阻止健康检查
aarch64他写的明明支持树莓派3b+为什么不行呢?
你试试输入命令uname -a 会给你解答
- Linux raspberrypi 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l GNU/Linux
复制代码
看清楚了是armV7 不是aarch64版本不对的 知道原因了我尝试了分析后面这段命令
docker run -d --name hassio_supervisor --privileged
-v /var/run/docker.sock:/var/run/docker.sock
-v /var/run/dbus:/var/run/dbus
-v /opt/docker/hassio:/data
-e SUPERVISOR_SHARE="/opt/docker/hassio"
-e SUPERVISOR_NAME=hassio_supervisor
-e HOMEASSISTANT_REPOSITORY="homeassistant/qemuarm-64-homeassistant"
--restart unless-stopped homeassistant/aarch64-hassio-supervisor:2020.12.7
是不是版本修改下可以?在dockerhub上找到了homeassistant/armv7-hassio-supervisor替换进去了,但是很不好意思估计还是不行,可能我等的时间不够吧,有可能可以,你们可以尝试可以看到安装的时候是作为系统服务的必须先停止,不然的话停止这个容器还是会不停运行创建
下面要感谢某位日本大神了按照他的方法我成功安装了我们看下
那我们来操作吧要选对自己的版本哦
- sudo apt-get -y install network-manager apparmor apparmor-utils apparmor-profiles jq
复制代码- sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
复制代码- sudo bash installer.sh --machine raspberrypi3
复制代码
下面需要耐心的等待,等待时间也挺长的我估计我自己等了1个小时左右吧全部弄好
等这个完成后需要重启下树莓派(可能我卡死了)才能安装不然会卡在那边记得可以这里观察容器数量会上去
然后我们愉快的进入homeassistant的安装了
耐心等20分钟左右这个时候需要有绝对的耐心等待完成,毕竟服务器不在国内
五、总结
现在就完成了利用docker openwrt+hassio同时安装在树莓派上了安装hassio的好处就是方便真的比homeassistant方便,原来我设置域名还要N多命令,包括ssl设置,现在在supv,下面还有好多东西要设置,很多我也忘记了,很多与我当初设置的东西也不同了,要从0开始重新认识。难得写一次,也是希望大家少走弯路,觉得可以的麻烦收藏点赞呗。
后记关于如何删除- ##
- # Install Hass.io Supervisor
- info "Install supervisor startup scripts"
- curl -sL ${URL_BIN_HASSIO} > "${PREFIX}/sbin/hassio-supervisor"
- curl -sL ${URL_SERVICE_HASSIO} > "${SYSCONFDIR}/systemd/system/hassio-supervisor.service"
- sed -i "s,%%HASSIO_CONFIG%%,${CONFIG},g" "${PREFIX}"/sbin/hassio-supervisor
- sed -i -e "s,%%BINARY_DOCKER%%,${BINARY_DOCKER},g"
- -e "s,%%SERVICE_DOCKER%%,${SERVICE_DOCKER},g"
- -e "s,%%BINARY_HASSIO%%,${PREFIX}/sbin/hassio-supervisor,g"
- "${SYSCONFDIR}/systemd/system/hassio-supervisor.service"
- chmod a+x "${PREFIX}/sbin/hassio-supervisor"
- systemctl enable hassio-supervisor.service > /dev/null 2>&1;
复制代码
可以看到安装的时候是作为系统服务的必须先停止,不然的话停止这个容器还是会不停运行创建
原文来自张大妈 esp卡米 |