Life, half is memory, half is to continue.
Homeassistant安装
By Vincent. @2023.3.10
Homeassistant安装

作为目前全世界最流行的一款开源智能家居平台,HomeAssistant凭借独特的多品牌智能终端支持,丰富的自动化场景设置及全免费特性,深受智能家居用户的追捧。

对于国内智能家居用户来说,HomeAssistant是米家/HomeKit/涂鸦等主流智能家居平台最好的补充,能够将家中原本个别无法接入平台的设备进行统一管理。举个例子,在全屋大多数都是小米智能家居,但却安装了美的空调的情况下,使用HomeAssistant就能够很好解决空调和其他米家设备之间的自动化场景,真正打通不同品牌之间的壁垒,实现万物互联。

但是,很多小伙伴却非常害怕入坑HomeAssistant,主要是因为部署过程过于复杂。传统来说,想要搭建一个自己的HomeAssistant服务器,可能需要懂虚拟机,Docker,Linux,命令行甚至一定的编程知识,特别是网络配置过程非常繁琐(还容易出错),对于电脑小白来说可谓困难重重。

目前网上虽然有很多HomeAssistant搭建教程,但基本都是基于树莓派,Docker或Linux系统,并且不够清晰,会导致很多新手在过程中遇到问题后,完全无法继续下去,从而彻底放弃。正好上周,袋鼠叔叔发布了一篇在家中使用Windows系统搭建NAS的文章,收获了很好的反响(请参考下面的链接)。有小伙伴咨询,是否同样可以在Windows服务器上搭建HomeAssistant呢?

答案是是的!这种方法不仅稳定,而且非常简单,快速。今天袋鼠叔叔将会手把手教大家通过Windows自带的Hyper-V虚拟机,搭建HomeAssistantOS。我们将完全100%遵循HomeAssistant官方手册,我也会把步骤及可能遇到的问题尽可能说清楚,即便是电脑小白,哪怕你只会基本的Windows操作,只要按照今天的这篇教程,就能非常顺利的快速完成搭建,轻松体验HomeAssistant的妙处所在。

让我们一起开始吧!

Step 0、安装之前需要了解的一些事情

在正式安装开始之前,首先来简单了解一下HomeAssistant的各个版本,及对于宿主机的硬件配置和Windows版本要求,这有助于我们的安装过程更加顺利,少走弯路。

0.1 Home Assistant官方版本

目前Home Assistant共有四个版本,分别是OS(操作系统),Container(容器),Core(核心)和Supervised(也就是之前的HassIO,整合镜像)。我们今天将要安装的,是Home Assistant Operating System,简称HAOS。本质上,我们可以认为他是一个独立的操作系统,是所有版本中功能最完整的,可以体验Home Assistant的全部功能。

0.2 主机配置及操作系统要求

我们今天要将Home Assistant OS装入Windows自带的Hyper-V虚拟机中,要求电脑硬件配置如下:

如果你使用Windows10/11专业版,那么系统原生已经自带了Hyper-V组件,我们仅需要简单的开启一下即可,方法如下:

进入控制面板的“启用或关闭Windows功能”页面。

然后将“Hyper-V”下面的“Hyper-V管理工具”和“Hyper-V平台”全部勾选,再勾选上“Windows虚拟机监控程序平台”和“虚拟机平台”两个选项。

点击确定后,Windows会自动开始安装Hyper-V组件,整个过程需要几分钟时间,耐心等待完成后,点击“关闭”即可。

Step 1、下载Home Assistant系统

我们从Home Assistant官方网站,下载Hyper-V专用的HAOS系统。网址如下:

Windows​www.home-assistant.io/installation/windows

进入页面后,点击“Hyper-V.vhdx”链接开始下载:

这里需要注意,因为HomeAssistant官网不在国内,因此可能会导致龟速下载,甚至无法下载的问题,建议使用迅雷,可以大幅提升速度。如果仍然太慢,可以私信我来提供分享。下载完毕后,我们得到一个“haos_ova-9.5.vhdx.zip”文件。

解压缩这个文件,我们可以得到haos_ova-9.5.vhdx这个镜像文件。现在,我们需要将这个文件放到你打算安装Home Assistant的文件夹中,后期我们不能再将此文件移动或删除。否则就相当于把整个Home Assistant系统移除了。

Step 2、在Hyper-V虚拟机中安装Home Assistant OS

在Windows搜索框中输入“Hyper-V”,然后点击打开“Hyper-V管理器”。

先左键点击,选中当前的Windows主机名,然后点击右侧的“虚拟交换机管理器”。

然后我们依次点击“新建虚拟网络交换机”—“外部”—“创建虚拟交换机”。这一步的目的,是使我们的Hyper-V虚拟机可以访问网络。

接下来,为虚拟交换机起一个名字,这里我就叫做LAN。在连接类型中,我们选择“外部网络”,并且在下拉框中选中想要给Hyper-V使用的网卡,建议选择有线网卡。最后勾选“允许管理操作系统共享此网络适配器”。

点击“确定”后,会出现“挂起的更改可能会中断网络连接”的提示。不用管他,点“是”即可。过程中Windows会出现短暂的网络中断,这是正常的。

接下来,我们回到Hyper-V主界面,在右侧操作栏下面,点击“新建”—“虚拟机”。

这时,会跳出“新建虚拟机向导”页面,我们直接点击“下一步”。

我们可以为这个虚拟机命名任意你喜欢的名字,比如我将其命名为HomeAssistant。其他设置保持默认,然后点击下一步。

在指定代数页面中,我们选择“第二代”,然后点击下一步。

在分配内存页面中,我们需要最少分配2048MB启动内存,因为这是HAOS的最小运行配置(2G RAM),并勾选“为此虚拟机使用动态内存”。当然,如果你的Windows主机内存充裕,多分配一些更好。

这里有一个需要注意的地方,就是我前面提到,Windows主机本身的内存最少要有8G才可以。得益于Win10/W11出(yi)类(pao)拔(gou)萃(shi)的内存管理机制,本身Win操作系统开机就会占据2-2.5G内存。再加上Win主机上运行的其他软件占用,如果内存小于8G的话,很可能会造成虚拟机没有足够内存正常运行。

接下来,在配置网络界面,为虚拟机选择刚刚创建的那个网络连接,我这里是LAN。

点击下一步后,来到连接虚拟硬盘页面。选择“使用现有虚拟硬盘”,然后通过“浏览”按钮,将位置的路径指向haos_ova-9.5.vhdx镜像文件,并点击“下一步”。

再次检查一下所有信息无误,就可以点击“完成”了。

现在可以发现,我们已经有了一个处于“关机”状态的HomeAssistant虚拟机。

接下来,右键单击这条虚拟机名称,然后点击“设置”。

点击选择左侧的安全选项卡,然后将“启用安全启动”前面的√取消掉,点击确定。

接下来,通过双击Home Assistant虚拟机名称,或者点击操作菜单中的“启动”按键,都可以打开Home Assistant窗口。

这时候,可以看到Home Assistant虚拟机处于运行状态了。CPU使用率,内存占用和运行时间都可以正常看到。但实际上,这时Home Assistant的安装并未真正完成。我们需要双击下面的小窗口打开Home Assistant系统页面:

启动后,就可以看到虚拟机的IP地址和Home Assistant的端口号了。比如我这里,虚拟机IP地址是192.168.31.227, Home Assistant服务端口号是8123。但是注意,这里最上面一行字,仍然是“Waiting for Supervisor to startup”,也就是说Home Assistant没有真正开启,我们还需要进行初始化才可以使用。

打开电脑浏览器,在地址栏中输入Home Assistant的地址和端口号,也就是上面的IP4 Address for eth0后面加:8213。比如我这里,就是192.168.31.227:8123,然后回车进入即可。在前面一切配置都正确的情况下,就可以看到Home Assistant的初始化页面了:

只要看到“Preparing Home Assistant”的页面,就说明初始化已经自动开始了,不需要再进行任何操作,只要安静等待即可。这里有一个非常大的坑,就是下面的这句话“this can take up to 20 minutes(这需要花费至多20分钟时间)”。

但实际上,由于众所周知的原因,在不采用科学方式的情况下,大多数家庭网络环境中,都需要远远超过20分钟的时间,比如我这次就花费了6个小时左右。我知道最长的哥们儿,甚至用了整整两天两夜。所以如果你发现状态一直停留在这个页面的话,可以点击上面的蓝色小圆点查看一下日志。只要有时间更新,就说明进程仍在继续,请一定要耐心等待。这个过程中,千万不要让电脑进入休眠状态,不要关机断电。

在长达数小时(如果你家网络骨骼惊奇,也可能几分钟就完事儿)的初始化之后,Home Assistant将自动跳转至注册页面,我们只要填入自己的姓名,用户名和密码即可。最好把这些信息拍照保留或写下来,不要忘记!

注册完毕之后,我们就进入了设置页面。首先可以为自己的家起一个名字,然后通过点击右侧的“自动检测”按键,获取你当前的位置,地图加载的速度会比较慢,请耐心等待。由于地理位置检测是基于IP地址的,因此自动检测出来的位置可能会和自己真正的位置略有区别,可以手动拖拽地图上的蓝色标签来精确定位。

其他的一些设置,如国家地区/语言/时区/海拔/货币等,我们保持默认即可。然后点击下一步。

在隐私设置页面中,所有选项保持默认的关闭状态,然后点击下一步。

接下来,Home Assistant会识别到一些能够直接接入(支持苹果HomeKit)的设备,我们先不去管他,后面再说。直接点击“完成”即可。

现在,我们就进入Home Assistant真正的使用界面了,这也代表着Home Assistant开始正常运行!

在Home Assistant安装完毕后,我们还需要在Hyper-V虚拟机中,将Home Assistant设置为“开机自动启动”。这样一来,当我们重启物理服务器后,Home Assistant就可以自动运行,无需再手动开启了,非常方便。设置方法:点击右侧的“设置”,然后在弹出的设置窗口中,找到“管理”下方的“自动启动操作”,然后选择“始终自动启动此虚拟机”,点击确认即可。

Step 3、 安装HACS(应用商店)及各种应用程序

到现在为止,我们的Home Assistant系统已经安装完毕并正常运行了,但它仍然是一个空壳子。本质上,现在的Home Assistant,就相当于刚刚买回来的手机或者笔记本电脑,只有操作系统,还需要安装各种软件(应用/App),才能够真正满足日常使用需求。

3.1 HACS(Home Assistant Community Store,HA社区商店)安装

首先,我们需要安装HACS,这相当于Home Assistant的应用商店。通过HACS,才能安装各种五花八门的应用或插件。在Home Assistant的主页面中,点击左下角的用户名:

鼠标滚轮向下滚动,找到“高级模式”并启用(将后面的按钮开启)。

接下来点击左下角的“配置”,进入配置页面,然后点击中间的“加载项”。

点击右下方的“加载项商店”。

点击“Terminal & SSH”。

点击“安装”。

点击“启动”。

右上角的红点变成绿色,说明Terminal & SSH已经开始正常运行了。这时候再点击右下方的“打开WEB UI”。

接下来,我们就可以看到熟悉的命令行了。在命令行中输入以下指令,然后回车开始安装。注意,在向命令行中粘贴时,需要使用快捷键“Ctrl+Shift+V”,而不是传统的“Ctrl+V”。

wget -O - https://hacs.vip/get | HUB_DOMAIN=ghproxy.com/github.com bash -

特别说明,此安装源来自于Hassbian大神anlong,感谢大神的辛苦付出!这个极速版HACS和原版HACS相比,对国内网络环境更加友好,能够大大提升下载速度!

耐心等待安装过程。在最下方看到“安装成功”及“请重启Home Assistant”字样后,就说明成功了。

在左侧的Home Assistant导航栏中,点击左下方的“配置”,然后点击“系统”。

进入系统页面后,点击右上角的“重启”按钮。

展开高级选项,点击“重启系统”。

确认重启,然后耐心等待。

左下角会实时通知重启进度。看到“Home Assistant已启动”就说明重启成功了。

接下来,我们再进入HA配置页面,点击“设备与服务”。

然后点击右下角的“添加集成”。

在跳出来的搜索框中,输入“HACS”四个字母,然后点击下方的HACS图标。

将四项声明全部勾选,然后点击“提交”。

在提交完成后,很多小伙伴可能会遇到下面这种情况:“无法使用GitHub进行身份验证……”。这是很正常的,解决问题的办法就是换个浏览器,或者是重启下电脑,或者清空浏览器缓存再试试。比如我第一次使用Chrome浏览器就报错了,但是换成Edge就没有问题。

如果一切顺利的话,就会看到下面的“等待设备激活”页面。在这里,我们需要先点击github的链接。

如果有GitHub账号,我们可以直接登录。没有GitHub账号的话,请点击下方的“Create an account”注册后再登录。

登录后,将上一步中的激活代码填入,然后点击“Continue”。

当看到“Congratulations,you’re all set!”后,就可以关闭当前页面了。回到Home Assistant页面,正常情况下,应该可以看到“成功!”的提示,点击“完成”即可。如下:

但是!很多小伙伴在进行到这一步的时候,由于网络问题,很可能会无法弹出上面这个成功提示。如果遇到了这种情况,仍然保留在“等待设备激活”页面的话,可以尝试将浏览器缓存彻底清空后再重新添加HACS集成,一般都可以解决。在HACS安装完成之后,我们就可以在侧边栏看到它了。

3.2 在HACS中下载和安装插件

HACS安装完成后,我们就可以利用它来下载各种丰富的插件,实现自己的功能需求。在这里,我以小米米家设备接入插件为例,为大家讲解。

首先点击侧边栏中的HACS,然后在右侧最上方的搜索框中,输入“Xiaomi Miot”。自动展现出的两个插件,都是第三方大神制作的可以使Home Assistant连接米家设备的插件。我个人更加偏好 Xiaomi Miot Auto,大家有兴趣的话也可以自己都试一试。

点击插件图标进入详情页面后,有兴趣的话可以看一下介绍,然后点击右下角的“Download”开始下载。

在版本选择页面中,一般我们使用默认的最新版本即可,再次点击Download。

下载完成之后,我们需要再次重启Home Assistant。还记得重启按键在哪里吗?配置—系统—右上角。重启之后,我们点击配置—设备与服务。

然后点击右下角的“添加集成”。

在搜索框中输入xiaomi miot auto, 可以看到这个插件已经自己跳出来了。点击它。

选择“账号集成”,并点击下一步。

在这里,我们需要配置自己的小米账户。输入你的小米ID和密码,服务器选中国大陆,设备连接模式使用默认的自动模式即可,然后提交。

在筛选设备页面,我们一般选择默认的“排除”即可,这样就是选择所有的米家设备都接入HomeKit。当然,你也可以使用“包含”模式,然后在设备列表中自己勾选想要添加的设备。

当看到成功页面的时候,就说明我们的米家设备已经被加入Home Assistant控制了。

最后,关闭成功页面,并点击左上角“概览”,就可以看到所有的米家设备已经出现在主页了!

同样,如果你有将其他品牌的智能家居设备接入Home Assistant,实现共同联动的需求,只要在HACS中下载对应的插件即可。比如我这里,需要将家里的美的洗碗机接入,那么就下载“Midea AC LAN”这个插件并将洗碗机添加进去,然后在配置—场景自动化中简单设置,就能实现美的洗碗机洗涤完毕后,由小爱音箱自动播报提醒了。

再次强调,Home Assistant是一个开源智能家居平台,其中所有的插件都由第三方开发,基本全免费,各路大神为爱发电。并且由于每个品牌智能家居设备原理不同,因此不同品牌第三方插件的使用方法(如何将设备接入)也不尽相同。所以在具体使用时还需要大家耐心研究一下,善用搜索引擎。后期针对大家反馈比较多的品牌,比如美的,海尔,天猫精灵等,我再单独为大家做接入HA的教程。

Step 4、设置Home Assistant外网远程访问

虽然在局域网内,Home Assistant的大部分功能都已经能够实现,但有些用户仍然需要从外网访问家中的Home Assistant,比如当不在家的时候,使用手机控制智能家居设备。在之前我们搭建NAS的过程中,已经从中国电信获得了公网IP,因此本教程也是在有公网IP,并且已经完成了DDNS动态域名绑定的基础上进行的。

再次强调一下,Home Assistant的大多数功能其实都可以在局域网内设置完成。通过以上这种公网IP+端口转发方式,虽然可以实现外网访问,但同时也具有一定的安全风险(因为使用了无加密的http方式)。因此,只要不是有强烈的外网访问刚需,不建议设置HA从外网访问的功能。

以下为HA从外网访问的教程:

首先,Hyper-V虚拟机的默认MAC地址是动态的,我们需要将其设置为静态,这样才可以绑定固定内网IP地址。修改MAC地址为静态,需要先关闭Home Assistant虚拟机。

然后点击虚拟机中的“设置”,接着展开左侧我们分配给Home Assistant的网络适配器,并点击下方的“高级功能”。在高级功能菜单最顶端的MAC地址中,选择“静态”后,确定退出。(拍照或用笔记下这个MAC地址,等下要用到)

接下来,我们需要做三件事情:

第一、在路由器中,将Home Assistant的MAC地址和内网IP进行DHCP静态IP分配绑定。这里需要稍微注意一下,在路由器的MAC地址中,格式可能是00:AA:BB:CC:11:22,但Hyper-V虚拟机中的默认格式是00-AA-BB-CC-11-22。我们在路由器中输入时把中间的“-”改成“:”即可。

第二、在路由器中,将Home Assistant的端口8123转发到任意外网端口,比如我这里设置的是1576,你也可以自己随便编一个。

第三、在Windows Defender防火墙中,将Home Assistant的8123端口手动放行。

在以上设置完毕之后,就可以通过在任意一台电脑浏览器(或手机版Home Assistant App)中,输入”http://DDNS域名:外部端口号“的方式,来访问家里的Home Assistant服务器了!

关于公网IP/DDNS(动态域名解析)/DHCP静态IP地址绑定/端口转发/防火墙设置的具体教程,请参考我的另外一篇文章,里面有非常详细的手把手教学:

Step 5、Home Assistant手机端App下载&使用

除了电脑端之外,Home Assistant也支持手机端使用。无论安卓还是iPhone,都可以在应用市场内直接下载Home Assistant App即可。我这里以安卓为例:

下载安装后,直接打开Home Assistant App, 然后点击“继续”(下图左)。如果你的手机和Home Assistant处于同一个局域网中,正常情况下App就可以自动识别到了(下图中)。如果不在同一个局域网中,需要从外网连接的话,可以点击“手动输入地址”后,在Home Assistant URL中输入”http://DDNS域名:端口号”即可(下图右)。

接下来,我们填入当前的设备名称(下图左)后,点击继续。App初始化的时间可能会比较长,大概会Loading好几分钟(下图中),请耐心等待,不要退出。之后,我们大概率会遇到一个“Firebase错误”的提示,这是因为Firebase是google的一项推送服务,非科学环境下报错是正常的,点击“继续”就可以了。

Home Assistant 安卓/ios版本App,无论在界面,设置及使用逻辑方面,和HAOS几乎一模一样,非常方便。

扫码分享收藏
扫码分享收藏