• Docker+HomeAssistant+HACS+设备接入教程


    homeassistant久仰大名,据说可以一统各大物联网平台的设备,家里各平台的设备都有一点,控制起来很不方便,于是乎我也来尝尝~
    homeassistant官网 https://www.home-assistant.io/
    HACS https://github.com/hacs/integration

    准备

    1.Linux系统(Window)其实也类似
    2.安装好docker

    docker安装homeassistant

    官方有几个版本可供选择,安装方式可以:直接刷HA的系统,也可以用Docker安装,还可以直接安装在物理机上,具体区别如下:
    在这里插入图片描述
    我采用的是Docker进行安装,也就是Container,从上图也可以看到,直接刷系统功能是最全的,而用Docker容器的方式最方便,但是就没法用Supervisor,被阉割掉了一些系统管理、监控等功能,等有空再试试吧(咕咕咕~)

    HA官方安装教程中提供的镜像估计是docker私服,镜像地址是ghcr.io/home-assistant/home-assistant:stable,所以下载速度比较慢(不,是很慢=。=)
    然而在dockerhub也能找到HA官方上传的镜像,所以可以从docker官方直接拉取镜像,docker换成国内源之后就快了

    docker要换成国内源可以编辑/etc/docker/daemon.json来更换,如果没有这个文件就创建一个,然后添加想要的源,我的是这样的,供参考:
    {
    “registry-mirrors” : [
    “https://registry.docker-cn.com”,
    “https://docker.mirrors.ustc.edu.cn”,
    “http://hub-mirror.c.163.com”,
    “https://cr.console.aliyun.com/”
    ]
    }
    然后重启docker服务即可systemctl restart docker.service

    拉取最新镜像

    docker pull homeassistant/home-assistant
    
    • 1

    如果需要稳定版本

    docker pull homeassistant/home-assistant:stable
    
    • 1

    启动命令

    docker run -d \
      --name homeassistant \
      --privileged \
      --restart=unless-stopped \
      -e TZ=Asia/Shanghai \
      -v /data/homeassistant:/config \
      --network=host \
      homeassistant/home-assistant
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    -v /data/homeassistant:/config这一项需要根据自己实际情况修改,即把自己物理机某文件夹挂载到容器内,我是建了个文件夹/data/homeassistant来存放HA的文件

    如果pull稳定版本,记得最后面是homeassistant/home-assistant:stable
    镜像官方有多个编译版本,会自动适配,我在树莓派(ARM)和云服务器(x86)都部署了,命令是相同的,不需要区分CPU架构

    启动完成后,根据提示配置就可以了~
    在这里插入图片描述
    成功启动~!
    在这里插入图片描述

    安装HACS

    HACS(Home Assistant Community Store)是HA的第三方应用商店,有很多dalao们写的各种插件,可以连接各大物联网平台(某米某猫等)的设备,是一个必装的集成
    前面我也说了,我的HA相关文件都放到了/data/homeassistant下,所以下面的命令要根据自己实际情况进行调整

    mkdir /data/homeassistant
    mkdir /data/homeassistant/www
    mkdir /data/homeassistant/custom_components
    mkdir /data/homeassistant/custom_components/hacs
    
    • 1
    • 2
    • 3
    • 4

    说明一下,上面创建的几个文件夹都是为安装HACS而准备的,/www是存放未来HACS安装的各种首页磁贴啥的(官方叫Lovelace ),/custom_components/hacs是存放等会要安装的HACS文件
    接下来就是下载HACS相关文件进行安装了

    一般来说,直接从HACS的github下载最新的releases即可https://github.com/hacs/integration/releases/,但需要注意的是,HACS对HA的版本有要求,如果你安装的是低版本的HA,是没法装高版本的HACS的,我云服务器装的是2021.12.8 stable版的HA,没法用最新的HACS,所以尝试了几个版本发现1.22.0可用,而树莓派安装的是最新的HA,就安装最新的HACS。所以如果安装失败,可以适当降低版本

    cd hacs
    wget https://download.fastgit.org/hacs/integration/releases/download/1.22.0/hacs.zip
    unzip hacs.zip
    
    • 1
    • 2
    • 3

    我用CentOS和Raspbian都自带了unzip解压,木有的话自行安装unzip或者其他解压程序哈,不赘述

    解压完毕,需要重启HA
    这个时候就可以在【配置】–> 【设备与服务】–>右下角【添加集成】中搜索到HACS了
    在这里插入图片描述
    添加后,根据提示一路配置下去
    在这里插入图片描述
    需要绑定到自己的github账号,建议提前登录好自己的github后,再点击上面的链接(注意自己当前网络环境能否登上~)
    在这里插入图片描述
    输入一串密钥后,就可以绑定自己的github账号到HACS
    在这里插入图片描述
    绑定完成后HA会有提示,如果还是一直在转圈那就多试几次,提前登录好账号的话基本上可以一次搞定
    在这里插入图片描述
    然后左边的菜单栏就有HACS了!如果没有的话重启HA也会有了
    在这里插入图片描述

    homeassistant接入设备

    有了HACS,就可以很方便接入设备了~以接入某米的设备为例

    在HACS搜索,出现了很多插件,MIoT这个就适配了不少设备,就用它来吧
    在这里插入图片描述
    添加插件后,就可以输入自己的账号用户密码,然后就能添加自己账号下的设备到HA了
    在这里插入图片描述
    简单地添加到首页看看
    在这里插入图片描述
    good~这样的话就可以用HA,把各大平台的设备都添加进来统一管理啦!

    homeassistant App

    HA官方提供了APP,iOS和Android都有,可自行下载~

    https://www.github.com/home-assistant/iOS
    https://github.com/home-assistant/android
    
    • 1
    • 2

    温馨提示:
    App需要填入自己的HA地址,所以如果服务跑在家里的话,需要内网穿透或者公网才能在外面使用噢~
    如果HA内网穿透,configuration.yaml需要加上下面内容,同时内网穿透服务器(如ngrok、frp等)的nginx需要开启websocket支持,否则会出现外网无法访问、能访问但是无法登录等问题。
    HA配置文件configuration.yaml

    http:
      use_x_forwarded_for: True
      trusted_proxies:
        - 127.0.0.1/24
        - ::1/128
    
    • 1
    • 2
    • 3
    • 4
    • 5

    nginx配置参考(用frp内网穿透)

    server {
         listen	  80;
         server_name  *.frp.yourdomain.cn frp.yourdomain.cn;
         location / {
                 proxy_redirect off;
                 proxy_set_header Host $http_host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                 # 下面两行提供websocket支持,homeassistant需要
                 proxy_set_header Upgrade $http_upgrade;
                 proxy_set_header Connection "upgrade";
                 proxy_pass http://127.0.0.1:8080;
         }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
  • 相关阅读:
    每天五分钟机器学习:支持向量机通过核函数解决线性不可分的问题
    【JAVA】读取classpath下的文件
    Electron 调试node_internal代码*
    没想到还有这种骚操作~如何使用Golang实现无头浏览器截图?
    基于stm32单片机厨房安全环境天然气煤气监测系统
    数据库 概念模型CDM 逻辑模型LDM 物理模型PDM
    软考中级软件设计师--3.知识产权
    Scrapy08:scrapy-deltafetch,让爬虫有了记忆
    C语言 函数指针
    Java数据库连接 (Java Database connect)
  • 原文地址:https://blog.csdn.net/weixin_43909881/article/details/126136328