跳转到内容

模板文本传感器

template 文本传感器平台允许您使用 lambda 创建具有模板值的文本传感器。

# 示例配置条目
text_sensor:
- platform: template
name: "Template Text Sensor"
lambda: |-
return {"Hello World"};
update_interval: 60s

lambda 的可能返回值:

  • return {"STRING LITERAL"}; 类型为 std::string 的传感器新值。必须在 大括号 {} 中!

  • return {}; 如果您不想发布新状态(高级用法)。

  • lambda (可选, lambda): 每个更新间隔评估一次的 lambda,用于获取文本传感器的新值

  • update_interval (可选, 时间): 检查文本传感器的间隔。 设置为 never 可禁用更新。默认为 60s

  • 所有其他选项来自文本传感器

您还可以从 YAML 文件的其他位置向模板文本传感器发布状态, 使用 text_sensor.template.publish 动作。

# 示例配置条目
text_sensor:
- platform: template
name: "Template Text Sensor"
id: template_text
# 在某个触发器中
on_...:
- text_sensor.template.publish:
id: template_text
state: "Hello World"
# 使用模板
- text_sensor.template.publish:
id: template_text
state: !lambda 'return "Hello World";'

配置选项:

  • id (必需, ID): 模板文本传感器的 ID。
  • state (必需, string, 可模板化): 要发布的状态。

NOTE

此动作也可以用 lambda 编写:

id(template_text).publish_state("Hello World");

以下是一些用于调试和跟踪项目信息的实用文本传感器。

# 示例配置条目
text_sensor:
- platform: template
name: "ESPHome Project Version"
id: esphome_project_version_text_short
icon: "mdi:information-box"
entity_category: "diagnostic"
update_interval: 600s
lambda: |-
return { ESPHOME_PROJECT_VERSION };
- platform: template
name: "ESPHome Project Version Detailed"
id: esphome_project_version_text_detailed
icon: "mdi:information-box"
entity_category: "diagnostic"
update_interval: 600s
lambda: |-
return { ESPHOME_PROJECT_VERSION " " + App.get_compilation_time() };
- platform: template
name: "ESPHome Project Name"
id: esphome_project_name
icon: "mdi:information-box"
entity_category: "diagnostic"
update_interval: 600s
lambda: |-
return { ESPHOME_PROJECT_NAME };