当前位置: 首页 > news >正文

【自用】云服务器 使用 docker 搭建 HomeAssistant + MQTT 物联网平台

总览

1.搭建流程概述
2.准备工作
3.开始搭建!
4.总结
如果想看 ESP32 或其他使用 MicroPython 编程的单片机如何连接到该云服务器,实现 HomeAssistant 控制 单片机的内容,请看我这篇博客的下一篇。

一、搭建流程概述

0.总体流程

我们需要先有一台云服务器,然后在上面搭建 docker(用宝塔傻瓜式搭建就行了,一会儿我会写怎么搭建),再用 docker 创建 2个 容器,它们分别装着 HomeAssistant 和 MQTT,这相当于我们在 1个 云服务器 上 运行了 2个 “服务(服务器)”。MQTT 网络信协议的具体内容如下,可以把它想象成一个 用于连接 ESP32物联网终端 和 HomeAssistant 平台 的 中转站:

在这里插入图片描述

在这里插入图片描述


二、准备工作

0.购买云服务器

0.1 买一台云服务器(什么阿某云、腾某云、华某云随便,轻量型服务器应该就够用了,看自己。不会买的自己搜去)

1.个人PC上暂时需要下载的软件或服务

1.1 Xshell(用于访问云服务器,没有安装的话自己去搜安装xshell的安装和使用教程,想要控制云服务器没有xshell…除非你用其他的终端访问软件)

2.云服务器上暂时需要下载的软件和服务

2.1 宝塔(用于更简便地使用docker和其他操作)


三、搭建工作开始

1.使用宝塔,访问你的云服务器,并傻瓜式安装 docker

点击左侧栏的 docker,你的页面上应该有一个“安装”。点击后,就进行安装,时间可能会较长,请耐心等待直到安装完成。

在这里插入图片描述

2.docker 安装完成后,直接拉取 HomeAssistant 镜像

2.1 拉取 HomeAssistant
docker -> 镜像 -> 从仓库中拉取 -> 填入内容:homeassistant/home-assistant:latest -> 确认
在这里插入图片描述

2.2 安装 HomeAssistant 步骤:

在这里插入图片描述在这里插入图片描述

3.创建 docker 容器

3.1 创建容器文件夹
文件 -> 进入到 根目录下的 home/你的用户名/ 路径下,新建一个文件夹“homeassistant-config”,如图所示。
在这里插入图片描述3.2 打开终端,开始创建容器

在这里插入图片描述

3.3 输入创建容器命令,并回车:

sudo docker run -d --name="homeassistant-v1" -v xxx:/config -p 8123:8123 homeassistant/home-assistant:latest

请注意!上面的命令中“xxx”是创建容器的路径,应替换为你自己的路径!!!如我的命令改为了:

sudo docker run -d --name="homeassistant-v1" -v /home/admin/homeassistant-config:/config -p 8123:8123 homeassistant/home-assistant:latest

3.4 创建容器成功

运行命令没有报错,去看看你刚才创建的空文件夹,现在如果已经有东西了则创建成功。如下面这样:

在这里插入图片描述

4.开放 云服务器 防火墙 8123 端口

4.1 开放端口
我也懒得写了,你直接在宝塔的终端里或者其他什么软件xshell之类的,只要能进到云服务器终端里就行,依次运行如下命令:

firewall-cmd --add-port=8123/tcp --permanent
firewall-cmd --reload

4.2 查看端口是否开放,你能看到 8123/tcp 代表开放成功

firewall-cmd --list-ports

在这里插入图片描述4.3 在云平台上开放端口

这个根据你使用的是什么云,自已找找,你的服务器的防火墙选项,添加端口即可(我演示的是阿里云):

在这里插入图片描述

5.配置 HomeAssistant

5.1 访问 HomeAssistant

使用你的ip:8123的方式来访问 HomeAssistant 网页。如你的云服务器外网ip如果是182.96.213.203,那么你就在浏览器里访问如下网址:(我只是举个例子,你别填182.96.213.203,填你自己的服务器外网IP!)

182.96.213.203:8123

在这里插入图片描述

6.安装 MQTT 服务器

6.1 访问 EMQX 官网下载区
https://www.emqx.io/zh/downloads
6.2 运行命令 将 EMQX 放入 docker 中
分别在服务器终端上执行下面图中的“获取Docker镜像”和“启动Docker容器”的两段代码。

代码片1:

docker pull emqx/emqx:5.1.4

代码片2:

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.4

在这里插入图片描述

6.3 EMQX 下载完成后,查看是否 EMQX 已经在 docker 中:

使用命令:

sudo docker ps

在这里插入图片描述

6.4 开放防火墙上的 18083 和 1883 端口

6.4.1 依次运行命令,开放端口并重启防火墙使其生效:

firewall-cmd --add-port=18083/tcp --permanentfirewall-cmd --add-port=1883/tcp --permanentfirewall-cmd --reload

6.4.2 运行如下命令,看是否我们已经开放了 18083 和 1883 端口:

firewall-cmd --list-ports

在这里插入图片描述

6.4.3 在服务器控制台上开放 18083 和 1883 端口:

在这里插入图片描述

6.5 访问 EMQX 网站
6.5.1 URL :
http://xxx.xxx.xxx.xxx:18083
xxx.xxx.xxx.xxx 代表你云服务器的公网IP地址

在这里插入图片描述

6.5.2 登录

默认的用户名是:admin
默认的密码是:public

6.6 回到 HomeAssistant 网站

6.6.1 操作流程:
i:配置(左边栏) ->
ii:设备与服务 ->
iii:添加集成(右下角)->
iv:搜索“MQTT” ->
v:点击“MQTT” ->
vi:点击“MQTT” ->
vii:输入相关信息(请注意,用户名和密码是你刚才登录 EMQX 的用户名和密码)
viii:提交,成功。我们的 HomeAssistant 已经成功连接了 MQTT 服务

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.7 回到 EMQX 网站

6.7.1 操作流程:

监控 -> 客户端 -> 发现一个新连接,好耶

在这里插入图片描述

6.7.2 确认 MQTT 和 HomeAssistant 已经连接成功:
1.去 HomeAssistant 网站
2.进入刚才的 MQTT
3.点击“选项”
4.打开监听后,发送数据包测试,成功。

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

四、总结

至此,在云服务器上使用 docker 搭建 HomeAssistant 平台并 让 MQTT 与 HomeAssistant 平台建立通讯的任务圆满结束。如果想看 ESP32 或其他使用 MicroPython 编程的单片机如何连接的内容,请看我这篇博客的下一篇。

相关文章:

【自用】云服务器 使用 docker 搭建 HomeAssistant + MQTT 物联网平台

总览 1.搭建流程概述 2.准备工作 3.开始搭建! 4.总结 如果想看 ESP32 或其他使用 MicroPython 编程的单片机如何连接到该云服务器,实现 HomeAssistant 控制 单片机的内容,请看我这篇博客的下一篇。 一、搭建流程概述 0.总体流程 我们需要…...

ABAP: SQL 多值查询

基础查数据 问题举例:例如查物料类型为ZFRT、ZROH和ZRSA的物料编码。 1、直接查询,三种不同类型的物料类型是或的关系。 SELECT DISTINCT ma~matnr ma~mtartFROM mara AS maINNER JOIN mbewh AS mbON ma~matnr mb~matnrINTO CORRESPONDING FIELDS OF…...

分布式学习最佳实践:从分布式系统的特征开始

正文   在延伸feature(分布式系统需要考虑的特性)的时候,我逐渐明白,这是因为要满足这些feature,才设计了很多协议与算法,也提出了一些理论。比如说,这是因为要解决去中心化副本的一致性问题&…...

第三章 图论 No.8最近公共祖先lca, tarjan与次小生成树

文章目录 lcaTarjan板子题:1172. 祖孙询问lca或tarjan:1171. 距离356. 次小生成树352. 闇の連鎖 lca O ( m l o g n ) O(mlogn) O(mlogn),n为节点数量,m为询问次数,lca是一种在线处理询问的算法 自己也是自己的祖先 倍…...

[Kubernetes]Kubeflow Pipelines - 基本介绍与安装方法

1. 背景 近些年来,人工智能技术在自然语言处理、视觉图像和自动驾驶方面都取得不小的成就,无论是工业界还是学术界大家都在惊叹一个又一个的模型设计。但是对于真正做过算法工程落地的同学,在惊叹这些模型的同时,更多的是在忧虑如…...

Sui网络的稳定性和高性能

Sui的最初的协议开发者设计了可扩展的网络,通过水平扩展的方式来保持可负担得起的gas费用。其他区块链与之相比,则使用稀缺性和交易成本来控制网络活动。 Sui主网上线前90天的数据指标证明了这一设计概念,在保持100%正常运行的同…...

RabbitMQ 安装教程

RabbitMQ 安装教程 特殊说明 因为RabbitMQ基于Erlang开发,所以安装时需要先安装Erlang RabbitMQ和Erlang版本对应关系 查看地址:www.rabbitmq.com/which-erlan… 环境选择 Erlang: 23.3及以上 RabbitMQ: 3.10.1Windows 安装 1. 安装Erlang 下载地…...

STM32F429IGT6使用CubeMX配置GPIO点亮LED灯

1、硬件电路 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、生成工程配置 5、部分代码 6、实验现象...

DOM的节点操作+事件高级+DOM事件流+事件对象

一.节点操作 1.父节点: node.parentNode 得到的是离元素最近的父级节点 2.子节点: parentNode.childNodes 所有的子节点 包含元素节点 文本节点等等parentNode.children (非标准) 获取所有的子元素节点,实际开发常用 parentNode.firstChild 获取…...

云端剪切板,让你的数据同步无界

云端剪切板,让你的数据同步无界! 每个人都应该保护自己的数据,同时使它易于访问和共享。这就是我们的云剪切板网站诞生的原因!无论你在哪里,只要登录我们的网站,就可以随时随地使用你的剪切板数据。 你可…...

Location匹配与Rewrite重写

一、常见的Nginx正则表达式 ^ :匹配输入字符串的起始位置 $ :匹配输入字符串的结束位置 * :匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll”:匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“oll…...

Docker源码阅读 - goland环境准备

docker 源码分为两部分 cli 和 moby(docker) tips: docker是从moby拷贝过去的;docker整体是一个C-S架构,cli客户端,docker服务端 docker-ce:https://github.com/docker/docker-ce cli:https://…...

数据库信息速递 -- MariaDB 裁员后,前景不确定 (翻译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群&#xff…...

4.1 Windows终端安全

数据参考:CISP官方 目录 安全安装保护账户安全本地安全策略安全中心系统服务安全其他安全设置软件安全获取 一、安全安装(以安装windows系统为例) 选择合适的版本 商业版本:家庭版、专业版、专业工作站版、企业版特殊版本&…...

win10强制卸载奇安信天擎

1、win r 打开运行 2、输入msconfig进入系统配置面板 3、点击引导,修改安全引导配置项 4、重启系统(桌面会变成纯黑背景,符合预期,莫紧张) 5、删除安装的文件夹 若是安装天擎时选择的自定义安装,则配置…...

npm常用命令

npm -v:查看 npm 版本 npm init:初始化后会出现一个 Package.json 配置文件,可以在后面加上 -y,快速跳到问答界面 npm install:会根据项目中的 package.json 文件自动给下载项目中所需的全部依赖 npm insall 包含 -…...

(一)创建型设计模式:4、原型模式(Prototype Pattern)

目录 1、原型模式的含义 2、C实现原型模式的简单实例 1、原型模式的含义 通过复制现有对象来创建新对象,而无需依赖于显式的构造函数或工厂方法,同时又能保证性能。 The prototype pattern is a creational design pattern in software development. …...

【算法学习】高级班九

这种互为旋变串&#xff1a; 给定两个字符串&#xff0c;判断是否互为旋变串 代码&#xff1a; 打表法&#xff1a; 每一层内的数字不互相依赖&#xff0c;只依赖它下面的层但实际上size会约束L1和L2的值&#xff0c;即L1和L2<N-size 思路&#xff1a;设置一个窗口…...

数据安全加固:深入解析滴滴ES安全认证技术方案

前文分别介绍了滴滴自研的ES强一致性多活是如何实现的、以及如何提升ES的性能潜力。由于ES具有强大的搜索和分析功能&#xff0c;同时也因其开源和易于使用而成为黑客攻击的目标。近些年&#xff0c;业界ES数据泄露事件频发, 以下是一些比较严重的数据泄露案件&#xff1a; 202…...

Typescript第九/十章 前后端框架,命名空间和模块

第九章 前后端框架 9.1 前端框架 Typescript特别适合用于开发前端应用。Typescript对JSX有很好的支持&#xff0c;而且能安全地建模不可变性&#xff0c;从而提升应用的结构和安全性&#xff0c;写出的代码正确性高&#xff0c;便于维护。 9.1.1 React JSX/TSX内容等 详情…...

android 原生桌面上有一个搜索栏图标,如何去掉?

android 原生桌面上有一个搜索栏图标&#xff0c;如何去掉&#xff1f;下载下面的资源解决&#xff01;通过网盘分享的文件&#xff1a;去掉桌面的google图标-2.zip 链接: https://pan.baidu.com/s/15FFPgw-O0FCyZBi99o_MXg?pwd27dm 提取码: 27dm...

GEO系统贴牌深度解析:杭州爱搜索如何助力企业构建AI搜索时代的自主营销阵地

核心参数解析与全平台覆盖能力概览在AI搜索时代&#xff0c;信息获取的逻辑正发生根本性转变。传统搜索引擎依赖关键词匹配和链接分析&#xff0c;而AI大模型&#xff08;如ChatGPT、DeepSeek、豆包等&#xff09;则基于对海量语料的理解&#xff0c;直接生成答案。这意味着&am…...

【多线路故障】含sop的配电网故障重构研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…...

R语言环境配置与高效编程实战指南

1. 项目概述&#xff1a;R语言环境生存指南刚接触R语言时&#xff0c;我被它强大的统计功能和灵活的绘图能力吸引&#xff0c;但很快发现这个看似简单的工具背后隐藏着无数"陷阱"。从包管理冲突到内存溢出&#xff0c;从脚本调试到性能优化&#xff0c;每个环节都可能…...

JoyCon-Driver完整指南:如何在Windows上免费使用Switch手柄玩PC游戏

JoyCon-Driver完整指南&#xff1a;如何在Windows上免费使用Switch手柄玩PC游戏 【免费下载链接】JoyCon-Driver A vJoy feeder for the Nintendo Switch JoyCons and Pro Controller 项目地址: https://gitcode.com/gh_mirrors/jo/JoyCon-Driver 想让你的任天堂Switch …...

零成本打造专业4K播放器:创维E900V22C电视盒子终极改造指南

零成本打造专业4K播放器&#xff1a;创维E900V22C电视盒子终极改造指南 【免费下载链接】e900v22c-CoreELEC Build CoreELEC for Skyworth e900v22c 项目地址: https://gitcode.com/gh_mirrors/e9/e900v22c-CoreELEC 想将闲置的创维E900V22C电视盒子变身为强大的4K媒体播…...

WideSearch:评测LLM智能体广度信息搜集能力的基准测试集

1. 项目概述&#xff1a;当AI智能体遇上“大海捞针”式信息搜集大家好&#xff0c;我是Ryan&#xff0c;在字节跳动Seed团队负责大模型智能体相关的研究与工程落地。今天想和大家深入聊聊我们最近开源的一个新玩意儿——WideSearch。如果你正在研究或应用LLM智能体&#xff08;…...

3个关键步骤:将你的Amlogic电视盒子变身高性能Armbian服务器

3个关键步骤&#xff1a;将你的Amlogic电视盒子变身高性能Armbian服务器 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk…...

别再瞎调了!手把手教你精确计算EtherCAT主站循环周期(附Linux/Xenomai实测数据)

深度解析EtherCAT主站循环周期&#xff1a;从理论到实践的精准调优指南 在工业自动化领域&#xff0c;EtherCAT凭借其卓越的实时性能已成为运动控制系统的首选协议。然而&#xff0c;许多工程师在实际部署中常遇到一个关键问题&#xff1a;如何精确计算和优化主站循环周期&…...

CyberChef终极指南:网络安全分析师的瑞士军刀

CyberChef终极指南&#xff1a;网络安全分析师的瑞士军刀 【免费下载链接】CyberChef The Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis 项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef CyberChef是一个…...