使用群晖Docker搭建HomeAssistant并实现异地公网访问家中智能设备

news2024/12/24 20:46:43

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。

使用群晖Docker搭建HomeAssistant并实现异地公网访问

文章目录

  • 使用群晖Docker搭建HomeAssistant并实现异地公网访问
    • 一、下载HomeAssistant镜像
    • 二、内网穿透HomeAssistant,实现异地控制智能家居
    • 三、使用固定域名访问HomeAssistant

HomeAssistant是一个可以控制 苹果小米、MQTT等设备的智能家居平台。本文首先介绍如何使用 群晖NASDocker套件来安装 HomeAssistant平台,安装成功后,如何结合cpolar内网穿透工具实现 公网访问。

image-20231101144124179

基本条件:

  • 有正版群晖或黑群辉,可以装docker。

一、下载HomeAssistant镜像

打开群晖 容器 管理 套件(较旧系统版本对应的套件为群辉Docker

image-20231101145017685

注册表 中搜 home-assistant ,右击下图中的 homeassistant/home-assistant 项目下载镜像。

image-20231031104919684

FileStation进入 /docker文件夹 新建Homeassistant文件夹

image-20231031110256470

等待下载完毕:

image-20231031104811171

双击此映像并打开

image-20231031104830761

输入随便什么名称,勾选自启动功能,下一步

image-20231031114842291

存储空间设置: 选择**/dokcer/homeassistant** 这个刚才新建的路径

image-20231031114920101

路径 中填入 /home,给读写权限

image-20231031115038593

环境中添加 variable = TZ 和 value = Asia/Shanghai

image-20231031115016583

网络 选择 host

image-20231031112250869

检查上述修改事项,完成

image-20231031115134771

可见 容器启动成功

image-20231031115207104

此时,自行查找群晖局域网地址,后边加上:8123 就是homeassistant局域网地址

http://X.X.X.X:8123

此处我建议使用群晖助手 查找群晖ip:

image-20231031115714326

本地浏览器 输入 http://192.168.50.31:8123/,进入homeassistant初始化流程:

image-20231031115549734

注册账户——选择家庭地区

image-20231031132612751

成功进入,现在我们就能尽情安装插件,绑定智能家居设备啦!

image-20231031132628581

二、内网穿透HomeAssistant,实现异地控制智能家居

想要在户外访问本地Docker容器部署的项目,就需要内网穿透软件,这里我们使用的是免费不限流量的cpolar,如何在群晖NAS安装cpolar请参考:

如何在群晖系统中安装cpolar(群晖7.X版) - cpolar 极点云

安装完毕后,打开cpolar套件,点击右下角 :9200的局域网地址:

image-20231031144207592

image-20231101112900691

​ 登录进去后,点击左侧仪表盘的隧道管理——创建隧道,我们来创建一条用于映射HomeAssistant的局域网地址到公网的隧道。

  • 隧道名称:可自定义
  • 协议:http
  • 本地地址:X.X.X.X:8123
  • 域名类型:随机域名(cpolar免费版)
  • 地区:选择China(cpolar免费版选择China,付费版可选择china vip)

点击创建

填写如下:

image-20231101112926619

下一步我们 点击 在线隧道列表,复制这个公网链接到浏览器:

image-20231101112956177

出现400报错,bad request 意思是 “错误的请求”;

此时不要慌,这是因为homeassistant中未针对反向代理进行设置,所以我们需要在配置文件中简单修改一下。

image-20231101114519651

点 配置

image-20231101115218411

系统

image-20231101115236829

日志

image-20231101115246203

此处可以查看外部访问的错误日志

image-20231101115306339

在NAS中编辑文件,需要安装 文本编辑器 套件

image-20231101114622582

在/docker/中找到 configuration.yaml 配置文件,右键使用编辑器打开

image-20231101114704123

在最后 粘贴如下一段代码:

image-20231101114835219

下面ip地址就是我们上面查看日志提示的那个ip地址,此处需要自行修改

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.50.31

image-20231101115840620

保存修改

image-20231101115853349

重启容器

image-20231101115939793

刷新 公网访问的网页,输入用户名密码进入:

image-20231101120027303

image-20231101142719941

要注意的是,以上步骤使用的是随机临时端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的端口地址,该地址不会变化,设置后将无需每天重复修改地址。

三、使用固定域名访问HomeAssistant

登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为HomeAssistant保留一个固定二级子域名。

image-20231101143001822

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

image-20231101143226198

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

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区选择 官网后台保留的地区(保持一致)

点击更新

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

image-20231101143258017

复制粘贴,即可使用固定的公网ip登录。

image-20231101143327271

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

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

相关文章

SQL Server 数据库,多表查询

4.2使用T-SQL实现多表查询 前面讲述过的所有查询都是基于单个数据库表的查询,如果一个查询需要对多个表进行操作, 就称为联接查询,联接查询的结果集或结果称为表之间的联接。 联接查询实际上是通过各个表之间共同列的关联性来查询数据的&…

如何看待 Android 面试却是 Java 面试官?

如何看待 Android 面试却是 Java 面试官? 在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「Android资料从专业入门到高级教程工具包」,点个关注,全部无偿共享给大家&…

热点新闻 | 许战海:零食行业的革新之道

2023年11月29日,华糖万商大会在南京国际会展中心隆重举行。著名战略定位咨询专家许战海受邀出席,在“量贩零食产业年度盛典”上发表了主题为《如何通过竞争战略布局年度规划》的精彩演讲,吸引了众多业界关注。 演讲中,许战海老师指…

【Avue】select的远程搜索 [模糊搜索]

一、需求 【模糊搜索】 二、实现avue的远程搜索 1、search为搜索 2、remote远程搜索 3、dictValue{{key}}为输入的值

cleer耳机怎么样?cleer和索尼哪个好?热门开放式耳机推荐!

不讲废话,如果你在南卡、Cleer和索尼之间犹豫不决,不知道该选哪个开放式耳机,直接进,跟你保证看完这篇绝对能够帮助你做出最佳决策。 玩开放式耳机也接近5年了,用过的耳机不下十几款,这次花了几千块入手了…

2.4 API 开发和集成

文章目录 API 开发和集成API 的概念和作用API 开发基础API 集成API 鉴权和安全API 文档和测试微服务和 API 网关云服务和 API 集成未来趋势和发展实验实验一: 通过api post方式传入 json实验二:通过api将所需数据传入 API 开发和集成 API 的概念和作用介…

VS2022创建一个C++项目使用教程

启动VS,打开之后会出现如下界面,点击“创建新项目”,创建一个新项目: 点击“空项目”,再点击“下一步” 给项目命名,点击“创建”: 点击“视图”,再点击解决方案资源管理器&#xff…

openEuler 20.03 (LTS-SP2) aarch64 cephadm 部署ceph18.2.0【1】离线部署 准备基础环境

准备3台虚拟机服务器(均可访问公网) 10.2.1.176 (作为操作机) 10.2.1.191 10.2.1.219 安装基础工具 yum install -y vim 配置hosts 编辑/etc/hosts,添加 10.2.1.176 ceph-176 10.2.1.191 ceph-191 10.2.1.219 ceph-219 配置免密登录…

【Docker】资源配额及私有镜像仓库

资源配额及私有镜像仓库 一、Docker资源配额1.1、控制cpu1.1.1、cpu份额控制1.1.2、core核心控制1.1.3、配额控制参数的混合使用 1.2、控制内存1.3、控制IO1.4、资源释放 二、Docker私有镜像仓库Harbor2.1、Harbor简介2.2、为Harbor自签发证书【1】生成ca证书【2】生成域名的证…

伦敦银破位指标是哪些?

在伦敦银市场,破位通常有5种情形:技术形态破位、均线攴撑破位、技术指标破位、市场心理破位、高位盘整区破位。技术形态破位主要是指技术形态的重要颈线位,如多重顶、双顶、头肩顶等颈线位,以及支撑线(主要是橫盘整理形…

盘点最近两个世纪那些搞怪又精彩的专利

人类的创新是无止境的,下面收集的就是最近两个世纪全球那些奇怪搞笑、精彩的6项专利。 小胡子卫士 (1876) 这款“胡须防护罩”由 VA.Gates 于 1876 年获得专利,是在节日盛宴期间保护胡须的巧妙解决方案。“弯曲和凹形的护罩,可以由硫化橡胶、…

prime靶机打靶记录

靶机下载地址 https://download.vulnhub.com/prime/Prime_Series_Level-1.rar nmap搜索目标 使用nmap -sn 192.168.41.0/24找到目标靶机192.168.41.136 扫描端口,因为是靶机,所以速率直接调了10000 扫出来两个端口22和80,进行详细的扫描 没…

【QML】QML与cpp交互(一)—— QML直接调用cpp函数

目录 1、cpp 创建一个类 2、将类对象暴露给QML 3、QML通过对象直接调用cpp函数 1、cpp 创建一个类 类模板如下: #include <QtCore/QObject>class vacUdpClient: public QObject {Q_OBJECT public: vacUdpClient(QObject* parent nullptr): QObject(parent) {}// Q…

Python使用爬虫ip爬取动态网页

写爬虫很难&#xff1f;在我看来&#xff0c;写爬虫需要具备一定的编程基础和网络知识&#xff0c;但并不需要非常高深的技术。在学习爬虫的过程中&#xff0c;我发现最重要的是掌握好两个点&#xff1a;一是如何分析网页结构&#xff0c;二是如何处理数据。对于第一个点&#…

Linux下Redis安装及配置

首先下载redis安装包&#xff1a;地址 这里我使用的是7.0版本的&#xff01; 将文件上传至linux上&#xff0c;此处不再多叙述&#xff0c;不会操作的&#xff0c;建议使用ftp&#xff01; 第一步&#xff1a;解压压缩包 tar -zxvf redis-7.0.14.tar.gz第二步&#xff1a;移…

【Seata源码学习 】篇六 全局事务提交与回滚

【Seata源码学习 】篇六 全局事务提交与回滚 全局事务提交 TM在RPC远程调用RM后,如果没有出现异常&#xff0c;将向TC发送提交全局事务请求io.seata.tm.api.TransactionalTemplate#execute public Object execute(TransactionalExecutor business) throws Throwable {// 1. …

qt-C++笔记之addItem(), addWidget(), addLayout()

qt-C笔记之addItem(), addWidget(), addLayout() code review! 文章目录 qt-C笔记之addItem(), addWidget(), addLayout()0.《官方文档》相关示例截图1.ChatGPT解释2.《Qt 5.12实战》相关示例截图《Qt 5.12实战》&#xff1a;5.6 组合框 3.addWidget()4.addWidget()和addChil…

LD_PRELOAD劫持、ngixn临时文件、无需临时文件rce

LD_PRELOAD劫持 <1> LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载&#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file&#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…

如何更改Jupyter Notebook中的环境?

1.首先&#xff0c;打开终端 2.接着&#xff0c;分别输入以下命令 conda env list 把EXPose替换为自己的环境变量 conda activate EXPose 3.接下来安装‘ ipykernel ’软件包 conda install ipykernel 4. 将该环境添加到Jupyter Notebook中&#xff1b;在Jupyter Notebook…

TiDB专题---2、TiDB整体架构和应用场景

上个章节我们讲解了TiDB的发展和特性&#xff0c;这节我们讲下TiDB具体的架构和应用场景。首先我们回顾下TiDB的优势。 TiDB的优势 与传统的单机数据库相比&#xff0c;TiDB 具有以下优势&#xff1a; 纯分布式架构&#xff0c;拥有良好的扩展性&#xff0c;支持弹性的扩缩容…