设置 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 会使用此位置信息来确定何时激活灯光。不幸的是,你必须使用图形地图来设置此信息,并且在没有活动的互联网连接的情况下,它可能无法正常运行。

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

与其在此处设置设备,我更喜欢单击完成并使用完整的 UI 来配置我的设备。这当然是可选的。此屏幕可能会预填充一些集成,具体取决于 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 倡导者。在加入红帽之前,他曾在金融、汽车和电影行业工作多年。Steve 目前在红帽解决方案和技术实践部门担任架构师。他拥有从 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% 的正常运行时间才能与所有 IoT 设备通信。或者我理解错了吗?

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

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

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

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

回复 作者:JJ

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.