【Follow me第二季第2期】+MQTT协议接入到开源的智能家居平台HA(HomeAssistant)
[复制链接]
- 安装虚拟机
- 更换软件镜像源地址sudo vim /etc/apt/sources.list,更新如下文件保存退出。
# 阿里云镜像源(以Ubuntu 20.04为例)
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
- 更新软件包sudo apt update
- 允许APT使用HTTPSsudo apt-get install apt-transport-https ca-certificates curl software-properties-common
- 添加Docker官方GPG密钥curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 添加Docker的稳定版本仓库sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
- 再次更新软件包索引sudo apt-get update
- 安装Docker CE(社区版)sudo apt-get install docker-ce
- 验证Docker是否安装成功并运行sudo systemctl status docker
- 安装镜像
Sudo docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=Asia/Shanghai \
-v /home/alientek/homeassistant:/config \
-v /run/dbus:/run/dbus:ro \
--network=host \
ghcr.io/home-assistant/home-assistant:stable
- 测试,网址http://<host>:8123
H、重启homeassistant,sudo docker restart homeassistant即可。
I、打开homeassistant配置embedded mqtt
J、安装mosquitto
K、查看安装的镜像
- MOSQUITTO创建目录文件
p.1创建目录
mkdir -p /mosquitto/config
mkdir -p /mosquitto/data
mkdir -p /mosquitto/log
p.2初始化配置文件
vi /mosquitto/config/mosquitto.conf
# 输入一下命令内容
persistence true
persistence_location /mosquitto/data
log_dest file /mosquitto/log/mosquitto.log
p.3为目录授权
chmod -R 755 /mosquitto
chmod -R 777 /mosquitto/log #日志目录要最大权限
- Mosquitto启动镜像
建立运行执行脚本 mosquitto.sh
sudo docker run -it --name=mosquitto --privileged -p 1883:1883 -p 9001:9001 -v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf -v /mosquitto/data:/mosquitto/data -v /mosquitto/log:/mosquitto/log -d eclipse-mosquitto
- 根据Docker安装MQTT服务mosquitto进行配置(以上参考此博客)
exit后重启mqtt服务sudo docker restart d604755c81f3
- Mqtt.fx设置
连接不上,查找原因经过各种测试,解决参考博客。
Tips:给docker容器加个网桥,mqtt.fx直接访问虚拟机的地址:端口号就连接上了。
测试一下:开两个终端,一个sub,一个pub,在mqtt.fx中提交topic hello/world,再次pub一个消息,sub端和mqtt.fx都收到了消息。
- 配置homeassistant中MQTT自动发现
配置MQTT,下一步,然后提交即可。
使用MQTTX进行测试,连接MQTT,按照homeassistant自动发现规则发送数据。
|