构建 Home Assistant 自定义组件(第五部分):调试

构建 Home Assistant 自定义组件(第五部分):调试
引言
这是构建 Home Assistant 自定义组件多部分教程的第五部分,也是最后一部分。本文将介绍如何调试自定义组件,以确保其按预期工作,并找出某些功能可能不如预期的原因。
我必须承认,我最近才了解到 Home Assistant 提供的用于本地开发的开发容器(devcontainer)。在了解之前,我会在本地修改文件,然后通过 scp 将它们复制到 Home Assistant 实例上的正确文件夹中,然后重新启动实例。这不仅速度慢,而且意味着在调试问题时,由于我尝试更改,为我家提供服务的 Home Assistant 实例将不得不不断关闭。事实证明,Home Assistant 已经开发了一种本地开发解决方案,无需关闭你的 “生产” 实例。这就是开发容器。
Visual Studio Code + devcontainer
要使用开发容器,你首先需要安装 Visual Studio Code。Visual Studio Code 是一款免费的集成开发环境(IDE),非常受欢迎,并且有大量扩展可用于加速和改进开发。安装后,还必须安装其他一些要求,更多详细信息请查看官方文档。
在安装了先决条件并克隆了 home - assistant/core 存储库后,你可以启动 Visual Studio Code 并打开克隆的目录。首次打开文件夹时,Visual Studio Code 将检测到开发容器,并询问你是否要在容器中打开编辑器,选择 “是”。首次打开将构建容器,这可能需要一两分钟。后续打开将快得多,因为它将重用已构建的容器。
配置开发容器
在继续之前,我们需要将自定义组件复制到克隆的 home - assistant/core 存储库根目录下的config目录中。请注意,你可能需要提升权限,因为 docker 将在config目录中创建由 root 拥有的文件。或者,你可以使用 IDE 中的内置终端,它会为你提供具有正确权限的 root 提示符。
首先导航到/path/to/cloned/home-assistant/config并创建一个custom_components目录。然后将你的自定义组件直接复制到这个新文件夹中。对于我们的教程项目,我们将复制整个github_custom目录。
接下来,将任何必要的配置添加到configuration.yaml文件中。由于我们的教程自定义组件使用配置流程,我们不需要添加任何内容,因为我们可以在配置 UI 中添加集成并进行设置。
运行 Home Assistant
现在我们已经复制了文件并更新了配置,返回 Visual Studio Code 并点击左侧面板中的 “运行” 选项卡(Ctrl+Shift+D)。你将看到一个几乎为空的面板,顶部有一个下拉列表,其中包含可以运行的调试配置。在撰写本文时,有两个选项,“Home Assistant” 用于运行本地实例,“Preview (nodejs)” 用于运行文档站点的本地实例。
Visual Studio Code 运行面板
选择 “Home Assistant” 从下拉列表中,然后点击绿色三角形开始调试器。这也将在底部打开 “终端” 面板,你可以在其中看到 Home Assistant 日志。现在,你可以在浏览器中导航到http://localhost:8123,你将被引导完成 Home Assistant 的初始设置(创建用户等)。在 Visual Studio Code 中,你还将在 IDE 的顶部中心附近看到一个调试工具栏弹出。
Visual Studio Code 调试工具栏
调试工具栏包含以下操作的控件,按图标从左到右的顺序:
暂停 / 继续
单步跳过
单步进入
单步跳出
重新启动
停止
查看 Visual Studio Code 文档以获取有关每个操作功能的更多详细信息。最常用的按钮将是在遇到断点后继续程序执行,以及在更改 Python 代码后重新启动 Home Assistant。
断点
断点对于能够停止程序执行并检查代码中特定位置的变量非常有用。要设置断点,请找到你希望暂停程序流并检查变量的行,然后点击行号左侧。这将添加一个红色圆点,表示断点。当你在浏览器中浏览 Home Assistant 并遇到该代码时,它将自动暂停程序并允许你在运行面板中检查值。
断点
在上面的屏幕截图中,你可以看到局部和全局变量及其值。检查完值后,你可以点击调试工具栏中的 “继续” 按钮以继续程序执行,直到遇到另一个断点。
总结
如你所见,Visual Studio Code 中的开发容器使调试自定义组件更加简单和快速。
我真诚地希望这些文章帮助你了解如何开发自己的自定义组件(甚至可能在未来某个时候将其添加到 Home Assistant 中)。这些文章中记录的许多概念也适用于官方 Home Assistant 代码库,因此我强烈鼓励你进行贡献或成为现有集成的代码所有者。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值