记录一次Home Assistant的安装和使用
背景
已经有很多Apple Home的配件,然后因为部分配件是小米、以及其他厂商的,且手头有一个暂时都不会用上的老笔记本电脑,就想着试试安装Home Assistant(以下简称HS),并且使用
最后成功的思路
使用macvlan,给在Docker运行的HS做了一个固定的IP,然后访问
踩坑记录
是的,还没开始就开始写踩坑记录了
- 直接在CentOS上安装HS,然后从CentOS 7 开始各种安装组件等,都不行
- CentOS 7 不行,那CentOS 8 是不是会好一些呢,并不行。
- CentOS 8 直接安装不行之后,使用CentOS 8 然后安装docker(podman) 成功了,但是无法正常的监听端口,也就是说我的设备添加不到Apple Home中,白折腾了(这部分是新的容器创建的时候不停权限不足,这么说吧,基本上一个文件都创建不了)
- 安装成功后,一定一定一定要注意在Apple里面设置的时候选择的域,否则会有几百个实体
- 安装完,添加了设备之后记得去设备里面把不需要的实体禁用,不然都会显示在里面
- 如果不小心已经添加到了Apple Home家庭中,需要在Apple Home家庭中删除这部分的配件的方法是:在家庭的首页->点击右上角的三个点->家庭设置->家庭中枢与桥接->在桥接设备中找到刚才添加的HASS的桥接设备删除(如果在添加的时候重命名了,那就是自己命名的名字。或者看看详情
- 删除家庭中的配件只有这种方法,其他的卸载Apple Home 或者 还原所有设置都是没有作用的!!!!
正文
1、安装的环境:Cent OS 7
2、安装方法,使用Docker安装
3、安装步骤
- 安装Docker
sudo yum remove -y docker* containerd.io podman*
sudo rm -rf /var/lib/docker
sudo rm -rf /etc/docker
# 2. 配置阿里云 Docker 镜像源,注意,这个配置文件里面不能用注释
sudo tee /etc/yum.repos.d/docker-ce.repo <<-'EOF'
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/$basearch/stable
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF
# 3. 安装必要工具和依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 4. 安装 Docker 组件(跳过 GPG 检查)
sudo yum install -y --nogpgcheck \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
# 5. 启动 Docker
sudo systemctl start docker
sudo systemctl enable docker
# 6. 验证安装
sudo docker version
- 配置macvlan
- 注意实际网段,这里给的是192.168.1.200,实际可能是192.168.0.200
- 注意parnet的值,是自己的实际使用的网卡的值,比如可能是enp1s0这样的,运行 ip link 查看自己的网卡信息
# 替换为您的实际网络信息
# 例如:主机IP=192.168.0.114, 网关=192.168.0.1, 子网掩码=24
sudo docker network create -d macvlan \
--subnet=192.168.0.0/24 \
--gateway=192.168.0.1 \
--ip-range=192.168.0.200/32 \
-o parent=enp1s0 \
-o macvlan_mode=bridge \
--aux-address="host_reserved=192.168.0.114" \
macvlan_net
# 这里是验证是否成功
# 列出所有 Docker 网络
docker network ls
# 查看 macvlan 网络详情
docker network inspect macvlan_net
- 在Docker中安装Home Assistant
- 这里说明一下,如果使用了macvlan就不能再使用host的网络模式了,因为他是单独的暴露出去的一个IP的原因?
mkdir -p ~/homeassistant/config
# 运行容器
# 或者直接使用完整镜像地址下载容器
docker pull docker.m.daocloud.io/homeassistant/home-assistant:stable
# network是上面macvlan里面创建的名字
# 这个有一个包需要下载特别长的时间,原因未知,改了很多的源都会出现这个情况,超过50M的包好像都会下载很久,耐心等待就好了
docker run -d \
--name homeassistant \
--network macvlan_net \
--restart unless-stopped \
--privileged \
-v /etc/localtime:/etc/localtime:ro \
-v ~/homeassistant/config:/config \
-e TZ=Asia/Shanghai \
docker.m.daocloud.io/homeassistant/home-assistant:stable
- 防火墙配置
sudo firewall-cmd --permanent --add-port=5353/udp
sudo firewall-cmd --permanent --add-port=1900/udp
# 允许 Home Assistant 端口
sudo firewall-cmd --permanent --add-port=8123/tcp
# 重载防火墙
sudo firewall-cmd --reload
- 其他
- 至此,就安装成功了,然后HACS相关的因为是有一个备份,直接还原进去就好了,也就忘了怎么弄的了
- 另外,不要相信AI的监听在Home kit是监听在哪个端口上面的,直接运行起来添加一个配件试试,不行的话再来找原因(找了很久为啥根据AI的命令执行就是没有指定的内容出现,最后也是试了一下发现可以了)
- 需要自己在路由器中保留这个IP,防止后续DHCP导致的IP冲突(直接只让路由器分配1-199的IP了)
以上,有很多内容都是Deep Seek生成
感谢【已解决】无法连入HomeKit怎么排查原因呢提供的思路
中间也有很多的错误,已经尽量的把踩过的坑都写出来了,然后出错之后的命令就只能具体情况具体分析了