本地小主机安装HomeAssistant开源智能家居平台打造个人AI管家
文章目录
- 前言
- 1. 添加镜像源
- 2. 部署HomeAssistant
- 3. HA系统初始化配置
- 4. HA系统添加智能设备
- 4.1 添加已发现的设备
- 4.2 添加HACS插件安装设备
- 5. 安装cpolar内网穿透
- 5.1 配置HA公网地址
- 6. 配置固定公网地址
前言
大家好!今天我要向大家展示如何将一台迷你的香橙派Zero3转换成你家中的智慧家庭控制枢纽。只需安装CasaOS轻NAS系统和HomeAssistant,再利用cpolar内网穿透工具,你就能轻松地远程操控所有智能家居设备,无需进行繁琐的公网IP配置或调整路由器设置。
首先,我们来快速了解一下HomeAssistant。这是一个开源的智能家居管理平台,它兼容众多品牌和通信协议,包括苹果、小米、MQTT等。HomeAssistant允许你将家中的各式智能设备集中管理,实现跨品牌设备间的协同工作和自动化控制。例如,你可以设置当智能门锁被打开时,自动点亮室内灯光,或者在你离开家时自动关闭所有电器。
而香橙派Zero3是一款体积小、能耗低的单板电脑,非常适合作为全天候运行的小型服务器。它不仅价格实惠,而且性能可靠,能够像路由器一样持续在线。这使得香橙派Zero3成为部署HomeAssistant的理想选择。
1. 添加镜像源
我这里演示的环境是已经刷好CasaOS的香橙派Zero3小主机。
不知道如何操作的可以看下这篇教程:[香橙派Orange Pi zero3如何刷CasaOS轻NAS系统](香橙派Orange Pi zero3刷CasaOS轻NAS系统与远程浏览本地文档或影视资源_哔哩哔哩_bilibili)
首先,我们需要在浏览器中输入香橙派ip地址(在路由器中查看名为orangepizero3的就是),进入CasaOS管理界面。
然后进入终端,使用root账号密码登录。
进入终端后执行下方命令:
nano /etc/docker/daemon.json
在编辑器中输入新的镜像源地址:
{
"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"
]
}
然后按Crtl+X键保存这个镜像源,退出编辑器回到终端后执行下方命令重新启动docker服务:
systemctl restart docker
2. 部署HomeAssistant
上边的操作完成之后,我们回到casaos主界面点击系统自带的App Store应用中心。
刚安装casaos系统会发现里边的应用太少了,想要添加更多应用,只要点击目前APP下拉框中的更多应用。
然后点击问号,会自动在浏览器中打开一个添加更多应用的页面:
复制这个页面中的这些地址,然后回到CasaOS应用中心界面。
将复制的地址粘贴到刚才带有问号的输入框中,然后点击添加,系统就会自动更新更多应用到应用中心界面,可以从几十个增加到几百个。
在添加应用时,就可以在应用商店中搜索HomeAssistant,出现后点击安装即可自动进行部署:
时间有点长,耐心等待即可,安装好后点击图标打开:
可以看到,浏览器中打开了homeassistant初始化流程界面,地址是香橙派主机IP+8123端口:
3. HA系统初始化配置
首先点击创建我的智能家居按钮,跳转到创建用户界面,填写好信息后点击创建用户:
地区选择,可以手动定位,也可以选择自动检测:
点击下一步:
这里提示发现了兼容的设备,可以先点击完成,后面自己设置:
现在就完成了初始化配置,进入了HA系统的管理界面:
4. HA系统添加智能设备
4.1 添加已发现的设备
首先点击左下角的设置:
选择设备与服务:
在这里可以对已发现的设备进行配置:
拿我现在已发现的这台群晖NAS来进行演示,首先点击配置
然后输入你的NAS登录账号密码,与NAS使用的端口号,点击提交:
稍等HA系统既可以自动创建配置,点击完成即可。
现在我们在Home Assistant的首页,即可看到新增了群晖NAS设备的相关信息。
4.2 添加HACS插件安装设备
如果想配置没有发现的智能设备,我们可以通过安装HACS插件的方式来添加设备。
首先,我们点击casaos终端,依然通过root账号密码登录:
执行下方命令,查看安装的所有容器信息:
docker ps -a
复制HomeAssistant容器的ID
然后执行下方命令
docker exec -it 容器ID bash
然后执行下方命令安装hacs插件:
wget -O - https://get.hacs.xyz | bash -
安装完成后,重新打开终端,执行下方命令重启docker服务即可:
systemctl restart docker
然后重新打开Home Assistant管理界面,点击设置:
选择设备与服务:
点击右下角的添加集成,输入HACS:
点击HACS后,弹出的提示框中全选后点击提交:
然后复制弹出的提示框中的这串字符,点击上方选项1中的链接:
然后在打开的github页面中登录你的账号,没有的话注册一个,然后登录将这串字符粘贴到里边:点击继续
然后点击Authorize hacs(授权给hacs)即可:
最后点击完成即可:
现在我们在刚才的设备与服务界面,就能看到添加的HACS插件了:
想要通过HACS插件配置未发现的智能设备,我这里拿小米的小爱音箱来进行演示。
我们首先回到Home Assistant管理界面的首页,点击侧边栏中的HACS,下载存储库。
可以看到下方第一个Xiaomi Miot Auto就是,点击图标跳转后点击右下角的下载按钮:
在弹出的对话框中继续点击下载:
完成后在设置中会看到要求重启HA的通知:
点击提示图标后,点击提交:
等待一会HA重启后,会自动刷新管理界面,点击HACS,可以看到成功安装了Xiaomi Miot Auto:
然后点击左下角设置-设备与服务-右下角添加集成:
搜索刚才安装的Xiaomi Miot Auto并点进来:
根据自己情况选择账号集成或局域网集成,点击下一步:
然后输入小米账户密码后,点击提交:
然后在筛选设备中选择包含,在设备列表中找到我要添加的小爱音箱,点击提交即可:
点击完成
现在我们在HA系统首页就能看到添加的小爱音箱,并可以进行相关管理了。
5. 安装cpolar内网穿透
此时,我们已经成功在本地的CasaOS香橙派Zero3主机中部署了Home Assistant智能家居系统,并安装了HACS插件实现对未发现设备的集成配置,但目前我们仅能在本地局域网中使用HA系统,有一定局限性。如果想在出差时也能远程访问家中的HA系统来管理家中智能设备,比如要到家前想提前开好空调时该怎么办呢?
很简单,只要在香橙派中安装一个cpolar内网穿透工具就能轻松实现远程访问内网主机中部署的服务了,接下来介绍一下如何安装cpolar内网穿透。
首先,点击左上角进入终端:
输入root账号密码登录:(不知道如何获取密码可以看上文中提到的刷机教程)
后在终端中执行下方一行命令,即可安装cpolar内网穿透工具:
curl -fsSL https://get.cpolar.sh | sudo sh
安装完毕后可以执行下方命令查看服务状态:
systemctl status cpolar
如下图所示即为cpolar内网穿透服务正在正常运行。
5.1 配置HA公网地址
然后我们使用CasaOS香橙派的IP地址加上9200,打开一个新的浏览器来登录cpolar管理界面 :
PS:香橙派的IP地址可以在路由器中查看,名为orangepizero3的就是。
如果没有账号可以点击免费注册访问cpolar官网注册账号:https://www.cpolar.com
输入账号密码登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
隧道名称:可自定义,注意不要与已有的隧道名称重复,本例使用了:home assistant
协议:http
本地地址:香橙派主机IP+8123端口
域名类型:随机域名
地区:选择China Top
点击创建
隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址
打开浏览器,使用刚刚获取的公网地址进行连接访问,此时会出现一个400的错误,如果没有的话,可以跳过此步骤:
如报错我们需要查看日志看一下提示具体错误,点击左下角设置,点击系统:
点击日志:
打开日志后,我们可以看到这么一个问题,大致意思是:从192.168.x.x收到来自反向代理的请求,但HTTP集成未针对反向代理进行设置,所以我们需要修改一下配置文件:
首先回到casaos香橙派界面:
点击文件按钮:
然后进入DATA-AppData-homeassistant这个文件夹:
继续进入config文件夹:
然后点击打开这个名为 的配置文件,添加下方配置并保存:
http:use_x_forwarded_for: truetrusted_proxies:- 192.168.50.215(替换为你的香橙派主机IP)
然后进入casaos终端,执行下方命令重启docker服务:
systemctl restart docker
重启完毕后,此时我们在浏览器中使用刚才通过cpolar创建的公网地址,就可以成功远程访问本地部署的Home Assistant智能家居系统了:
小结
为了方便演示,我们在上边的操作过程中使用cpolar生成的公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,不好记,而且这个地址在24小时内会发生随机变化,更适合于临时测试使用。
如果有长期远程访问本地casaos香橙派中的Home Assistant智能家居系统,或者远程访问其他本地服务的需求,又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择配置固定的公网地址来远程访问。
6. 配置固定公网地址
登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择China VIP,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称,这里我填写的是 myha001
,大家也可以自定义喜欢的名称。
保留成功后复制保留成功的二级子域名的名称: myha001
,返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道 home assistant
,点击右侧的编辑:
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名:myha001
- 地区:选择China VIP
点击更新
(注意,点击一次更新即可,不需要重复提交)
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,由随机地址名称变成了两个固定的二级子域名(固定公网地址):
使用任意一个固定公网地址在浏览器访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,随时随地都可以远程访问本地局域网内的casaos香橙派主机端中的Home Assistant智能家居系统了!
怎么样?是不是觉得这个项目既有趣又实用呢?有了香橙派Zero3和HomeAssistant的组合,你不仅能够高效管理家中的智能设备,还能享受到更加便捷的生活体验。快去试试看吧,相信你会爱上这种智能家居带来的便利与舒适!如果你有任何疑问或心得,欢迎在评论区留言交流哦!
相关文章:

本地小主机安装HomeAssistant开源智能家居平台打造个人AI管家
文章目录 前言1. 添加镜像源2. 部署HomeAssistant3. HA系统初始化配置4. HA系统添加智能设备4.1 添加已发现的设备4.2 添加HACS插件安装设备 5. 安装cpolar内网穿透5.1 配置HA公网地址 6. 配置固定公网地址 前言 大家好!今天我要向大家展示如何将一台迷你的香橙派Z…...

SpringBoot返回文件让前端下载的几种方式
01 背景 在后端开发中,通常会有文件下载的需求,常用的解决方案有两种: 不通过后端应用,直接使用nginx直接转发文件地址下载(适用于一些公开的文件,因为这里不需要授权)通过后端进行下载&#…...

人工智能及深度学习的一些题目
1、一个含有2个隐藏层的多层感知机(MLP),神经元个数都为20,输入和输出节点分别由8和5个节点,这个网络有多少权重值? 答:在MLP中,权重是连接神经元的参数,每个连接都有一…...

15-利用dubbo远程服务调用
本文介绍利用apache dubbo调用远程服务的开发过程,其中利用zookeeper作为注册中心。关于zookeeper的环境搭建,可以参考我的另一篇博文:14-zookeeper环境搭建。 0、环境 jdk:1.8zookeeper:3.8.4dubbo:2.7.…...

【Rust自学】8.5. HashMap Pt.1:HashMap的定义、创建、合并与访问
8.5.0. 本章内容 第八章主要讲的是Rust中常见的集合。Rust中提供了很多集合类型的数据结构,这些集合可以包含很多值。但是第八章所讲的集合与数组和元组有所不同。 第八章中的集合是存储在堆内存上而非栈内存上的,这也意味着这些集合的数据大小无需在编…...

未来网络技术的新征程:5G、物联网与边缘计算(10/10)
一、5G 网络:引领未来通信新潮流 (一)5G 网络的特点 高速率:5G 依托良好技术架构,提供更高的网络速度,峰值要求不低于 20Gb/s,下载速度最高达 10Gbps。相比 4G 网络,5G 的基站速度…...

LLM(十二)| DeepSeek-V3 技术报告深度解读——开源模型的巅峰之作
近年来,大型语言模型(LLMs)的发展突飞猛进,逐步缩小了与通用人工智能(AGI)的差距。DeepSeek-AI 团队最新发布的 DeepSeek-V3,作为一款强大的混合专家模型(Mixture-of-Experts, MoE&a…...

Uniapp在浏览器拉起导航
Uniapp在浏览器拉起导航 最近涉及到要在浏览器中拉起导航,对目标点进行路线规划等功能,踩了一些坑,找到了使用方法。(浏览器拉起) 效果展示 可以拉起三大平台及苹果导航 点击选中某个导航,会携带经纬度跳转…...

公平联邦学习——多目标优化
前言 前段时间接触到了联邦学习(Federated Learning, FL)。涉猎了几年多目标优化的我,惊奇地发现横向联邦学习里面也有用多目标优化来做的。于是有感而发,特此写一篇博客记录记录,如有机会可以和大家多多交流。遇到不…...

奇怪的Python:为何字符串要设置成不可变的?
你好!我是老邓。今天我们来聊聊 Python 中字符串不可变这个话题。 1、问题简介: Python 中,字符串属于不可变对象。这意味着一旦字符串被创建,它的值就无法被修改。任何看似修改字符串的操作,实际上都是创建了一个新…...

Vue-Router之嵌套路由
在路由配置中,配置children import Vue from vue import VueRouter from vue-routerVue.use(VueRouter)const router new VueRouter({mode: history,base: import.meta.env.BASE_URL,routes: [{path: /,redirect: /home},{path: /home,name: home,component: () &…...

MyBatis使用的设计模式
目录 1. 工厂模式(Factory Pattern) 2. 单例模式(Singleton Pattern) 3. 代理模式(Proxy Pattern) 4. 装饰器模式(Decorator Pattern) 5. 观察者模式(Observer Patt…...

arm rk3588 升级glibc2.31到2.33
一、查看glibc版本 rootztl:~# ldd --version ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 2.31 Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNE…...

【Linux系列】sed命令的深入解析:如何使用sed删除文件内容
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

C++ 设计模式:桥接模式(Bridge Pattern)
链接:C 设计模式 链接:C 设计模式 - 装饰模式 桥接模式(Bridge Pattern)是一种结构型设计模式,它通过将抽象部分(业务功能)与实现部分(平台实现)分离,使它们…...

MATLAB中whitespacePattern函数用法
目录 语法 说明 示例 匹配空白字符 替换非标准空白 更正错误的间距 whitespacePattern函数的功能是匹配空白字符。 语法 pat whitespacePattern pat whitespacePattern(N) pat whitespacePattern(minCharacters,maxCharacters) 说明 pat whitespacePattern 创建一…...

Django多字段认证的实现
Django多字段认证 需求: django认证的检查用户是username,如果使用 username和 手机号验证登录。 重写: ModelBackend 类下的 authenticate 方法 # 在对应应用下创建 utils.py""" 修改Django认证类,为了实现 …...

【AndroidAPP】权限被拒绝:[android.permission.READ_EXTERNAL_STORAGE],USB设备访问权限系统报错
一、问题原因 1.安卓安全性变更 Android 12 的安全性变更,Google 引入了更严格的 PendingIntent 安全管理,强制要求开发者明确指定 PendingIntent 的可变性(Mutable)或不可变性(Immutable)。 但是…...

SQL进阶技巧:如何分析连续签到领金币数问题?
目录 0 题目需求 1 数据准备 2 问题分析 2.1 代码实现 2.2 代码功能分析 第一段 SQL...

1、ELK的架构和安装
ELK简介 elk:elasticsearch logstash kibana,统一日志收集系统。 elasticsearch:分布式的全文索引引擎的非关系数据库,json格式,在elk中存储所有的日志信息,架构有主和从,最少需要2台。 …...

Vue2/Vue3使用DataV
Vue2 注意vue2与3安装DataV命令命令是不同的Vue3 DataV - Vue3 官网地址 注意vue2与3安装DataV命令命令是不同的 vue3vite 与 Vue3webpack 对应安装也不同vue3vite npm install kjgl77/datav-vue3全局引入 // main.ts中全局引入 import { createApp } from vue import Da…...

汇编环境搭建
学习视频 将MASM所在目录 指定为C盘...

Android 系统 `android.app.Fragment` 类的深度定制与常见问题解析
Android 系统 android.app.Fragment 类的深度定制与常见问题解析 目录 引言Fragment 概述Fragment 的生命周期Fragment 的系统层深度定制 4.1 Fragment 的创建与初始化4.2 Fragment 的布局与视图4.3 Fragment 的通信机制4.4 Fragment 的动画与过渡4.5 Fragment 的状态保存与恢…...

linux ueditor nginx https 后台配置项返回格式出错,上传功能将不能正常使用
jsp的版本 如果出现了这个错误,上传的图标都亮起的情况,还是提示这个, 可以试试修改 uedtior.all.js 8082行 isJsonp utils.isCrossDomainUrl(configUrl); 改为 // isJsonp utils.isCrossDomainUrl(configUrl); isJsonp true; 如果还不…...

【机器学习 | 数据挖掘】时间序列算法
时间序列是按时间顺序排列的、随时间变化且相互关联的数据序列。分析时间序列的方法构成数据分析的一个重要领域,即时间序列分析。以下是对时间序列算法的详细介绍: 一、时间序列的分类 时间序列根据所研究的依据不同,可有不同的分类&#…...

uniapp H5 对接 声网,截图
文章目录 安装依赖创建容器容器样式 javascript代码ImageDataToBlob 方法 控制控制台LOG输出 安装依赖 版本"agora-rtc-sdk-ng": "^4.22.0", 创建容器 <template><view class"videoValue " id"videoValue"><u-toast…...

家谱管理系统|Java|SSM|VUE| 前后端分离
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…...

【LeetCode】200、岛屿数量
【LeetCode】200、岛屿数量 文章目录 一、并查集1.1 并查集1.2 多语言解法 二、洪水填充 DFS2.1 洪水填充 DFS 一、并查集 1.1 并查集 // go var sets int var father [90000]intfunc numIslands(grid [][]byte) int {n, m : len(grid), len(grid[0])build(grid, n, m)for i …...

idea报错:There is not enough memory to perform the requested operation.
文章目录 一、问题描述二、先解决三、后原因(了解) 一、问题描述 就是在使用 IDEA 写代码时,IDEA 可能会弹一个窗,大概提示你目前使用的 IDEA 内存不足,其实就是提醒你 JVM 的内存不够了,需要重新分配。弹…...

python ai ReAct 代理(ReAct Agent)
ReAct 代理(ReAct Agent)是一种结合了推理(Reasoning)和行动(Action)的智能代理框架,旨在通过交互式的方式解决复杂任务。ReAct 的核心思想是让代理在完成任务时,能够动态地推理下一…...