window从零搭建homeassistant

闲着没事瞎研究一下,主要是根据网上已有的教程自己尝试搭建home-assistant,本文档仅记录一下自己的搭建过程。

一、事前准备

pc(必须为windos专业版,如果不是,可以退出本文章了)、网络(可以访问github)、github账号,以及一些智能家居设备(非必需,只是为了验证最终效果)

homeassistant(简称ha、hass)可以装在任何机器上,本次采用的方式是在window电脑上安装docker,再起linux容器进行安装。

homeassistant作为智能家居的控制核心,是需要7*24小时待机的,正常情况下应当部署在如树莓派、NAS上。本次只是兴趣使然想要体验一遍安装过程,同时看下效果,判断以后有没有长期使用的必要。

二、安装docker

docker是什么这里不再过多介绍,可以通俗的理解为一个虚拟机的管理器,利用它可以实现在window上跑linux,想要在windows上安装docker,windows版本必须是专业版。

可以进入官网下载:https://www.docker.com/products/docker-desktop/,

下载完成后一路默认安装,可以直接安装在C盘,如果觉得C盘空间不够,也可以指定到其他路径,推荐安装在固态硬盘上。

安装完成后检查是否安装成功,打开一个终端(在任意文件夹路径下,按 shift + 鼠标右键,选择在此处打开powershell窗口,下方提到打开终端都是这样操作)

输入 docker --version

正确显示版本号即安装成功,(我的docker安装较早,没有进行升级,官网下载安装后,可能版本不一样)

安装成功后启动docker,由于默认镜像库地址是国外的,使用起来不方便,需要设置一下镜像库地址,在电脑右下角找到docker的图标,右键setting,打开docker管理面板,在Docker Engine里粘贴以下内容

"registry-mirrors": ["https://mkts104l.mirror.aliyuncs.com"]

此为阿里云镜像库,如有需要也可以自己找其他的。

三、拉取镜像并创建容器

docker安装完成后,我们就可以拉取镜像以创建容器了,为了方便下边操作,先简单介绍几个需要用到的docker常用命令

 docker --help 查看帮助,以下命令均可以在帮助里找到
 docker images 查看镜像
 docker ps 查看正在运行的容器
 docker ps -a 查看所有容器
 docker search 在镜像仓库里搜索镜像
 docker pull [镜像名]  拉取镜像
 docker network create 为docker创建网桥
 docker run [镜像名] 使用指定镜像创建容器
 docker start [容器id]  启动指定容器
 docker stop [容器id] 停止指定容器
 docker exec [容器id] 进入指定容器
 docker cp [文件路径] [容器id:文件路径] 向容器指定路径拷贝文件

以上就是接下来会用到的所有docker相关命令。

  1. 查找home-assistant镜像

    打开终端,输入 docker search home-assistant

  2. 拉取第一个星标最多的镜像(忘截图了,一般只要替换了阿里云的镜像库,这里都不会出错)

docker pull homeassistant/home-assistants

  1. 拉取完成后查看镜像列表

可以看到镜像出现在本地,正常情况下接下来只要使用该镜像创建一个容器就好了。

根据本人的踩坑经验,这里还需要加入一些其他步骤,因为最终homeassistant是运行在容器里的,我们想要在外部访问,就必须要访问容器的ip和端口(homeassistant的默认端口是8123)

但是本人实测,宿主机,即我的windows电脑,无法访问到容器里边的ip和端口(也有可能是我自己的问题,故这里需要加入一个步骤,以把容器的ip固定下来,同时将容器里的端口映射出来,这样我们就可以在局域网里的任何设备上访问了。当然,如果你事先有过docker的使用经验,且确保自己电脑不存在这样的问题,那以下步骤可以跳过

  1. 为docker创建一个网桥

    docker network create --subnet=172.30.0.0/16 docker01

    这里我指定的ip号段为172.30.0.0/16,后续使用该网桥生成的容器都会属于该网段

  2. 使用之前的镜像创建容器

    docker run -itd --privileged=true --name hass --network=docker01 --ip 172.30.0.6 -p 8123:8123 -p 6021:21 -p 6022:22 -v /sys/fs/cgroup:/sys/fs/cgroup homeassistant/home-assistant

    创建容器的标准命令为 docker run -ti [镜像名] ,这里加入了一些其他参数,简单介绍下其含义

--name 为容器指定别名,不指定时由docker自行分配

--network 为容器指定网桥

--ip 指定ip,ip 要在网桥设置范围内,如果不指定ip,容器重启后ip可能会变

-p 进行端口映射,即将宿主机端口和容器端口建立连接


根据需求修改 --name --network --ip -p 配置即可。

创建成功会返回一串id,这是新创建容器的唯一标识,记住这个id,后续会用到,不过不用全部记住,一般前3位就足以标识

  1. 启动容器

    docker start 686 (686要替换成你的id前三位)

  2. 进入容器

    docker exec -it 686 /bin/bash

    此时会进入linux命令行模式,默认进去的路径是 /config,这里就是 homeassistant所在路径。

    需要注意,该镜像生成的容器是基于 linuxkit的,内核为Alpine,默认支持的命令非常少(连vim都没有),如果需要,可以通过 apk add命令添加(apk即为其包管理工具,如果找不到需要的内容,可以浏览器搜索 Alpine如何安装xxx)

四、设置homeassistant

如果前边的步骤顺利的话,容器启动后,我们就可以在windows上访问homeassistant了。

  1. 登录并注册

    打开浏览器,输入 127.0.0.1:8123,进入 homeassistant界面

    根据提示进行注册,记好自己设置的账号和密码,其他的设置不重要,后期可以改。

  2. 注册成功后即可进入homeassistant的管理界面,到这里,ha部署就算完成了。但为了将我自己米家的设备添加进来,同时也为了使用方便,还有一个重要的步骤要完成。

五、安装HACS

hacs可以理解为homeassistant的应用商店,我们可以通过它方便的获取到github上其他人开发的ha新内容。

安装方式有很多,我这里采用离线安装的方式,在github上找到hacs对应的项目,下载文件直接上传到容器内,重启容器即可

打开终端,进入容器,并进入homeassistant路径,创建两个文件夹: www 和 custom_components

docker exec -it 686 /bin/bash
cd /config
mkdir {www,custom_components}

然后从github下载hacs所需文件:https://github.com/hacs/integration/tree/main/

通过github下载,我们只需要找到custom_components/hacs 这个文件夹将其上传即可(所有插件下载同理,在github上ha相关的项目里都会有custom_components文件夹,将其里边的内容上传到容器对应目录即可 )

然后将该文件上传到容器内,假设文件路径为 D:\Download\hacs

新开一个终端,输入以下命令

docker cp D:\Download\hacs 686:/config/custom_components/

进入容器内确认文件上传成功后重启容器

docker restart 686

容器重启后刷新浏览器,重新进入hass管理界面

依次选择 配置 -> 设备与服务 (忽略我截图左侧列表的HACS,这是添加成功后才会有的)

第一次打开时,这里应该是空的,点击右下角添加集成,搜索HACS

选择进行添加,由于我已经添加成功,没办法重复添加,在网上找了几个添加过程的截图:

这里四个勾全选,右下角有继续按钮,

这里需要复制最下方的八位字符,然后选中github的链接,右键在新的标签页打开,将复制的字符粘贴进去,根据提示进行认证

等待片刻就会添加成功,如果过程失败就重新添加试试,如果多次尝试都不成功,再考虑homeassistant和hacs版本是否兼容的问题。

添加完成后,在 配置-> 设置与日志 里找到服务管理,点击重新启动,不需要刷新页面,等待片刻即可重启成功(也可以直接重启容器)

这时,左侧列表就会出现HACS了,以后需要安装其他插件可以通过它来安装。

六、安装Xiaomi MIoT

为了将米家设备接入进来,我们还需要另一个插件:Xiaomi MIoT,可以像安装HACS那样安装,也可以直接通过HACS安装,

通过HACS安装:

依次选择 HACS -> 集成 ,点击右下角 浏览并下载存储库,搜索 xiaomi,找到Xiaomi MIoT进行安装。

通过下载文件的方式离线安装,github地址:https://github.com/ha0y/xiaomi_miot_raw

后续安装步骤参考 hacs安装,不再重述。

只需要登录小米账号,即可获取到米家里的所有设备信息,然后就可以将它们选择性的添加到hass了。

添加完成后,即可在首页看到它们,也可以自定义显示样式

查看pc的内网ip地址,就可以在内网的任一设备上访问(容器需要保持运行状态),平板访问示例:


至此,windows部署hass结束。可以愉快的玩耍啦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容