Template Lock
template 锁平台允许你仅用操作和可选的值 lambda 来创建简单的锁。定义完成后,它会自动出现在 Home Assistant 中作为锁,并可通过前端进行控制。
# 示例配置条目lock: - platform: template name: "Template Lock" 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;如果锁应报告为 LOCKED。return LOCK_STATE_UNLOCKED;如果锁应报告为 UNLOCKED。return LOCK_STATE_JAMMED;如果锁应报告为 JAMMED。return LOCK_STATE_LOCKING;如果锁应报告为 LOCKING。return LOCK_STATE_UNLOCKING;如果锁应报告为 UNLOCKING。return {};如果应重复上次的状态。
NOTE
MQTT 组件在 Home Assistant 中仅支持 LOCK_STATE_LOCKED 和 LOCK_STATE_UNLOCKED
-
lambda(可选,lambda): 重复求值以获取锁的当前状态的 lambda。
-
lock_action(可选,Action):当远程(如 Home Assistant 的前端)请求锁定锁时应执行的操作。
-
unlock_action(可选,Action):当远程(如 Home Assistant 的前端)请求解锁锁时应执行的操作。
-
optimistic(可选,boolean):是否以乐观模式运行——在此模式下,发送到模板锁的任何命令都会立即更新报告的状态。默认为
false。 -
assumed_state(可选,boolean):锁的真实状态是否未知。这将使 Home Assistant 前端同时显示锁定和解锁按钮,而不是在锁已锁定/解锁时隐藏其中一个。默认为
false。 -
锁 的所有其他选项。
lock.template.publish 操作
Section titled “lock.template.publish 操作”你也可以在 YAML 文件的其他地方使用 lock.template.publish 操作向模板锁发布状态。
# 示例配置条目lock: - platform: template name: "Template Lock" id: template_lock1
# in some triggeron_...: - lock.template.publish: id: template_lock1 state: LOCK_STATE_LOCKED
# 模板化 - lock.template.publish: id: template_lock1 state: !lambda 'return LOCK_STATE_LOCKED;'配置选项:
- id(必需,ID):模板锁的 ID。
- state(必需,boolean,templatable):要发布的状态。
NOTE
此操作也可在 lambda 中编写,publish_state 方法的参数表示锁应变更的状态:
id(template_lock1).publish_state(lock::LOCK_STATE_LOCKED);