跳转到内容

模板文本传感器

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(可选,Time):检查 文本传感器的间隔。设为 never 以禁用更新。默认为 60s。

  • 来自 Text Sensor 的所有其他选项。

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

# 示例配置条目
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,templatable): 要发布的状态。

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 };