• Docker部署homeassitant


    Docker部署homeassitant

    image-20220216223114803

    一、Docker介绍

    我们知道,一台物理机需要运行多个程序,然而每个程序又需要各自不同的一堆依赖,所有程序全装上的话,整个物理机系统会变得混乱不堪,同时也容易出问题,使得我们后续维护比较困难。而如果利用docker,就可以直接下载一个镜像,投入使用,整个流程就变得简单了,详细介绍可以看官方文档。

    image-20220217140850902

    贴上地址:https://docs.docker.com/get-started/

    二、部署homeassitant

    本文采用的部署方式是:通过云服务器部署hass,之后通过hass集成小米智能家居设备。

    准备一台云服务器

    • 操作系统:CentOS 7.7 64位

    1、安装docker

    连接上云服务器后:

    贴下命令

    # 先切换到root 用户,先安装一些基本环境:
    yum install -y yum-utils device-mapper-persistent-data lvm2
    #添加阿里云软件源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    #然后安装 Docker 社区版
    yum -y install docker-ce
    #启动 docker
    systemctl start docker  
    #设定开机自动启动docker
    systemctl enable docker   
    #查看docker运行状态
    systemctl status docker   
    #查看 docker 版本信息
    docker version
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    版本信息:

    image-20220216225107325

    • docker 服务显示为绿色的 running 了,表示运行中

    需要注意的是,docker 默认要求必须使用 root 用户或者 docker 用户组里的用户,才能进行操作

    #把当前用户加入 docker 用户组
    sudo usermod -a -G docker 用户名     
    #重启 docker 服务
    sudo systemctl restart docker       
    
    • 1
    • 2
    • 3
    • 4

    2、安装portainer容器管理图形界面

    • portainer可以选择性安装,只是比较方便操作

      贴下命令:

      #拉取最新镜像
      docker pull portainer/portainer
      #运行容器
      docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
      #参数说明:
      -d:容器在后台运行;
      -p 9000:9000:把容器的9000端口映射到宿主的9000端口,这是访问portainer管理页面需要用的端口
      -v /var/run/docker.sock:/var/run/docker.sock :把宿主机目录挂载到容器中同样的位置
      -v portainer_data:/data #把宿主机portainer_data数据卷挂载到容器/data目录

      访问:IP+9000端口,就会看到 portainer 管理页面了

    portainer 管理页面:

    image-20220216225401982

    3、部署hass

    #拉取hass的最新版镜像(注意:根据自己需求选择对应版本,并不是越新越好)
    docker pull homeassistant/home-assistant:latest
    #创建容器并运行
    docker run -d --name="hass" -v /home/hass/config:/config -p 8123:8123 -p homeassistant/home-assistant:latest
    解释:
    -d:表示在后台运行
    –name:给容器设置一个名称,用于识别,这里起名叫做hass
    -v:配置目录映射(容器内的指定目录直接映射到本地主机的对应目录,比如上面那句命令,意思就是将容器里hass的 config 目录映射到 /home/hass/config 这个目录里面)
    -p:映射端口(将容器内的8123端口直接映射到物理机的8123端口,这样服务器的IP地址+端口号即可访问hass页面)
    最后就是运行刚才下载的容器镜像了,对于其他的版本了,注意要加上tag,避免自动下载最新版本。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    4、访问hass

    • 访问页面

    image-20220217135925672

    到此,hass就在云服务器就部署好了,下面通过Hass,连接智能设备,本文通过连接小米智能设备来演示。

    三、连接小米智能家居设备

    1、安装HACS

    • 安装HACS(Home Assistant Community Store,一个商店,集成丰富,依托于GitHub。

      #进入hass目录,安装hacs
      docker exec -it hass bash
      wget -p -o - https://get.hacs.xyz |bash -

    • 重启hass

      image-20220217141659982

      image-20220217141739157

      经过与GitHub授权访问后,你可以将HACS添加进组件中了。

      hacs授权完成

    2、安装xioami_miot

    • 通过hacs自动安装

      • 打开 Home Assistant 的 HACS 页面。
      • 搜索xiaomi_miot
      • 点击集成
      • 点击右下角的浏览并添加存储库
      • 在新打开的页面中找到Xiaomi MIoT,安装即可。
    • 手动安装

    1. 下载插件 zip 压缩包

      贴上: https://github.com/ha0y/xiaomi_miot_raw/archive/refs/heads/master.zip

    2. 依次打开压缩包中的xiaomi_miot_raw-master/custom_components文件夹。

    3. 将该文件夹中的xiaomi_miot_raw文件夹拷贝至自己 hass 安装目录的custom_components文件夹,即替换掉原来的xiaomi_miot_raw

    4. 重新启动 Home Assistant。

    3、集成小米智能设备

    • 配置界面->添加集成->搜索xiaomi_miot->登录小米账号
    • 自动识别该账号下的智能设备
    • 添加

    image-20220217144519709

    现在,我们可以通过部署在云服务器上的Hass,来操控我们的小米智能家居设备了,所以索性买了灯泡和台灯试了试

    image-20220217144631165

    苹果用户的话,也可以直接下载Hass

    当然,直接集成homekit,也可以同步小米的设备,能更方便的操作。大家可以试试

    四、docker常用命令

    附上docker常用的一些操作指令:

    docker images 查看镜像
    docker rmi 镜像id 删除镜像
    docker ps-a 查看已有容器
    docker start 容器id 运行容器
    docke ps 显示所有运行中的容器
    docker ps -a 显示所有容器
    docker rm 容器 ID 或名称 删除容器
    docker start 容器 ID 或名称 启动指定容器
    docker stop 容器 ID 或名称 停止指定容器
    docker restart 容器 ID 或名称 重启指定容器

  • 相关阅读:
    vue自动更新版本号
    一款类似宜搭、轻流的低代码核心功能:jvs-flow(流程引擎)
    Linux学习笔记(2)—文件基本属性
    代理模式详细讲解
    Android 获取系统编解码器
    【Java 基础篇】Java实现文件搜索详解
    【 C++ 】AVL树
    【DevOps】OpenVPN 实现分流的几种方法和实战
    Qt版本的冷知识
    当语文课本上的古诗词遇上拓世AI,文生图绘就东方美学画卷
  • 原文地址:https://blog.csdn.net/m0_67392811/article/details/126327658