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

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

如果需要稳定版本

docker pull homeassistant/home-assistant:stable

启动命令

docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=Asia/Shanghai \
  -v /data/homeassistant:/config \
  --network=host \
  homeassistant/home-assistant

-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

说明一下,上面创建的几个文件夹都是为安装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

我用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

温馨提示:
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

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;
     }
}