找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 17314|回复: 60

[openwrt(x86)] X86软路由docker安装homeassistant接入homekit完美解决方案!

  [复制链接]
本帖最后由 jswcph 于 2022-3-23 17:45 编辑
本帖解决Openwrt的Docker下安装homeassistant接入Homekit二维码不成功 或者一直转圈的问题!
仅仅给那些跟我一样白的不能再白了的小白朋友们一个经验指引
通过查阅无数  youtube csdn 简书  知乎 百度  Google  github资料  本太白金星成功添加homekit桥设备

前提:
  • X86软路由 openwrt(已经带好docker环境)
  • portiner 已拉取并安装(这一步可以忽略 不做也可以)
  • 拉取并安装homeassistant到docker
  • hacs商店插件安装(YouTube上有详细教程,如果遇到问题可以给我留言,这一步也有一个很细的问题)
  • 配置好了homeassistant以后可以访问到web界面


问题原因:
    因为docker下的默认网络环境是三种 bridge,host,none。一般大家按照各种大神的教程做的话默认的容器网络一般都是bridge。docker的网络是虚拟出来的并不是真正的物理网卡,所以homekit在连接的时      候就不是跟主路由在同一网段下,可以在ssh命令:docker network ls 查看。


解决方法思路:

  • 开启混杂网络macvlan(具体原理查阅下面参看文案连接)
  • 创建一个macvlan模式的docker网络模式
  • 将新建的homeassistant容器用macvlan网络模式加载



具体ssh命令操作!
第一步:ip link set br-lan promisc on

#开启混杂网络模式  
#标出来的"br-lan"为你的openwrt主路由的网卡名称
查阅方法ssh命令:ip addr
会出现下图类似的很多个网卡,看图中的192.168.5.1,也就是openwrt的地址,我没有其他的旁路由,其网络名称为br-lan
所以上面的第一步命令就是 ip link set br-lan promisc on,如果你的是eth0,那么命令就是ip link set eht0 promisc on     学会贯通~

第二步:docker network create -d macvlan --subnet=192.168.5.55/24 --ip-range=192.168.5.55/24 -o macvlan_mode=bridge -o parent=br-lan macvlan

#创建一个macvlan网络模式
#命令中的195.168.5.55/24是因为我上面选择br-lan的地址是192.168.5.1  所以分配一个跟你现有网络地址不冲突的在同一网段就可以,可以理解为一个虚拟网关。
  如果你的主路由地址为192.168.2.1 那么命令中的地址就可以是 192.168.2.X/24 自己改成自己的地址即可  
  后面的br-lan即为上面的网卡名称,如果你的是eth0 这里就改成eth0


第三步之前,要删除当前的homeassistant容器,因为大家都是小白,所以这里不用ssh命令,可以直接到openwrt-docker-容器 选中homeassistant容器,先停止,再删除(不用担心yaml文件和hacs源,这里资料不会丢失)




第三步:  docker run -d --restart=always --network=macvlan --ip=192.168.5.5 --privileged --name=homeassistant  -v /opt/docker/homeassistant:/config [url=]homeassistant/home-assistant:latest



#创建一个新的homeassistant容器ip为192.168.5.5 容器名称为 homeassistant
#--restart=always 是指当软路由重启或者docker重启的时候 该容器会自动启动
#--ip=192.168.5.5 这条命令会改变你的homeassistant容器的访问地址,自己设定自己想要访问的地址即可,例:你的网关是192.168.2.1,那么命令可以是 --ip=192.168.2.x
#--privileged  该容器获取真正的sudo权限
#--name=homeassistant 为创建的容器自定义名称为homeassistant
#-v /opt/docker/homeassistant:/config  这句意思是把homeassistant容器的config文件夹挂载到你的docker另一个文件目录
       如果你是看的IT conmmander的教程把软路由的剩余分区当成了docker的挂载盘的话就是这么操作的       如果你没有挂载,这一句可以不加直接删掉就就行 前提你的软路由硬盘大小够大!
#homeassistant/home-assistant:latest 是你的docker镜像标签名称  可以到openwrt-docker-镜像 找到你拉取的homeassistant的镜像的标签名称








后序:当你运行完了第三条命令以后,出现了一个容器id的结果  没有什么错误提示的话,那么恭喜你。已经成功创建了新的homeassistant容器!
                 此时,你可以到openwrt-docker-容器 看看里面还不是有一个网络为macvlan 192.168.x.x的容器


然后你就可以用这个新的ip:8123访问你的homeassistant



快快去添加你的homekit    用siri来命令一切其他品牌的只能家居吧!




                      https://www.cnblogs.com/hgdf/p/13812369.html








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 3恩山币 +5 收起 理由
lis*** + 2 感谢你的分享,无论怎样,你都是最无私的人.
gui*** + 1 很好用,谢谢
5845*** + 2 感谢你的分享,无论怎样,你都是最无私的人.

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
写的不错,支持一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

感谢!搞定了!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

怎么设置https外网访问?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

有镜像吗,分享一个
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

必须支持一下!!!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

必须支持一下!!!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

按步骤安装下去后,Homekit确实能连上,扫码成功,但是HACS及其它插件就连不上网了,其它插件在Host可以成功连接。谁帮我解决这个问题?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

颠木 发表于 2022-4-15 08:25
感谢!搞定了!

兄弟,能支持一下吗?我按步骤装成功,能连上Homekit,但是HACS及其它插件就用不了了?HACS在 Host模式下是可连网的。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

1.创建桥接网卡,lan口桥接记得勾上。docker network create -d bridge --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o "com.docker.network.bridge.name"="br-lan" lanet
2.创建容器。docker run -d --restart=always --network lanet --ip=192.168.1.*(和网关ip不同即可)…… aarch64-homeassistant:stable
偷的,这样设置就可以了,外网和本地设备都可以访问,(1的两个ip还是改你自己的就可以了)
还有就是必须要删除楼主创建的那个网络,不然会报错,在docker 网络里面删除macvlan
例如:
        docker network create -d bridge --subnet=192.168.5.0/24 --gateway=192.168.5.1 -o "com.docker.network.bridge.name"="br-lan" lanet
创建容器就和楼主的一样docker run -d --restart=always --network lanet --ip=192.168.5.5 --privileged --name=homeassistant  -v /opt/docker/homeassistant:/config homeassistant/home-assistant:latest
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

楼主,N1装了openwrt,有用docker装homeassitant 的教程吗,找了一大圈都没找到
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

来自手机 | 显示全部楼层
xiaokun566 发表于 2022-8-16 11:41
1.创建桥接网卡,lan口桥接记得勾上。docker network create -d bridge --subnet=192.168.1.0/24 --gateway ...

你好,这个方式也能让openwrt下的homeassisant正常接入homekit吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

peterdream 发表于 2022-8-27 20:07
你好,这个方式也能让openwrt下的homeassisant正常接入homekit吗?

可以,反正我homekit(本地)和小爱插件都可以使用(网络)都可以使用
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

xiaokun566 发表于 2022-8-16 11:41
1.创建桥接网卡,lan口桥接记得勾上。docker network create -d bridge --subnet=192.168.1.0/24 --gateway ...

这个方法是有用的。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

peterdream 发表于 2022-8-27 20:07
你好,这个方式也能让openwrt下的homeassisant正常接入homekit吗?

可以哦,外网还是内网访问都可以
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-6 15:40

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表