搭建Home Assistant智能家居系统 - 随时随地控制你的家庭设备「内网穿透」

news2024/11/15 10:23:12

文章目录

  • 前言
  • 1. 安装Home Assistant
  • 2. 配置Home Assistant
  • 3. 安装cpolar内网穿透
    • 3.1 windows系统
    • 3.2 Linux系统
    • 3.3 macOS系统
  • 4. 映射Home Assistant端口
  • 5. 公网访问Home Assistant
  • 6. 固定公网地址
    • 6.1 保留一个固定二级子域名
    • 6.2 配置固定二级子域名

转载自远程穿透的文章:【智能家居】Home Assistant入门安装并内网穿透实现远程安全控制

前言

Home Assistant(以下简称HA)是个开源的智能家居平台,也叫家庭助手,就像一个软件,比如我们的QQ软件,微信软件。

Home Assistant把家中的智能家居设备整合到HA中,它能够接入的设备非常的多比如大名鼎鼎的小米、博联、易微联、飞利浦、特斯拉…,也可以接入软件,让后让各个品牌之间的设备可以联网。

一个设备,在没接入HA之前,它是个单一设备,只能在自己的生态里面联动,一旦接入到HA上,它就活了,它可以在所有接入的平台里面自己联动,实现各种各样的自动化。

下面介绍Home Assistant 面板+cpolar内网穿透实现在外随时随地远程访问。

1. 安装Home Assistant

这里使用vmwhere 虚拟机进行安装,通过Home Assistant官网的下载链接下载,下载后解压。

vmdk文件:https://www.home-assistant.io/installation/linux#install-home-assistant-container

image-20230329140034810

然后创建一个虚拟机

image-20230329140523751

选择自定义虚拟机

image-20230329140559237

直接下一步

image-20230329140626938

选择稍后安装操作系统

image-20230329140651521

然后选择Linux,版本选择4.x内核64位

image-20230329140916527

设置一下虚拟机名称,然后下面安装的位置可以自己选择,也可以默认

image-20230329141109224

处理器可以选择1个,内核选择两个,这里配置的数量越多,消耗电脑性能越大,可根据本机配置设置

image-20230329141558147

按照官网的要求,需2G以上,这里选择3G

image-20230329141741615

选择NET网络模式

image-20230329141838721

直接下一步

image-20230329141927176

磁盘类型可以默认,也可以选择SATA

image-20230329142125999

这里需要选择现有磁盘

image-20230329142241934

这里选择我们上面官网下载的.vmdk文件

image-20230329142336733

然后选择保持现有格式

image-20230329142435852

最后,点击完成即可

image-20230329142505378

安装成功后启动虚拟机,启动完成后我们可以看到局域网ip地址和端口信息,8123就是管理面板的端口

image-20230329142908172

2. 配置Home Assistant

启动虚拟机后,我们在浏览器上,输入Home Assistant的局域网ip地址加上8123的端口号,就可以看到管理面板

image-20230329143213764

首次访问登陆,需要创建账户,填写相关用户名密码,创建账户

image-20230329143436938

地区选择,可以手动定位,也可以选择自动检测

image-20230329143740404

接下来默认点击下一步即可

image-20230329143904127

然后点击完成,这里提示添加智能设备,可以先点击完成,后面自己设置

image-20230329144017846

然后就进入了控制面板界面

image-20230329144126684

3. 安装cpolar内网穿透

在局域网下的浏览器访问成功后,我们接下来用cpolar内网穿透将其映射到公网上,实现在公网环境下也可以远程访问家里的HA,不需要公网IP,也无需设置路由器。

cpolar官网:https://www.cpolar.com/

访问cpolar官网,注册一个账号,然后下载并安装客户端,具体安装教程可以参考官网文档教程。

3.1 windows系统

在cpolar官网下载安装包后,双击安装包一路默认安装即可。

3.2 Linux系统

cpolar支持一键自动安装脚本,详细请参考文章教程

  • Linux安装cpolar内网穿透

3.3 macOS系统

可通过homebrew安装,可参考文章教程

  • macOS安装cpolar内网穿透

20230130105715

4. 映射Home Assistant端口

cpolar安装成功后,在浏览器上访问本地9200端口,访问cpolar web UI管理界面【http://localhost:9200】,使用cpolar账号登录。

20230130105810

点击左侧仪表盘的隧道管理——创建隧道,创建一个http隧道,指向8123端口 ,即Home Assistant的端口

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:home assistant 局域网ip+端口
  • 域名类型:免费选择随机域名
  • 地区:选择China vip

点击创建

image-20230329151644131

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址

image-20230329151724274

5. 公网访问Home Assistant

打开浏览器,使用刚刚获取的公网地址进行连接访问,此时会出现一个400的错误,如果没有的话,可以跳过此步骤

image-20230330113646549

我们查看日志,看一下提示具体错误,点击左下角配置,点击系统

image-20230330115658528

可以看到日志,点击日志

image-20230330130245362

打开日志后,我们可以看到这么一个问题,大致意思是:从192.168.191.1收到来自反向代理的请求,但HTTP集成未针对反向代理进行设置,所以我们需要修改一下配置文件

image-20230330130645997

解决方法:打开面板,找到左下角配置,点击加载项

image-20230330113824049

去商店下载一个文件编辑器,我们需要修改一个配置文件

image-20230330113845841

找到File editor 文件编辑器

image-20230330113950556

点击安装这个File editor

image-20230330114133188

安装成功后点击启动

image-20230330114417659

然后为了方便下次使用,可以勾选一个在侧边栏显示

image-20230330114525062

开启后,我们从侧边栏即可进入,然后点击左上角文件目录

image-20230330114704791

找到并且点击configuration.yaml的文件,点击一下即可

image-20230330114807991

在文件上添加如下配置,下面ip地址就是我们上面查看日志提示的那个ip地址:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.191.1

image-20230330131216892

然后我们打开虚拟机关机,重启虚拟机,接着再次输入公网地址访问,即可成功

image-20230330131548575

6. 固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。

6.1 保留一个固定二级子域名

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20230330132159756

保留成功后复制保留的二级子域名地址

image-20230330132218331

6.2 配置固定二级子域名

访问http://127.0.0.1:9200/,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的Home Assistant隧道,点击右侧的编辑

image-20230330131957337

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新

image-20230330132252714

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留过的二级子域名名称,将其复制下来

image-20230330132345392

然后使用固定https地址打开浏览器访问,同样访问成功,且域名不会发生变化.

image-20230330132444605

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

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

相关文章

用于保护虚拟机数据安全的VMware备份方案!

​什么是有效的VMware备份方案? ​由于操作风险、自然灾害、恶意软件攻击、停电等意外状况的影响,备份VMware虚拟机是很重要的,它可以有效防止出现数据丢失和业务中断的情况。 一般来说,有效的VMware备份方案通常应该具…

pikache靶场通关——SSRF攻击

文章目录 前言环境第一关、SSRF(curl)Step.1、http协议链接本地文件Step.2、file协议读取C盘下的配置文件Step.3、dict协议扫描内网其他主机的端口开放情况Step.4、使用burp扫描内网其他主机的端口开放情况Step.5、后端源码分析 第二关、SSRF(file_get_c…

09-C++学习笔记-文件操作

📚 输入输出流的概念 在C中,输入输出流是用于在程序和外部设备(如键盘、显示器、文件等)之间进行数据传输的机制。输入流用于从外部设备读取数据到程序中,输出流用于将程序中的数据输出到外部设备。 C中的输入输出流…

实现自定义exporter

1、实现自定义exporter 1.1 四种常用Metrics 1.1.1 Counter 连续增加不会减少的计数器,可以用于记录只增不减的类型,例如:网站访问人数,系统运行时间等。 对于 Counter 类型的指标,只包含一个increment()的方法&…

Eclipse中的实用工具之JUnit

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于JUnit的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 是什么 为什么要用 怎么用 是什么 JUnit…

奇舞周刊第497期:解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容

记得点击文章末尾的“ 阅读原文 ”查看哟~ 下面先一起看下本期周刊 摘要 吧~ 奇舞推荐 ■ ■ ■ 解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容 最近研究了 Web 的 FileSystemAccess Api,它弥补了 Web 长期以来缺少的能力:操作用户…

《PyTorch深度学习实践》第九讲 多分类问题

b站刘二大人《PyTorch深度学习实践》课程第九讲多分类问题笔记与代码:https://www.bilibili.com/video/BV1Y7411d7Ys?p9&vd_sourceb17f113d28933824d753a0915d5e3a90 二分类问题中计算出 P ( y 1 ) P(y1) P(y1)即可直接得到 P ( y 0 ) P(y0) P(y0)&#xff0…

LeetCode 打卡day46-- 单词拆分和多重背包问题

一个人的朝圣 — LeetCode打卡第46天 知识总结 Leetcode 139. 单词拆分题目说明代码说明 知识总结 今天写了一道题目, 但是还挺难的, 而且是面试高频题目 还过了一遍多重背包问题. 多重背包与01背包的区别在于多重背包限制了物品的个数, 某些物品的个数可能不为1, 可以使用两…

Opencascade源码学习之模型算法_建模算法介绍

Opencascade源码学习之模型算法_建模算法介绍 介绍几何工具相交两曲线相交曲线曲面相交两曲面相交 插值Geom2dAPI_InterpolateGeomAPI_Interpolate 约束的直线和圆约束类型可用的线和圆的类型外部/内部直线的方向两个圆相切给定半径的圆与两个圆相切算法的类型 约束的曲线和曲面…

初识React/JSX

JSX ​​​​​​​推荐使用小括号包裹jsx

【Linux】硬链接 和 软链接

为了方便用户访问文件,Linux提供了一种称为连接(link)的机制,可以将一个文件或目录与另一个文件或目录建立关联,从而实现多个路径指向同一个文件或目录的效果。 一、概述二、硬链接和软链接详解2.1 硬链接2.11 硬链接的…

ASIC 数字设计:概述和开发流程

概述 集成电路是由硅晶圆(wafer)切割出来的芯片(die)组成的。每个晶圆可以切割出数百个芯片。 ASIC是指针对特定应用而设计的集成电路(Application Specific Integrated Circuit),与通用的存储器…

ctfhub靶场练习——SSRF攻击

文章目录 前言关卡、内网访问关卡、伪协议读取文件关卡、端口扫描关卡、POST1、使用http协议查看本地的flag.php文件2、使用burp抓包,并发送到Repeater模块进行操作3、构造一个简单的POST请求:4、对构造的post请求进行url编码第一次编码:对第…

【裸机开发】GPT 定时器(一) —— GPT的功能、寄存器解析

后续需要使用 GPT 计数器实现中断以及延时,这里我们需要先了解一下GPT的功能以及相关寄存器。 目录 一、GPT 定时器的功能 1、计数器 2、输入捕获 3、输出比较(GPT的两种工作模式) 二、寄存器解析 1、GPTx_CR 2、GPTx_PR 3、GPTx_SR …

Jetson Nano烧写系统镜像

Jetson Nano是一款形状和接口类似于树莓派的嵌入式主板,搭载了四核Cortex-A57处理器,GPU则是拥有128个NVIDIA CUDA核心的NVIDIA Maxwell架构显卡,内存为4GB的LPDDR4,60Hz视频解码。 1.烧录前准备 电源线(必备&#xf…

游戏陪玩语音聊天系统3.0商业升级独立版本源码

首发价值29800元的最新商业版游戏陪玩语音聊天系统3.0商业升级独立版本源码 1、增加人气店员轮播 2、优化ui界面丨优化游戏图标展示丨优化分类展示 3、增加动态礼物打赏功能 4、增加礼物墙功能 增加店员满足业绩,才能升级功能 5、增加店员等级不同,可接…

操作系统第4章习题

B 一个目录文件包含多个目录项 B. 在打开文件的时候还不用 只有在读文件的时候 才需要把数据读到内存中 C 不完整 D 在外存中 FCB不是文件控制块吗 为什么是文件目录项 文件属性:有的文件是只读的 访问控制的灵活性较高

【前端2】jquary,bootstrap,vue

文章目录 1.jquary:选择器1.1 jquery框架引入:$("mydiv") 当成id选择器1.2 jquery版本/对象:$(js对象) -> jquery对象1.3 jquery的页面加载事件:$ 想象成 window.onload 1.4 jquery的基本选择器:$()里内容…

7 拓展中断_事件控制器(EXTI)(STM32HAL库 )

目录 EXTI-扩展中断和事件控制器 事件的概念 EXTI-扩展中断和事件控制器 EXTI外设框图 F1/F4/F7(看懂与或门) H7 STM32CubeMX中的EXTI配置 EXTI-扩展中断和事件控制器 事件的概念 STM32上许许多多的外设,是通过内部信号来协同工作的。…

Android Compose Button defaultButtonColors

Android Compose Button defaultButtonColors 本文最新更新地址 https://gitee.com/chenjim/chenjimblog 发现问题 最近看 Android Compose 相关资料发现如下代码 colors defaultButtonColors( backgroundColor if (count > 5) Color.Green else Color.White )原文地…