模板锁
template 锁平台允许您仅从动作和可选的值 lambda 创建简单的锁。定义后,它会自动在 Home Assistant 中显示为锁,并可通过前端控制。
# 示例配置条目lock: - platform: template name: "模板锁" lambda: |- if (id(some_binary_sensor).state) { return LOCK_STATE_LOCKED; } else { return LOCK_STATE_UNLOCKED; } lock_action: - switch.turn_on: switch1 unlock_action: - switch.turn_off: switch1 open_action: - button.press: button1可选 lambda 的可能返回值:
return LOCK_STATE_LOCKED;如果锁应报告为已锁定。return LOCK_STATE_UNLOCKED;如果锁应报告为已解锁。return LOCK_STATE_JAMMED;如果锁应报告为卡住。return LOCK_STATE_LOCKING;如果锁应报告为正在锁定。return LOCK_STATE_UNLOCKING;如果锁应报告为正在解锁。return {};如果应重复上次状态。
NOTE
Home Assistant 中的 MQTT 组件仅支持 LOCK_STATE_LOCKED 和 LOCK_STATE_UNLOCKED
-
lambda (可选, lambda): 重复评估以获取锁当前状态的 lambda。
-
lock_action (可选, 动作):当远程端(如 Home Assistant 前端)请求锁定锁时应执行的动作。
-
unlock_action (可选, 动作):当远程端(如 Home Assistant 前端)请求解锁锁时应执行的动作。
-
optimistic (可选, boolean):是否以乐观模式运行——在此模式下,发送到模板锁的任何命令都会立即更新报告的状态。默认为
false。 -
assumed_state (可选, boolean):是否不知道锁的真实状态。这将使 Home Assistant 前端显示锁定和解锁两个动作的按钮,而不是在锁已锁定/解锁时隐藏其中一个。默认为
false。 -
锁的所有其他选项。
lock.template.publish 动作
Section titled “lock.template.publish 动作”您还可以使用 lock.template.publish 动作从 YAML 文件的其他位置向模板锁发布状态。
# 示例配置条目lock: - platform: template name: "模板锁" id: template_lock1
# 在某个触发器中on_...: - lock.template.publish: id: template_lock1 state: LOCK_STATE_LOCKED
# 使用模板 - lock.template.publish: id: template_lock1 state: !lambda 'return LOCK_STATE_LOCKED;'配置选项:
NOTE
此动作也可以在 lambda 中编写,publish_state 方法的参数表示锁应变为的状态:
id(template_lock1).publish_state(lock::LOCK_STATE_LOCKED);