linux安装homeassistant(智能设备远程控制开源框架)

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

linux安装homeassistant(智能设备远程控制开源框架)_第1张图片
docker 服务显示为绿色的 running 了,表示运行中

2、部署hass

拉取hass的最新版镜像(注意:根据自己需求选择对应版本,并不是越新越好)

可访问docker官网搜索:homeassistant
linux安装homeassistant(智能设备远程控制开源框架)_第2张图片
或通过命令行在linux中搜索

docker search homeassistant

linux安装homeassistant(智能设备远程控制开源框架)_第3张图片

拉取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
linux安装homeassistant(智能设备远程控制开源框架)_第4张图片
将其上传至服务器,然后使用命令cp到docker容器中,注意homeassistant容器是叫hass,比如将hacs.zip上传至服务器的/opt/文件夹下
linux安装homeassistant(智能设备远程控制开源框架)_第5张图片

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

linux安装homeassistant(智能设备远程控制开源框架)_第6张图片
linux安装homeassistant(智能设备远程控制开源框架)_第7张图片
linux安装homeassistant(智能设备远程控制开源框架)_第8张图片

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

linux安装homeassistant(智能设备远程控制开源框架)_第9张图片
配置完成后即可对其进行测试
linux安装homeassistant(智能设备远程控制开源框架)_第10张图片
!linux安装homeassistant(智能设备远程控制开源框架)_第11张图片

添加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上添加设备并能控制,比如添加一个小米的开关
linux安装homeassistant(智能设备远程控制开源框架)_第12张图片
linux安装homeassistant(智能设备远程控制开源框架)_第13张图片
linux安装homeassistant(智能设备远程控制开源框架)_第14张图片

注意

这里需要注意的一点是目前市面上大部分的智能设备都需要通过蓝牙或者内网才能进行设备控制,如果你的服务器和智能设备连接的同一网段那么没有问题,如果不是的话可在内网弄一台树莓派(树莓派的homeassistant安装可以在淘宝上购买对应的教程,docker树莓派安装且需要能持久化)

手上没有树莓派自己随便找了一个刷ha就好
linux安装homeassistant(智能设备远程控制开源框架)_第15张图片
后续还有一篇文章:java对接homeassistant实现远程控制(配置frp实现内网穿透)

你可能感兴趣的:(linux,开源,docker)