当前位置: 首页 > 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实现的原理是队列,先进先出特性就保证数据的…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

【位运算】消失的两个数字(hard)

消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...