文本组件
ESPHome 支持用于创建文本实体的组件。文本实体类似于 text_sensor,可以从设备读取值,但当该值可由用户/前端设置时,它非常有用。
NOTE
需要 Home Assistant Core 2023.11 或更高版本才能使 ESPHome 文本实体正常工作。
基础文本配置
Section titled “基础文本配置”ESPHome 中的所有文本都有一个名称和一个可选的图标。
# Example text configurationname: Livingroom Text
# Optional variables:icon: "mdi:cursor-text"配置变量:
- id (可选, string): 手动指定用于代码生成的 ID。至少必须指定 id 和 name 中的一个。
- name (必填, string): 文本的名称。
NOTE
如果您为设备设置了 friendly_name,
并希望文本使用该名称,可以将 name: None。
-
icon (可选, icon): 手动设置在前端中为文本使用的图标。
-
internal (可选, boolean): 将此组件标记为内部组件。内部组件将 不会暴露给前端(如 Home Assistant)。仅指定不带
name的id将隐式地将此设置为 true。 -
disabled_by_default (可选, boolean): 如果为 true,则此实体不应被添加到任何客户端的前端中, (通常是 Home Assistant),除非用户手动启用它(通过 Home Assistant UI)。 默认为
false。 -
entity_category (可选, string): 实体的类别。 请参阅 https://developers.home-assistant.io/docs/core/entity/#generic-properties 了解可用选项列表。设置为
""以移除默认实体类别。 -
mode (必填, string): 定义文本应如何在前端中显示。 可选值为
text或password。 -
如果启用了 Webserver 并选择了版本 3,则还包括 Webserver 组件的所有其他选项。请参阅 Webserver Version 3。
自动化:
- on_value (可选, Automation): 在发布新值时执行的自动化。请参阅
on_value。
MQTT 选项:
- 还包括 MQTT 组件 的所有其他选项。
您可以在 lambdas 中使用
id(text_id).state 访问文本的最新状态。
on_value
Section titled “on_value”当发布新值时,将触发此自动化。在 Lambdas
中,您可以通过 x 从触发器中获取值。
text: - platform: template # ... on_value: then: - logger.log: format: "%s" args: ["x.c_str()"]配置变量:请参阅 Automation。
text.set 操作
Section titled “text.set 操作”这是一个用于设置文本状态的 Action。
- text.set: id: my_text value: "Hello World"配置变量:
- id (必填, ID): 要设置的文本的 ID。
- value (必填, string, templatable): 要设置为文本的值。
lambda 调用
Section titled “lambda 调用”在 lambdas 中,您可以在所有文本上调用某些方法来执行一些 高级操作(有关更多信息,请参阅完整的 API 参考)。
.make_call(): 创建更新文本值的调用。
// Within lambda, push a value of 42 auto call = id(my_text).make_call(); call.set_value("Hello World"); call.perform();.state: 检索文本的当前值。
// For example, create a custom log message when a value is received: ESP_LOGI("main", "Value of my text: %s", id(my_text).state.c_str());