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
docker 服务显示为绿色的 running 了,表示运行中
2、部署hass
拉取hass的最新版镜像(注意:根据自己需求选择对应版本,并不是越新越好)
可访问docker官网搜索:homeassistant
或通过命令行在linux中搜索
docker search homeassistant
拉取docker镜像
docker pull homeassistant/home-assistant:latest
创建容器并运行
docker run -d --name="hass" -v ${HOME}/hass/mac_config -p 8123:8123 homeassistant/home-assistant
注:这里启动docker容器之后每次启动docker容器都会数据初始化建议进行数据挂载
docker run -d --name="hass" -v /var/lib/docker/volumes/mydata/_data/homeassistant:/config -p 8125:8123 homeassistant/home-assistant
将homeassistant/home-assistant容器内的config目录挂载到服务器本地目录的/var/lib/docker/volumes/mydata/_data/homeassistant文件下,相同容器下的目录可以共享
解释:
d:表示在后台运行
name:给容器设置别名(不然会随机生成,为了方便管理)
v:配置数据卷(容器内的数据直接映射到本地主机环境,参考路径配置
p:映射端口(容器内的端口直接映射到本地主机端口最后便是刚才下载的镜像了,运行该容器。
3、访问hass
运行需要放开端口8123,访问链接:ip:8123
4、安装hacs
首先去github官网下载hacs包
https://github.com/hacs/integration/releases
将其上传至服务器,然后使用命令cp到docker容器中,注意homeassistant容器是叫hass,比如将hacs.zip上传至服务器的/opt/文件夹下
1:进入docker容器中:docker exec -it hass bash
2:在config下创建文件夹:custom_components/hacs
3:将下载好的hacs.zip上传值/opt/目录下并使用命令拷贝至docker中:
docker cp /opt/hacs.zip hass:/config/custom_components/hacs
4:进入docker容器中并cd之hacs目录下解压:unzip hacs.zip
5:重启homeassistant并在配置中加入HACS
5、安装MQTT
安装 Mosquitto MQTT Broker
sudo yum install epel-release
sudo yum install mosquitto
启动 Mosquitto 服务
sudo systemctl start mosquitto
安装 Mosquitto MQTT 客户端
sudo yum install mosquitto-clients
测试 Mosquitto 是否正常工作
mosquitto_sub -h localhost -t test
在打开另外一个终端输入:
mosquitto_pub -h localhost -t test -m "hello world"
如果一切正常,您应该会在第一个终端窗口中看到 “hello world”。
创建用户名和密码、打开命令窗口 键入如下命令
mosquitto_passwd -c /etc/mosquitto/pwfile.example 自定义用户名
输入密码:自定义密码
修改配置文件连接MQTT服务器
在homeassistant配置文件configuration.yaml中添加以下代码
MQTT配置 注意格式
mqtt:
broker: 192.168.1.207 # MQTT服务器地址
port: 1883 # MQTT端口,默认是1883
username: # MQTT用户名
password: # MQTT密码
# 配置自动发现
discovery: true # 自动发现使用的主题位置前缀,缺省为homeassistant
discovery_prefix: homeassistant
##以下的配置不常用,如果需要使用,可以删除前面的注释#
##连接MQTT服务器使用的Client ID。不同的客户端应该具有不同的client_id。如果不填,会是一个随机数。
#client_id: 32osiwmm23
##发送保持连接包的间隔时间(秒),缺省为60秒
#keepalive: 60
##使用MQTT协议版本,缺省情况下使用3.1.1,如果服务器端不支持,会回退到3.1
#protocol: 3.1.1
添加完成后集成homeassistant
配置完成后即可对其进行测试
!
添加MQTT开关(未使用过)
在homeassistant配置文件configuration.yaml中添加以下代码
此配置添加系统内实体light.led_light_over_mqt
light:
- platform: mqtt #设备类型 MQTT
name: "LED light over MQTT" # 设备名字
optimistic: true #打开订阅状态功能
state_topic: "outTopic" #状态话题
command_topic: "inTopic" #命令话题 HASS发送控制设备的命令
payload_on: "1"
payload_off: "0" #命令格式
qos: 0
retain: true #是否保留标志
保存后重启系统。
在Home Assistant系统WEB概览页面编辑仪表盘添加卡片,按卡片下添加名称为LED light over MQTT的按钮,默认保存完成在概览页添加按钮。
启动NodeMCU板,在概览页点击名为LED light over MQTT的按钮即可控制板载LED并反馈在面板上。
参考文档:https://www.home-assistant.io/integrations/switch.mqtt/#retain
6、添加设备
在homeassistant上添加设备并能控制,比如添加一个小米的开关
注意
这里需要注意的一点是目前市面上大部分的智能设备都需要通过蓝牙或者内网才能进行设备控制,如果你的服务器和智能设备连接的同一网段那么没有问题,如果不是的话可在内网弄一台树莓派(树莓派的homeassistant安装可以在淘宝上购买对应的教程,docker树莓派安装且需要能持久化)
手上没有树莓派自己随便找了一个刷ha就好
后续还有一篇文章:java对接homeassistant实现远程控制(配置frp实现内网穿透)