跳转到内容

Template 开关

template 开关平台允许你仅用操作和 可选的值 lambda 创建简单的开关。定义后,它将自动出现在 Home Assistant 中作为一个开关,并可以通过前端控制。

# Example configuration entry
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 的可能返回值:

  • 如果开关应报告为 ON,则 return true;。
  • 如果开关应报告为 OFF,则 return false;。
  • 如果应重复上一次状态,则 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 文件中的其他地方 向模板开关发布状态。

# Example configuration entry
switch:
- platform: template
name: "Template Switch"
id: template_swi
# in some trigger
on_...:
- switch.template.publish:
id: template_swi
state: ON
# Templated
- switch.template.publish:
id: template_swi
state: !lambda 'return true;'

配置选项:

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

NOTE

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

id(template_swi).publish_state(false);