Win11在docker环境安装homeassistant,安装HACS并集成小米官方组件

news/2025/2/26 1:48:15

目标是在docker中安装homeassistant,并且将本地目录做为工作目录,方便管理。然后在ha中安装HACS商店,并集成小米官方组件。

拉取ha镜像

首先在docker中配置好加速条件(docker引擎使用阿里云,并挂梯子),然后在powershell(是否是管理员不重要)中执行docker pull homeassistant/home-assistant​拉取镜像。

拉取完成可在docker镜像中看到。

创建工作目录并运行ha

下一步就是在powershell中运行homeassistant,不过在这之前要手动创建好ha的本地工作目录,我习惯在Dockers\docker_apps​中存放,所以我的目录为Dockers\docker_apps\ha\config​。然后执行指令运行ha:

docker run -d --name=ha --restart=unless-stopped -v E:\Dockers\docker_apps\ha\config:/config -e TZ=Asia/Shanghai -p 8123:8123 homeassistant/home-assistant

命令说明

docker run: 这是用于创建并启动一个容器的 Docker 命令。
-d: 表示以“分离”(detached)模式运行容器,即在后台运行容器而不是前台。
–name=ha: 给这个容器指定一个名称 ha,方便以后引用此容器(例如停止、删除或查看日志)。
–restart=unless-stopped: 设置容器的重启策略为 unless-stopped,这意味着除非容器被手动停止,否则 Docker 将自动重启该容器,即使 Docker 守护进程重启后也是如此。
-v E:\Dockers\docker_apps\ha\config:/config: 使用 -v标志来挂载卷。这里将主机上的 E:\Dockers\docker_apps\ha\config:/config 目录挂载到容器内的 /config 目录。这允许你在主机和容器之间共享数据,并且可以在主机上持久化配置文件等重要数据。
-e TZ=Asia/Shanghai: 使用 -e标志设置环境变量。这里设置了时区环境变量 TZ 为 Asia/Shanghai,确保容器内部使用的是中国上海的时间。
-p 8123:8123: 使用 -p标志来发布容器的端口,使外部可以访问。这里的格式是 hostPort:containerPort,即将主机的 8123 端口映射到容器的 8123 端口。Home Assistant 默认使用 8123 端口提供服务。如果和主机别的程序冲突,可以改成别,范围1024~25535。
homeassistant/home-assistant: 这是要运行的镜像名称,然后基于它创建一个容器

创建账户

在执行完上面的docker run命令后,在docker面板中看到ha在运行,就说明ha安装好了,去浏览器访问localhost:8123​可打开ha的欢迎页面,点击创建开始创建用户。(如果改过端口,就使用修改后的端口)

然后在点击创建好账户后,可能会看见这样喜闻乐见的画面,提示“嗯... 无法访问此页面http://localhost:8123/?auth_callback...”,不慌,已经创建好了,访问localhost:8123​或者localhost:8123/auth/​即可跳转到登陆界面。

输入刚才的用户名和密码进行登录,这里一般不会出问题。然后就是安装HACS商店。

安装HASC商店

HASC商店不用多介绍了吧。访问https://github.com/hacs/integration/releases​下载最新版HACS商店,注意是下载ZIP那个文件。

记得之前创建的ha本地工作目录吗,继续在ha\config目录下依次创建两个文件夹(custom_components和hacs),所以会是这样Dockers\docker_apps\ha\config\custom_components\hacs​,其中custom_components​为组件目录,以后还会在此目录安装更多组件;hacs则是特定组件的名称,这里是给HACS用的。

把刚刚下载的hacs.zip放在custom_components​目录下,和hacs文件夹同层,右键hacs.zip选择“解压到hacs\文件夹”。解压完成后,压缩包里的所有内容都应该在同层文件夹hacs中,像下面这样。那个压缩包可以丢到hacs文件夹里。

然后在docker中重启ha,接着去设置/设备与服务。

点右下角添加集成,搜索HACS,选择带网络和黄色盒子的那个,然后勾上所有的I know,点提交。

然后会弹出和Github绑定的提示,不要关这个页面,新标签打开认证链接,输入提示页面提供的code(下面那段超级小的字)。

绑定后返回ha页面,给HACS选个房间。这样就完成了HACS商店的安装(重新进入ha,会在左侧看到HACS图标)。

集成小米官方组件

玩ha智能家居怎么能少了小米呢(就算是苹果用户也逃不过小米),下面准备安装小米官方公布的组件,就在Github上(3年前在树莓派HACS商店装的小米组件是第三方的,因为目前2025年了,小米官方组件仍然没有上架HACS)。

关于安装小米组件,有4个方法,方法1是终端git源码,然后install,可我的电脑是win,所以pass;方法2是去HACS,添加小米仓库,然后下载,可能可以;方法3是将Github源码文件夹放到本地对应的custom_components​文件夹;方法4是和安装HACS类似,下载release的ZIP安装。

这里主要介绍方法4。

我选择了方法2和方法4。先通过ZIP安装,然后又好奇,去HACS商店添加了小米仓库。

访问https://github.com/XiaoMi/ha_xiaomi_home/releases​,下载最新版ZIP,然后丢custom_components​文件夹解压。

解压好是这样,xiaomi_home​文件夹应该和hacs​同层,都在custom_components​文件夹里。

然后去docker面板重启ha,然后再去设置/设备与服务,点添加集成,搜索xiaomi,这里别搞错了,带网络和黄色小盒子的才是官方的(另一个是第三方的)。

然后就是配置了。


这里是关于方法2的测试,不一定能用,仅供参考。

左侧进入HACS商店,右上角三个点选custom repositories​,Repository填https://github.com/XiaoMi/ha_xiaomi_home.git​,Type选Intergration​,然后点ADD。

然后我这会提示已存在,那就不管他,关掉即可。假如没有使用ZIP安装的方式,那这里就会添加进去。

配置小米组件

通过方法2或者方法4安装好小米组件后,会自动进入小米组件配置流程,首先是风险警告,打勾点下一步。

依次点击中国大陆、简体中文,勾选认证地址,勾选集成网络配置,然后下一步。

然后会弹出网络检测配置,手动访问它列出的4个地址,只要能访问就行。然后勾选检测网络依赖项,点下一步。

然后会弹出登陆提示界面,点击后在新标签打开登陆界面,登录小米账号。

然后极有可能又会看见一个无法访问的界面,提示“当前无法使用此页面 homeassistant.local当前无法处理此请求。”,这里千万不要关掉。只需要把链接开头的homeassistant.local​换成localhost​,其余内容保持不变即可。

然后就会登陆成功,ha那里会自动跳转到选择家庭与设备页面。

这里必须要导入家庭,且这个家庭必须包含一个设备。这里有个技巧,可以先去米家app设置一下房间。假如已经到这一步了,那就继续下一步,反正后面可以改。

勾选筛选设备,控制模式选自动。二进制传感器那选二进制传感器。

假如配置好了,但是不满意,还是可以改的。只需要去老地方,设备与服务,打开小米组件,点配置,就能重新选择家庭与设备,后面操作差不多。

到此配置完成小米组件。

重启ha,可选择在docker中重启,也可选择用ha自身来重启。去设置/系统,点右上角的电源图标就可以重启。

 

参考资料

[1] Windows环境安装HomeAssistant-CSDN博客

[2] 爱快iKuai上的docker功能部署小米HomeAssistant教程!一帖到底_爱快docker-CSDN博客

[3] https://github.com/XiaoMi/ha_xiaomi_home

 


http://www.niftyadmin.cn/n/5867050.html

相关文章

HybridCLR+Adressable+Springboot热更

本文章会手把手教大家如何搭建HybridCLRAdressableSpringboot热更。 创作不易,动动发财的小手点个赞。 安装华佗 首先我们按照官网的快速上手指南搭建一个简易的项目: 快速上手 | HybridCLR 注意在热更的代码里添加程序集。把用到的工具放到程序集里…

本地部署DeepSeek-R1(Ollama+Docker+OpenWebUI知识库)

安装Ollama 打开 Ollama官网 https://ollama.com/下载安装 Ollama服务默认只允许本机访问,修改允许其它主机访问 OLLAMA_HOST0.0.0.0 ollama serve也可以添加系统环境变量 都知道模型体积很大,顺便也通过环境变量修改模型存放位置,我这…

最长递增子序列(贪心算法)思路+源码

文章目录 题目[](https://leetcode.cn/problems/longest-increasing-subsequence/)算法原理源码总结题目 首先,要掌握动态规划加二分查找 算法原理 1.回顾dp的解法 状态表示:dp[i]表示:以i位置的元素为结尾的所有的子序列中,最长递增子序列的长度 状态转移方程:dp[i]= m…

2. MySQL的数据目录(详解讲解)

2. MySQL的数据目录(详解讲解) 文章目录 2. MySQL的数据目录(详解讲解)1. MySQL8 的主要目录结构1.1 相关命令目录1.2 配置文件目录 2. 数据库和文件系统的关系2.1 查看默认数据库2.2 数据库在文件系统中的表示 3. 表在文件系统中的表示3.1 InnoDB存储引擎模式3.2 MyISAM存储引…

【HeadFirst系列之HeadFirstJava】第5天之超强力方法 —— 从战舰游戏到循环控制

编写程序:超强力方法 —— 从战舰游戏到循环控制 在《Head First Java》的第五章节中,作者通过一个简单的战舰游戏示例,深入讲解了如何编写Java程序,并重点介绍了方法和循环控制的使用。这一章节的核心思想是:通过模块…

MySQL 最左前缀原则:原理、应用与优化

目录 引言 什么是复合索引? 什么是最左前缀原则? 示例 最左前缀原则的原理 最左前缀原则的应用场景 1. 等值查询 2. 范围查询 3. 部分列查询 4. 排序和分组 最左前缀原则的优化技巧 1. 合理设计复合索引 2. 避免跳过索引列 3. 覆盖索引 4.…

API技术深度解析:构建高效、安全与可扩展的接口服务

在当今的数字化时代,应用程序接口(API,Application Programming Interface)已成为连接不同软件系统和服务的桥梁,是推动数字化转型的关键技术之一。无论是企业内部系统集成、第三方服务接入,还是面向开发者…

[java基础-JVM篇]2_垃圾收集器与内存分配策略

学习权重30%。 理解问题: 垃圾收集器的特点与 运作原理,JVM自动内存分配与回收的主要规则。 目录 判断对象存活 引用计数法Reference Counting 缺陷 可达性分析(Reachability Analysis)算法 可作为GC Roots的对象 引用的扩展 进行…