目标是在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