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

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

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

使用群晖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: truetrusted_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

相关文章:

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

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 使用群晖Docker搭建HomeAssistant并实现异地公网访问 文章目录 使…...

重塑生成式AI时代数据战略,亚马逊云科技re:Invent大会Swami主题演讲

re:lnvent 2023 Swami Sivasubramanian主题演讲,数据、AI和人类共进共生,重塑生成式AI时代的数据战略。 赋能人才加持生成式AI必备能 生成式AI创新中心:解决生成式AI工程化挑战。 Amazon Bedrock平台PartyRock:生成式AI应用程序实…...

【恋上数据结构】哈夫曼树学习笔记

哈夫曼树 哈夫曼编码(Huffman Coding) 哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础 假设要把字符串 [ABBBCCCCCCCCDDDDDDEE] 转成二进制编码进行传输。 可以转成 ASCII 编码 (6569,10000011000101) &…...

前端下拉框select标签的插件——select2.js

本文采用的是select2 版本:Select2 4.0.6-rc.1。 可以兼容IE8及以上。亲测过。 官网:Getting Started | Select2 - The jQuery replacement for select boxes 一、认识select2.js 1、使用插件,首先要引入别人的插件了,你可以选…...

【MySQL的基本命令{DML 和 DDL}】

MySQL的基本命令 {DML 和 DDL} MySQL的基本命令展示所有数据库展示某个数据库中所有的表切换到某个数据库查看当前在哪个数据库查询一张表的全部数据新建一个数据库新建一张表插入一条数据删除一个表删除一个库描述表的信息展示表的创建sql代码展示库的创建sql代码导出数据 &am…...

unity3d模型中缺失animation

在 模型的Rig-Animationtype 设置成Legacy https://tieba.baidu.com/p/2293580178...

搭建自己的wiki知识库【转】

有前端基础,会Markdown、会HTML和CSS,选择 Hexo 有Vue基础可以选择 vuePress 或者 vitePress 会Go可以选择 Hugo 会Rust可以选择 Zola 会Ruby可以选择 Jekyll 会PHP可以考虑使用 WordPress 其他开源项目:docsify、GitBook 详见:如…...

【笔记】常用的Linux命令之解压缩:tar、zip、rar 命令

1、tar 常用压缩和解压缩 # 压缩文件 file1 和目录 dir2 到 test.tar.gz tar -zcvf test.tar.gz file1 dir2 # 解压 test.tar.gz(将 c 换成 x 即可) tar -zxvf test.tar.gz 额外知识:查看压缩文件内容 # 列出压缩文件的内容 tar -ztvf test…...

谈谈MYSQL索引

基本介绍 索引是帮助MySQL高效获取数据的数据结构,主要是用来提高数据检索的效率,降低数据库的IO成本,同时通过索引列对数据进行排序,降低数据排序的成本,也能降低了CPU的消耗。 通俗来说, 索引就相当于一本书的目录,…...

线程中出现异常的处理

目录 前言 正文 1.线程出现异常的默认行为 2.使用 setUncaughtExceptionHandler() 方法进行异常处理 3.使用 setDefaultUncaughtExceptionHandler() 方法进行异常处理 4.线程组内处理异常 5.线程异常处理的优先性 总结 前言 在紧密交织的多线程环境中,异…...

点击元素以外的事件监听

在项目中,我们经常会遇到需要监听目标元素以外的区域被点击或鼠标移入移出等需求。 例如下面我们有一个表格里面嵌套表单的组件 我希望点击n行的时候,n行的元素变成表单元素进行输入或者选择, 当我点击其他其他区域n行又会恢复成数据展示…...

猫头虎分享ubuntu20.04下VSCode无法输入中文解决方法

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

tcpdump使用心得

参考原文 https://danielmiessler.com/p/tcpdump/ 几个用例 tcpdump -i eth0 显示eth0网卡当前所有的抓包情况eth0是网卡名,可以通过ifconfig获得,也可以通过 tcpdump -D 显示当前可以监听的网卡 -i 参数表示接口,后跟要监听的网卡 tcpdu…...

QJsonObject 是 Qt 框架中用于表示 JSON 对象的类

QJsonObject 是 Qt 框架中用于表示 JSON 对象的类。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于在不同平台和语言之间传输和存储数据。QJsonObject 类提供了一种方便的方式来创建、解析和操作 JSON 对象。 以下是…...

kafka3.6.0部署

部署zk https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1.tar.gz tar -xf apache-zookeeper-3.9.1.tar.gz -C /apps cd /apps/ && ln -s apache-zookeeper-3.9.1 zookeeper 修改配置bash grep -vE ^$|^# conf/zo…...

MybatisPlus批量插入(伪批量),增强为真实批量插入

项目基于优秀开源项目:若依 项目背景:项目中牵扯到数据批量导入,为提高性能,先考虑将MybatisPlus伪批量插入增强为真实批量插入 MybatisPlus源码: MybatisPlus支持批量插入,但是跟踪源码发现底层是将批量…...

【零基础入门Python】Python If Else流程控制

✍面向读者:所有人 ✍所属专栏:零基础入门Pythonhttps://blog.csdn.net/arthas777/category_12455877.html Python if语句 Python if语句的流程图 Python if语句示例 Python If-Else Statement Python if else语句的流程图 使用Python if-else语句 …...

新手零基础学习彩铅画,彩铅快速入门教程合集

一、教程描述 画画是很美好的一件事情,你可以把你想到的,或者看到的都画下来,照相机可以拍下任何你看到的,但是你想到的任何事物,只能通过绘画的方式来表达。本套教程是非常不错的,彩铅的小视频教程&#…...

线程池的拒绝策略

文章目录 线程池的拒绝策略AbortPolicy拒绝策略:CallerRunsPolicy拒绝策略:DiscardOldestPolicy拒绝策略:DiscardPolicy拒绝策略: 线程池的拒绝策略 若在线程池当中的核心线程数已被用完且阻塞队列已排满,则此时线程池…...

Redis7--基础篇5(管道、发布订阅)

管道是什么 管道(pipeline)可以一次性发送多条命令给服务端,服务端依次处理完完毕后,通过一条响应一次性将结果返回,通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的原理是队列,先进先出特性就保证数据的…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: ​onCreate()​​ ​调用时机​:Activity 首次创建时调用。​…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

自然语言处理——文本分类

文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的​​亮度(或…...

Ray框架:分布式AI训练与调参实践

Ray框架:分布式AI训练与调参实践 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 Ray框架:分布式AI训练与调参实践摘要引言框架架构解析1. 核心组件设计2. 关键技术实现2.1 动态资源调度2.2 …...