设置 Home Assistant 来管理你的开源智能家居

在本家庭自动化系列文章的第四篇中,了解如何安装和配置 Home Assistant。
122 位读者喜欢这篇文章。
Working from home at a laptop

Opensource.com

在本系列的第一篇文章中,我介绍了 Home Assistant 以及你可能对其感兴趣的原因。简而言之,Home Assistant 是当今市场上一些最常见的智能设备的自动化中心。它实现了分散硬件的集中协调。通过使用它,你不再需要为了从一个应用程序管理你的智能家居而选择来自单一供应商的次优技术。这也意味着你将不再需要为了管理所有设备而与上百个功能略有不同的应用程序作斗争。一个程序统治一切……或者至少那是梦想。

在第二篇和第三篇文章中,我研究了在开发家庭自动化时需要做出的一些决定,即 本地控制与云控制,以及是选择 Zigbee、Z-Wave 还是 WiFi,仅提及要点。这第四篇文章将比前几篇更具实践性,它将引导你完成使用 Home Assistant 提供的镜像设置虚拟机 (VM) 的过程。

设置虚拟机

我不会介绍所有可用于安装 Home Assistant (HA) 的方法。我在虚拟化环境中运行 HA,并且官方安装页面提供了 VMDK、VHDX、VDI、QCOW2 和 OVA 下载。我有一个基于 libvirt 的家庭实验室,所以我选择了 QCOW2 镜像。

无论你使用哪种虚拟机管理程序,都需要确保启动类型设置为 UEFI 而不是传统的 BIOS。在 Arch Linux 或 Fedora 中,你需要安装 edk2-ovmf 软件包才能在 Virt-Manager 中使用该选项。在 Ubuntu 中,该软件包名为 ovmf。安装软件包后,重启 libvirt。

当你创建虚拟机时,选择你下载的 HA 镜像。你可以接受 Virt-Manager 选择的默认选项,直到确认屏幕。确保选中标记为 安装前自定义配置 的复选框。

当你这样做时,请务必将固件更改为 UEFI

重要提示:虚拟机创建后,你无法更改固件类型。如果你选择 BIOS,虚拟机将无法启动!

如果你需要扩展 HA 虚拟机可用的磁盘空间,请关闭虚拟机并运行

qemu-img resize hassos_ova-4.13.qcow2 +40G

启动后,新空间将自动分配到相应的分区。

首次启动可能需要相当长的时间,因为 HA 会从互联网上拉取最新版本的软件,并为初始启动和配置做准备。为了安全起见,在尝试首次打开网页之前,请走开 10 分钟左右。根据我的经验,通常需要不到五分钟,但 10 分钟是系统启动和稳定下来的一个很好的时间。

首次设置

现在你应该可以通过将浏览器指向 http://homeassistant.local:8123 来访问 HA 界面。但是,这依赖于你的路由器支持自动 DNS 注册。你也可以通过其 IP 地址访问该网页。在我的例子中,它是 http://192.168.122.90:8123

输入你的 HA 管理帐户的用户名和密码。然后它会提示你选择一个位置。

正如你所看到的,你的位置用于“基于太阳的自动化”。这意味着它使用你的经度和纬度来确定日出和日落时间以及你的时区。例如,如果你有一个自动化设置说“在日出前 20 分钟打开书桌灯,并在日出后一小时关闭”,HA 会使用此位置信息来确定何时激活灯光。不幸的是,你必须使用图形地图来设置此信息,并且在没有有效的互联网连接的情况下,它可能无法正常运行。

完成此操作后,你将看到一个确认屏幕。

我更喜欢点击完成,并使用完整的用户界面来配置我的设备,而不是在此处设置设备。当然,这是可选的。此屏幕可能会预先填充一些集成,具体取决于 HA 是否已自动发现你网络上的设备。

初始用户设置

完成初始配置后,你将看到概览页面。HA 的默认界面称为 Lovelace。它是一个功能强大的 YAML 描述的界面。这意味着即使你无法在图形界面 (UI) 中选择某些用户界面元素,你也可以打开内置的 YAML 编辑器并自行添加它们。

Lovelace 的默认视图有一个卡片,显示基于你输入的位置的天气。单击左下角面板中的用户名(在本例中为stratus)。

这将弹出另一个包含多个选项的屏幕。找到高级模式并确保将其切换为开启状态。

此设置是按用户切换的,因此如果你有其他管理用户,则只有此用户(例如,stratus)将启用高级设置。切换高级模式时会显示很多选项,但你想要的是对 HA 配置文件运行语法检查的功能。要查看此操作,请导航到服务器控制,方法是单击左下角面板中的配置选项,然后单击服务器控制

单击检查配置按钮将检查所有 HA 配置文件的语法错误。如果未发现错误,你将看到一条绿色的消息,显示配置有效!

展望未来

现在 HA 已设置和配置完成,你已准备好真正深入研究它。在未来的文章中,我将解释如何

  • 安装和配置附加组件
  • 创建快照并运行 HA 更新
  • 安装 Home Assistant Community Store (HACS)
  • 通过内置选项配置实体
  • 使用 MQTT
  • 使用 NodeRed 创建自动化流程

以及更多。如果还有其他你想了解的内容,请在评论中分享。虽然我不是 Home Assistant 专家,但我会尽力回答你关于它的问题。

接下来阅读什么
User profile image.
Steve 是一位敬业的 IT 专业人士和 Linux 倡导者。在加入 Red Hat 之前,他曾在金融、汽车和电影行业工作多年。Steve 目前在 Red Hat 担任解决方案和技术实践架构师。他拥有从 RHCA(DevOps 领域)到 Ansible,再到容器化应用程序等各种认证。

6 条评论

你是否遇到过虚拟机和主机之间的端口冲突?我为我的以太网接口创建了一个桥接控制器,以便主机和虚拟机具有单独的 IP 地址。我似乎记得这是必要的。

我没有遇到任何端口冲突。虚拟机的性质决定了它们默认具有单独的网络命名空间。

在我的“生产” Home Assistant 上,我使用 MacVLAN 网络,因为主机和访客不需要通信。当主机和访客需要出于某种原因进行交互时,我使用桥接网络,但通常我使用 MacVLAN

回复 作者 Guy Streeter

完成初始配置后,你将看到概览页面。HA 的默认界面称为 Lovelace。它是一个功能强大的 YAML 描述的界面。这意味着即使你无法在图形界面 (UI) 中选择某些用户界面元素,你也可以打开内置的 YAML 编辑器并自行添加它们。https://mcdvoice.me/

Lovelace 的默认视图有一个卡片,显示基于你输入的位置的天气。单击左下角面板中的用户名(stratus 在本例中)。

https://mcdvoice.me/ 非常有帮助且内容丰富。感谢你分享这篇文章。

感谢这篇有用的文章。
我只是想了解你为什么要将其作为虚拟机运行?它需要 100% 的正常运行时间才能与所有物联网设备通信。或者我理解有误?

实际上,没有理由不以虚拟机方式运行。如果配置了故障转移,虚拟机可以将应用程序与主机故障隔离。它们还有助于“沙盒化”功能,其方式与容器非常相似(尽管可以说更安全)。

由于具有故障转移和存储冗余的能力,虚拟机比单个物理设备具有更长的正常运行时间(广义上来说)。

除此之外,这主要只是我的个人偏好。

旁注:Home Assistant 将在每次重新上线时重新连接到所有设备,因此虽然它必须 24/7 全天候运行才能控制所有设备,但如果 HA 实例离线,则在重新配置方面没有任何损失

回复 作者 JJ

知识共享许可协议本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.