跳转到内容

模板开关

template 开关平台允许您仅从动作和可选的值 lambda 创建简单的开关。 定义后,它将自动在 Home Assistant 中显示为开关,并可以通过前端界面进行控制。

# 示例配置条目
switch:
- platform: template
name: "Template Switch"
lambda: |-
if (id(some_binary_sensor).state) {
return true;
} else {
return false;
}
turn_on_action:
- switch.turn_on: switch2
turn_off_action:
- switch.turn_on: switch1

可选 lambda 的可能返回值:

  • return true; 如果开关应报告为 ON。
  • return false; 如果开关应报告为 OFF。
  • return {}; 如果应重复上一个状态。
  • lambda可选lambda): 重复评估以获取开关当前状态的 lambda。

  • turn_on_action可选Action):当远程(如 Home Assistant 的前端界面)请求打开开关时应执行的动作。

  • turn_off_action可选Action):当远程(如 Home Assistant 的前端界面)请求关闭开关时应执行的动作。

  • optimistic可选,布尔值):是否以乐观模式运行 - 在此模式下,发送到模板开关的任何命令都会立即更新报告的状态。 默认为 false

  • assumed_state可选,布尔值):开关的真实状态是否未知。 这将使 Home Assistant 前端界面同时显示 ON 和 OFF 动作的按钮,而不是在开关为 ON/OFF 时隐藏其中一个。默认为 false

  • 所有其他选项来自 Switch

您还可以使用 switch.template.publish 动作从 YAML 文件的其他地方向模板开关发布状态。

# 示例配置条目
switch:
- platform: template
name: "Template Switch"
id: template_swi
# 在某个触发器中
on_...:
- switch.template.publish:
id: template_swi
state: ON
# 模板化
- switch.template.publish:
id: template_swi
state: !lambda 'return true;'

配置选项:

  • id必填ID):模板开关的 ID。
  • state必填,布尔值,可模板化): 要发布的状态。

NOTE

此动作也可以在 lambda 中编写,publish_state 方法的参数表示开关当前是打开还是关闭:

id(template_swi).publish_state(false);