开发者工具

仪表板包含一个名为 开发者工具 的部分。

Home Assistant 开发者工具的截图。

部分 描述
YAML 让你验证配置并触发重新加载或重启
状态 设置实体的表示
操作 从集成执行操作
模板 渲染模板
事件 触发事件
统计 显示长期统计实体的列表
辅助 让你看到 Home Assistant 如何处理句子

我可以用开发者工具做什么?

开发者工具旨在让 所有人 (不仅仅是开发者)快速尝试各种功能,比如执行操作、更新状态、触发事件和在 MQTT 中发布消息。它也是手动编写自定义自动化和脚本所必需的工具。以下将详细描述每个部分。

YAML 选项卡

YAML 选项卡提供按钮以触发配置文件检查和重新加载配置。重新加载是为了应用你所做的配置更改。

它几乎与 设置 > 三个点菜单(右上角) > 重启 Home Assistant > 快速重新加载 选项相同。唯一的区别是 快速重新加载 会重新加载所有配置,而该 YAML 选项卡允许你一次只重新加载一个特定的配置。

重新加载 YAML 配置

为了使配置更改生效,必须重新加载配置。Home Assistant 中大多数集成(不与 devices设备是表示包含实体的物理或逻辑单元的模型。servicesHome Assistant 中的“服务”一词是以信息服务的意义使用的。例如,提供有机物、纸张和包装废物实体的市政废物管理服务。在功能方面,信息服务类似于设备。它被称为服务以避免混淆,因为它不附带硬件。 交互)可以在不需要重启 Home Assistant 的情况下重新加载对其在 configuration.yamlconfiguration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 中进行的配置更改。

  1. 转到 开发者工具 > YAML,并滚动到 YAML 配置重新加载部分(或者,随便在 UI 中按 “c” 并搜索 “reload”)。

    • 你会看到一个集成列表,例如 自动化对话

    重新加载配置更改

  2. 根据你在列表中找到的内容,你可以进行重新加载或者需要重启 Home Assistant:

    • 如果集成在列表中,选择它以重新加载设置。
      • 例如,如果你已更改 常规设置,可以选择 位置和自定义 来应用这些更改。
    • 如果集成未列出,则需要 重启 Home Assistant 才能使更改生效。

状态选项卡

此部分显示所有可用实体、其对应的状态和属性值。状态和属性信息是 Home Assistant 在运行时所看到的。要用新状态或新属性值更新实体,单击实体,滚动到顶部,修改值,然后单击“设置状态”按钮。

请注意,这是 Home Assistant 中设备的状态表示。这意味着它是 Home Assistant 所看到的,并且不会以任何方式与实际设备通信。更新的信息仍可以用于触发事件和状态变化。要与实际设备通信,建议在上面的 操作 部分执行操作,而不是更新状态。

例如,将 light.bedroom 的状态从 off 改为 on 不会打开灯。如果有一个自动化在 light.bedroomstate 变化时触发,它将被触发——即使实际的灯泡没有亮起。此外,当灯泡状态变化时,状态信息将被覆盖(可以使用刷新图标来检索 Home Assistant 拥有的最新信息)。换句话说,通过“状态”部分所做的更改是临时的,建议仅用于测试目的。

包含所有实体的表可以对每一列进行过滤。使用的搜索是通配符搜索,这意味着如果你在实体列过滤中输入 “office”,每个 ID 匹配 “*office*” 的实体都会显示出来。你还可以在搜索输入中添加自己的通配符(例如 “office*light”)。

属性过滤器支持属性名称和属性值的单独过滤,以冒号 “:” 分隔。因此过滤器 “location:3” 将导致表格显示所有具有包含 “location” 属性名称且属性值包含 “3” 的实体。

操作选项卡

此部分用于执行 Home Assistant 中可用的操作。

操作 下拉菜单中的操作列表是根据配置、自动化和脚本文件中找到的集成自动填充的。如果所需的操作不存在,这意味着集成未正确配置或未在配置、自动化或脚本文件中定义。

当选择一个操作时,如果该操作需要传递 entity_id实体 下拉菜单将自动填充相应的实体。

一个操作还可能需要传递额外的输入。通常称为“操作数据”。操作数据以 YAML 格式接受,并且可能是可选的,具体取决于操作。

当从实体下拉菜单中选择一个实体时,它会自动填充相应 entity_id 的操作数据。然后可以修改操作数据 YAML,以传递额外的 [可选] 参数。以下是执行 light.turn_on 操作的示例。

要打开灯泡,请按照以下步骤操作:

  1. 操作 下拉菜单中选择 light.turn_on
  2. 从实体下拉菜单中选择实体(通常是灯泡)(如果未选择实体 ID,则会打开所有灯)。
  3. 如果选择了实体,操作数据会填充将传递给操作的基本 YAML。还可以通过更新如下 YAML 来传递额外的数据。
entity_id: light.bedroom
brightness: 255
rgb_color: [255, 0, 0]

模板编辑器选项卡

模板编辑器提供了一种快速测试模板的方法,在将其放入自动化和脚本之前。代码编辑器位于左侧,而实时输出显示在右侧的预览中。

默认情况下,这里包含样本代码,说明如何编写和测试模板。可以删除此示例代码并替换为自己的代码。您可以通过按下代码编辑器下方的“重置为示例模板”按钮来恢复默认示例。

有关 Jinja2 的更多信息,请访问 Jinja2 文档,并阅读 这里的模板文档

事件选项卡

在事件部分,你可以在事件总线中触发事件或订阅事件类型以查看事件数据 JSON。

触发事件

要触发事件,只需输入事件的名称,并以 JSON 格式传递事件数据。 例如,要触发一个自定义事件,输入 event_typeevent_light_state_changed,事件数据 JSON 为

state: on

如果有一个自动化处理该事件,它将被自动触发。如下所示:

- alias: "捕获事件"
  triggers:
    - trigger: event
      event_type: event_light_state_changed
  actions:
    - action: notify.notify
      data:
        message: "灯处于  状态"

订阅事件

要订阅事件,在“监听事件”下输入事件类型,然后单击“开始监听”。在“活动监听器”下的事件部分列出了一些事件类型。通常可以在特定集成的文档中找到有关事件类型的信息。然后可以检查事件数据 JSON,以找到适合您自动化的正确参数。

例如,订阅 Shelly 集成的事件类型 shelly.click,在按钮被按下时返回类似于以下的事件数据 JSON。

事件 0  9:53 AM 触发:
{
    "event_type": "shelly.click",
    "data": {
        "device_id": "e09c64a22553484d804353ef97f6fcd6",
        "device": "shellybutton1-A4C12A45174",
        "channel": 1,
        "click_type": "single"
    },
    "origin": "LOCAL",
    "time_fired": "2021-04-28T08:53:12.755729+00:00",
    "context": {
        "id": "e0f379706563aaa0c2c1fda5174b5a0e",
        "parent_id": null,
        "user_id": null
    }
}

统计选项卡

统计 选项卡显示长期统计实体的列表。如果长期统计对某个实体不起作用,则会显示 修复问题 链接。选择它以查看问题的描述。也可能有修复问题的选项。

![统计