模板开关
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 动作
Section titled “switch.template.publish 动作”您还可以使用 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;'配置选项:
NOTE
此动作也可以在 lambda 中编写,publish_state 方法的参数表示开关当前是打开还是关闭:
id(template_swi).publish_state(false);