开发者工具
仪表板包含一个名为 开发者工具 的部分。
Home Assistant 开发者工具的截图。
部分 | 描述 |
---|---|
YAML | 让你验证配置并触发重新加载或重启 |
状态 | 设置实体的表示 |
操作 | 从集成执行操作 |
模板 | 渲染模板 |
事件 | 触发事件 |
统计 | 显示长期统计实体的列表 |
辅助 | 让你看到 Home Assistant 如何处理句子 |
我可以用开发者工具做什么?
开发者工具旨在让 所有人 (不仅仅是开发者)快速尝试各种功能,比如执行操作、更新状态、触发事件和在 MQTT 中发布消息。它也是手动编写自定义自动化和脚本所必需的工具。以下将详细描述每个部分。
YAML 选项卡
YAML 选项卡提供按钮以触发配置文件检查和重新加载配置。重新加载是为了应用你所做的配置更改。
它几乎与 设置 > 三个点菜单(右上角) > 重启 Home Assistant > 快速重新加载 选项相同。唯一的区别是 快速重新加载 会重新加载所有配置,而该 YAML 选项卡允许你一次只重新加载一个特定的配置。
重新加载 YAML 配置
为了使配置更改生效,必须重新加载配置。Home Assistant 中大多数集成(不与 devices设备是表示包含实体的物理或逻辑单元的模型。 或 servicesHome Assistant 中的“服务”一词是以信息服务的意义使用的。例如,提供有机物、纸张和包装废物实体的市政废物管理服务。在功能方面,信息服务类似于设备。它被称为服务以避免混淆,因为它不附带硬件。 交互)可以在不需要重启 Home Assistant 的情况下重新加载对其在 configuration.yaml
configuration.yaml 文件是 Home Assistant 的主要配置文件。它列出了要加载的集成及其特定配置。在某些情况下,需要直接在 configuration.yaml 文件中手动编辑配置。大多数集成可以在 UI 中配置。 [Learn more] 中进行的配置更改。
-
转到 开发者工具 > YAML,并滚动到 YAML 配置重新加载部分(或者,随便在 UI 中按 “c” 并搜索 “reload”)。
- 你会看到一个集成列表,例如 自动化 或 对话。
-
根据你在列表中找到的内容,你可以进行重新加载或者需要重启 Home Assistant:
- 如果集成在列表中,选择它以重新加载设置。
- 例如,如果你已更改 常规设置,可以选择 位置和自定义 来应用这些更改。
- 如果集成未列出,则需要 重启 Home Assistant 才能使更改生效。
- 如果集成在列表中,选择它以重新加载设置。
状态选项卡
此部分显示所有可用实体、其对应的状态和属性值。状态和属性信息是 Home Assistant 在运行时所看到的。要用新状态或新属性值更新实体,单击实体,滚动到顶部,修改值,然后单击“设置状态”按钮。
请注意,这是 Home Assistant 中设备的状态表示。这意味着它是 Home Assistant 所看到的,并且不会以任何方式与实际设备通信。更新的信息仍可以用于触发事件和状态变化。要与实际设备通信,建议在上面的 操作 部分执行操作,而不是更新状态。
例如,将 light.bedroom
的状态从 off
改为 on
不会打开灯。如果有一个自动化在 light.bedroom
的 state
变化时触发,它将被触发——即使实际的灯泡没有亮起。此外,当灯泡状态变化时,状态信息将被覆盖(可以使用刷新图标来检索 Home Assistant 拥有的最新信息)。换句话说,通过“状态”部分所做的更改是临时的,建议仅用于测试目的。
包含所有实体的表可以对每一列进行过滤。使用的搜索是通配符搜索,这意味着如果你在实体列过滤中输入 “office”,每个 ID 匹配 “*office*” 的实体都会显示出来。你还可以在搜索输入中添加自己的通配符(例如 “office*light”)。
属性过滤器支持属性名称和属性值的单独过滤,以冒号 “:” 分隔。因此过滤器 “location:3” 将导致表格显示所有具有包含 “location” 属性名称且属性值包含 “3” 的实体。
操作选项卡
此部分用于执行 Home Assistant 中可用的操作。
操作 下拉菜单中的操作列表是根据配置、自动化和脚本文件中找到的集成自动填充的。如果所需的操作不存在,这意味着集成未正确配置或未在配置、自动化或脚本文件中定义。
当选择一个操作时,如果该操作需要传递 entity_id
,实体 下拉菜单将自动填充相应的实体。
一个操作还可能需要传递额外的输入。通常称为“操作数据”。操作数据以 YAML 格式接受,并且可能是可选的,具体取决于操作。
当从实体下拉菜单中选择一个实体时,它会自动填充相应 entity_id
的操作数据。然后可以修改操作数据 YAML,以传递额外的 [可选] 参数。以下是执行 light.turn_on
操作的示例。
要打开灯泡,请按照以下步骤操作:
- 从 操作 下拉菜单中选择
light.turn_on
。 - 从实体下拉菜单中选择实体(通常是灯泡)(如果未选择实体 ID,则会打开所有灯)。
- 如果选择了实体,操作数据会填充将传递给操作的基本 YAML。还可以通过更新如下 YAML 来传递额外的数据。
entity_id: light.bedroom
brightness: 255
rgb_color: [255, 0, 0]
模板编辑器选项卡
模板编辑器提供了一种快速测试模板的方法,在将其放入自动化和脚本之前。代码编辑器位于左侧,而实时输出显示在右侧的预览中。
默认情况下,这里包含样本代码,说明如何编写和测试模板。可以删除此示例代码并替换为自己的代码。您可以通过按下代码编辑器下方的“重置为示例模板”按钮来恢复默认示例。
有关 Jinja2 的更多信息,请访问 Jinja2 文档
事件选项卡
在事件部分,你可以在事件总线中触发事件或订阅事件类型以查看事件数据 JSON。
触发事件
要触发事件,只需输入事件的名称,并以 JSON 格式传递事件数据。
例如,要触发一个自定义事件,输入 event_type
为 event_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
}
}
统计选项卡
统计 选项卡显示长期统计实体的列表。如果长期统计对某个实体不起作用,则会显示 修复问题 链接。选择它以查看问题的描述。也可能有修复问题的选项。
![统计