故障排除自动化

自动化和scripts脚本是允许用户指定 Home Assistant 打开时要执行的动作序列的组件。 [Learn more]可以通过几种不同的方式进行调试。您可以测试运行完整的动作序列,或单独测试每个条件和动作。跟踪可以让您查看自动化运行后每个步骤的详细信息。对于复杂的自动化和templates模板是一种自动化定义,可以包括动作或触发值数据的变量。这允许自动化生成动态动作。 [Learn more],请参阅测试模板部分。

测试您的自动化

许多自动化可以直接在自动化编辑器UI中测试。

运行整个自动化

在自动化列表或自动化编辑器UI中的三个点菜单中,选择运行按钮。这将执行所有actions动作在 Home Assistant 的多个地方使用。作为脚本或自动化的一部分,动作定义了触发器被激活后将发生的事情。在脚本中,动作被称为序列 [Learn more],同时跳过所有triggers触发器是定义的一组平台值或条件,用于触发自动化运行。 [Learn more]conditions条件是自动化的可选部分,如果不满足条件,将阻止动作触发。 [Learn more]。这让您可以像自动化被触发且所有条件为真一样测试完整的动作序列。请注意,您在触发器中使用的任何触发器ID在以此方式测试时不会处于活动状态。触发器ID或在条件或动作中的trigger数据传递的任何数据无法以这种方式直接测试。

您还可以手动触发自动化。这可以测试条件,仿佛是事件触发了自动化。导航到开发者工具 > 操作。在操作下拉菜单中,选择自动化:触发,然后选择实体以选择您正在测试的自动化。切换是否跳过条件,然后执行操作。如有需要,可以在YAML视图中添加额外的trigger或其他数据进行测试。触发器页面提供关于触发器内数据的更多信息。

使用复杂的触发器、条件和变量进行测试可能会很困难。请注意,使用运行按钮将跳过所有触发器和条件,而开发者工具可以在检查条件时使用或不使用。

运行单个动作或条件

在自动化编辑器UI中,可以单独测试每个condition条件是自动化的可选部分,如果不满足条件,将阻止动作触发。 [Learn more]action动作在 Home Assistant 的多个地方使用。作为脚本或自动化的一部分,动作定义了触发器被激活后将发生的事情。在脚本中,动作被称为序列 [Learn more]。选择三个点菜单,然后点击测试按钮。

  • 测试条件时,会高亮显示该条件以显示在测试时该条件是否通过。如果所有条件通过,则在触发时自动化将运行。测试像条件这样的构建块将报告整个块是否注册为真或假,或者您可以测试构建块内的单个条件。

  • 测试一个动作块将立即运行该块。

请注意,依赖于先前块的复杂自动化,例如触发器ID、模板中的变量或返回数据以供后续块使用的动作调用,无法以这种方式进行测试。

如果您在YAML中编写自动化,访问开发者工具 > YAML也是很有用的,在配置验证部分,选择检查配置按钮。这是为了确保在重新启动Home Assistant之前没有语法错误。为了使检查配置可见,您必须在您的用户资料中启用高级模式**。

跟踪

automationHome Assistant 中的自动化允许您自动响应在家中和周围发生的事情。 [Learn more]运行时,所有步骤都会被记录,并生成跟踪。从UI中,打开设置,位于侧边栏中,然后选择自动化与场景以进入自动化编辑器,或者直接点击此按钮:

在自动化编辑器UI中,或在三个点菜单中的自动化列表中,选择跟踪。另外,选择在日志簿中显示的自动化条目。

自动化跟踪示例

上面的截图显示了自动化的先前运行。自动化使用交互式图形显示,突显出自动化所采取的路径。图中的每个节点都可以点击,以查看该特定步骤中自动化所发生的详细信息。它跟踪自动化的完整运行。

跟踪屏幕的右侧有标签提供更多信息:

  • 步骤详细信息显示当前高亮步骤的数据和结果。
  • 自动化配置显示自动化运行时的完整YAML配置。
  • 跟踪时间线,如上面的截图所示,列出执行的步骤及其时间。
  • 相关日志条目,显示特定跟踪的所有日志条目。
  • 蓝图配置仅在自动化是从blueprint蓝图是一个脚本、自动化或模板实体配置,其中某些部分标记为可配置。这允许用户基于相同的蓝图创建多个脚本、自动化或模板实体,每个都有自己的配置特定设置。 [Learn more]创建时显示。

顶部栏显示自动化被触发的日期和时间。使用左右箭头查看自动化的先前运行。

用YAML创建的自动化必须分配一个id,以便存储调试跟踪。

跟踪配置

所有自动化的最后5个跟踪都会被记录。可以通过将以下代码添加到您的自动化中来更改此设置。

trace:
  stored_traces: 20

测试模板

如果您的自动化在任何部分使用模板,您可以按照以下步骤确保其按预期工作:

  1. 转到开发者工具 > 模板选项卡。
  2. 创建所有模板所需的变量(源),如本段结尾所述。
  3. 复制您的模板代码,并在变量后直接粘贴到模板编辑器中。
  4. 如有必要,更改您的源的值,检查模板是否按您希望的方式工作,并且没有生成任何错误。