基于Home Assistant远程开门

news2024/10/7 6:43:56

基于Home Assistant远程开门

1.购买云服务器

1.1 阿里云服务器

本人使用的是阿里云服务器,其他的腾讯云,百度云都可以

如果你想要一个建议的话:

  • 推荐在打折优惠的时候买,比如双十一

  • 阿里云最近有一个飞天计划,在校大学生可以免费白嫖七个月

1.2购买服务器

地址:阿里云-计算,为了无法计算的价值

1.3安装Ubuntu系统

1.4去控制台

找到自己的实例可以重装系统,重装成Ubuntu系统就行带LTS,就表示会更新,有售后的意思

如果你在买服务器的时候就选了Ubuntu系统那就不用重装

1.5 改密码

还是去到控制台,改自己实例的密码

1.6 验证服务器是否在工作

win+R打开命令框,ping 自己的公网地址,返回有数据说明服务器在运行中,那串数据显示的是你ping的电脑和服务器传输一次的时间

2.安装宝塔

宝塔你可以理解为Linux的一个应用商店

2.1 安装宝塔的命令
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec
2.2 拷贝宝塔的一些访问网站
外网面板地址: https://101.43.125.129:23121/4a239910
内网面板地址: https://10.0.4.7:23121/4a239910
username: uhp4t5w6
password: d65e898b
If you cannot access the panel,
release the following panel port [23121] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[23121]端口
因已开启面板自签证书,访问面板会提示不匹配证书,请参考以下链接配置证书
https://www.bt.cn/bbs/thread-105443-1-1.html
2.3 防火墙

我们通过https://101.43.125.129:23121/4a239910访问安装在服务器中的宝塔,在这过程中,有一道防火墙在中间,他就是用来隔绝

不认识的ip端口号进行访问服务器

我们去阿里云->控制台->安全组添加我们访问服务器的端口号,就可以了

2.4 访问宝塔

通过安装时候返回的网站 https://101.43.125.129:23121/4a239910进行访问

3.安装Docker

Docker通俗来讲就是虚拟机,官话就是容器,比如VMware在电脑里面在安装一台电脑

3.1 安装Docker

两种方式:

  • 通过命令行下载

  • 在宝塔里面进行下载

 

4.安装Home Assistant

Home Assistant是一款智能家居自动化的系统,可以接入各种设备,各种控制

4.1使用Docker安装 HA

安装HA有很多种方法,比如树莓派,电脑都可以安装,因为我们HA到时候是7x24一直工作的,我们就安装在服务器上

HA镜像:homeassistant/home-assistant:latest


 

4.2创建一个文件夹存储HA数据

mkdir /home/lijianhua/homeassistant-config

4.3把HA加入到容器

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

  • docker run:创建一个新的容器(虚拟机)

  • -d:表示后台运行,通俗讲就是它在运行,终端看不到它

  • --name="homeassistant-v1":给这个新的运行的虚拟机(容器)命名为homeassistant-v1

  • -v xxxx:yyyy:xxxx部分就是你Ubuntu电脑的真实路径,yyyy就是运行的新的虚拟机的路径。这句话翻译成大白话:让Ubuntu电脑的xxxx文件夹与新的虚拟机的yyyy文件夹是同一个文件夹,它们俩共享

  • -p 8123:8123:将Ubuntu电脑的8123端口(第1个)与虚拟机的端口8123(第2个)做映射,大白话:就是访问Ubuntu的8123端口的请求都会转发给虚拟机的8123端口

  • homeassistant/home-assistant:latest:表示要用的哪个docker 镜像

4.4设置防火墙

把8123加入到安全组

4.5 访问HA
http://101.43.128.129:8123/

将上面的ip改为你自己Ubuntu服务器的公网ip地址即可

4.6 常用的Docker命令
指令说明
docker images查看已下载的镜像
docker rmi 镜像名称:标签名删除已下载的镜像
docker search 镜像从官方仓库(hub.docker.com)查找镜像
docker pull 镜像名称:标签名标签名默认是 latest,代表最新版本。
docker run创建容器
docker ps列出运行中的容器(运行中)
docker ps -a列出所有的容器(运行、未运行)
docker rm 容器名称删除停止的容器
docker rm -f 容器名称删除运行中的容器
docker start 容器名称启动容器
docker stop 容器名称停止容器
docker restart 容器名称重启容器
docker exec执行容器中的指令

5.安装MQTT服务器

5.1什么是mqtt

mqtt是一种协议,一种约定,基于服务端/客户端/订阅/发布的协议

5.2 安装mqtt服务器

我们的服务器并不是mqtt服务器,我们要部署一个mqtt服务器到Docker

我们采用的是EMQX这一款MQTT服务软件,官网地址如下:EMQX: 大规模分布式 MQTT 消息服务器

sudo docker pull emqx/emqx:5.0.16 //下载EMQ镜像
sudo docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.0.16 
//把mqtt服务器部署到docker

其中1883端口是访问这个mqtt服务器的端口

18083是网页控制端口,通过这个端口访问mqtt服务器

6.Home Assistant安装MQTT客户端

 

 

  

6.HA安装HACS

wget -O - https://get.hacs.xyz | bash -

配置步骤: 

  • 在进入配置 -> 设备和服务 

  • 点击右下角的添加集成,搜索hacs

  • 会生成一个 设备码, 暂时不要提交。

  • 打开网页https://github.com/login/device,

  • 登陆,并输入设备码

  • 点击Authorize hacs

  • 回到设备码显示页面,提交即可

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/842308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于丢失安卓秘钥的撞sha-1值的办法

实验得知,安卓sha-1和keytool生成秘钥签名文件的时间有关。 前提条件是,开发者必须知道生成秘钥的所有细节参数 以下是撞文件代码(重复生成) import time import osidx 0while True:cmdkeytool -keyalg RSA -genkeypair -alia…

【机器学习】 贝叶斯理论的变分推理

许志永 一、说明 贝叶斯原理,站在概率角度上似乎容易解释,但站在函数立场上就不那么容易了;然而,在高端数学模型中,必须要在函数和集合立场上有一套完整的概念,其迭代和运算才能有坚定的理论基础。 二、贝叶…

Qt能跨多少个平台?Qt能支持多少个平台?

2023年8月5日,周日下午 目录 Qt所支持的平台更多关于Qt支持的信息 Qt所支持的平台 图中显示的平台都支持。 想要更详细的平台支持信息可以查看:Supported Platforms | Qt 5.15 更多关于Qt支持的信息 Qt - 支持的平台及语言

【技巧】如何保护PowerPoint不被改动?

PPT,也就是PowerPoint,是很多小伙伴在工作生活中经常用到的图形演示文稿软件。 做好PPT后,担心自己不小心改动了或者不想他人随意更改,我们可以如何保护PPT呢?下面小编就来分享两个常用的方法: 1. 将PPT改…

Bert详细学习及代码实现详解

BERT概述 BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder,因为decoder是不能获要预测的信息的。在大型语料库(Wikipedia BookCorpus)上训练一个大型模型(12 层到 …

windows为nginx添加定时任务(开机延迟启动)

windows开机启动任务 调用定时任务管理器选中windows创建基本任务设置名称和描述设置触发器 并且添加个延迟触发设置操作设置条件配置设置 调用定时任务管理器 winr 输入 taskschd.msc回车 选中windows创建基本任务 设置名称和描述 设置触发器 并且添加个延迟触发 设置操作 …

深入学习 Redis - 事务、实现原理、指令使用及场景

目录 一、Redis 事务 vs MySQL事务 二、Redis 事务的执行原理 2.1、执行原理 2.2、Redis 事务设计这么简单,为什么不涉及成 MySQL 那样强大呢? 三、Redis 事务的使用 3.1、使用场景 3.2、具体演示 开启/执行/放弃事务 watch 监控 watch 实现原理…

Visual ChatGPT:Microsoft ChatGPT 和 VFM 相结合

推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 什么是Visual ChatGPT? Visual ChatGPT 是一个包含 Visual Foundation 模型 (VFM) 的系统,可帮助 ChatGPT 更好地理解、生成和编辑视觉信息。VFM 能够指…

UML箭头汇总

参考:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html 1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言。 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图&#xff…

Hi,运维,你懂Java吗--No.9:线程池

作为运维,你不一定要会写Java代码,但是一定要懂Java在生产跑起来之后的各种机制。 本文为《Hi,运维,你懂Java吗》系列文章 第九篇,敬请关注后续系列文章 欢迎关注 龙叔运维(公众号) 持续分享运维…

8个最高效的Python爬虫框架,你用过几个?

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 小编收集了一些较为高效的Python爬虫框架。分享给大家。 1.Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程…

Springboot @Validated注解详细说明

在Spring Boot中&#xff0c;Validated注解用于验证请求参数。它可以应用在Controller类或方法上 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </depen…

SpringBoot源码分析(7)--prepareContext/准备应用上下文

文章目录 一、前言二、prepareContext2.1、context.setEnvironment2.2、postProcessApplicationContext(context);2.3、applyInitializers(context)2.4、发布ApplicationContextInitializedEvent事件2.5、打印启动和profile日志2.6、注册单例Bean2.6.1、手工注册单例Bean流程 2…

尚品汇总结七:商品详情模块(面试专用)

一、业务介绍 订单业务在整个电商平台中处于核心位置&#xff0c;也是比较复杂的一块业务。是把“物”变为“钱”的一个中转站。 整个订单模块一共分四部分组成&#xff1a; 结算页面 在购物车列表页面中,有一个结算的按钮,用户一点击这个按钮时,跳转到结算页,结算页展示了用…

单细胞测序基础知识

构建文库 上机测序 根据不同的荧光检测不同的碱基 质量控制&#xff08;质控QC&#xff09; 去除低质量的序列 表达定量 统计reads数&#xff0c;进而得到表达矩阵 标准化 让所有样本处在同一起跑线上 主成分分析PCA 图中每个点都代表一个样本&#xff0c;不同颜色…

【Linux】网络套接字知识点补足

目录 1 地址转换函数 1.1 字符串转in_addr的函数: 1.2 in_addr转字符串的函数: 1.3 关于inet_ntoa 2 TCP协议通讯流程 1 地址转换函数 本节只介绍基于IPv4的socket网络编程,sockaddr_in中的成员struct in_addr sin_addr表示32位 的IP 地址但是我们通常用点分十进制的字符串…

[BabysqliV3.0]phar反序列化

文章目录 [BabysqliV3.0]phar反序列化 [BabysqliV3.0]phar反序列化 开始以为是sql注入 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ST1jvadM-1691302941344)(https://raw.githubusercontent.com/leekosss/photoBed/master/202308032140269.png)…

CentOS 7中,配置了Oracle jdk,但是使用java -version验证时,出现的版本是OpenJDK,如何解决?

1.首先&#xff0c;检查已安装的jdk版本 sudo yum list installed | grep java2.移除、卸载圈红的系统自带的openjdk sudo yum remove java-1.7.0-openjdk.x86_64 sudo yum remove java-1.7.0-openjdk-headless.x86_64 sudo yum remove java-1.8.0-openjdk.x86_64 sudo yum r…

java.util.NoSuchElementException: No value present-报错(已解决)

阿丹&#xff1a; 今天在spring-boot整合MongoDB的过程中出现了下面的错误&#xff0c;是因为追求新技术、更优雅产生的。 记录一下。 错误截图如下&#xff1a; 错误位置代码如下&#xff1a; 主要问题&#xff08;问题原因&#xff09;&#xff1a; 因为之前升级了我的jdk的…

Java基础——注解

1 概述 注解用于对Java中类、方法、成员变量做标记&#xff0c;然后进行特殊处理&#xff0c;至于到底做何种处理由业务需求来决定。 例如&#xff0c;JUnit框架中&#xff0c;标记了注解Test的方法就可以被当做测试方法进程执行 2 自定义注解 public interface 注解名称 {p…