锁组件
lock 域包含所有应该像锁一样运作的平台,具有锁定/解锁动作。
lock: - platform: ... name: "锁名称"配置变量:
- id (可选, string):手动指定用于代码生成的 ID。必须指定 id 和 name 中的至少一个。
- name (可选, string):锁的名称。必须指定 id 和 name 中的至少一个。
NOTE
如果您为设备设置了 friendly_name,并且希望锁使用该名称,可以设置 name: None。
-
icon (可选, icon):手动设置前端中锁使用的图标。
-
internal (可选, boolean):将此组件标记为内部组件。内部组件不会暴露给前端(如 Home Assistant)。仅指定
id而不指定name会隐式将此设置为 true。 -
on_lock (可选, 动作):当锁定锁时要执行的自动化。请参阅
lock.on_lock/lock.on_unlock触发器。 -
on_unlock (可选, 动作):当解锁锁时要执行的自动化。请参阅
lock.on_lock/lock.on_unlock触发器。 -
disabled_by_default (可选, boolean):如果为 true,则此实体不应添加到任何客户端的前端(通常是 Home Assistant),除非用户手动启用(通过 Home Assistant UI)。默认为
false。 -
entity_category (可选, string):实体的类别。请参阅 https://developers.home-assistant.io/docs/core/entity/#generic-properties 获取可用选项列表。设置为
""可移除默认实体类别。 -
如果启用了 MQTT,则支持 MQTT 组件的所有其他选项。
-
如果启用了 Webserver 并选择了版本 3,则支持 Webserver 组件的所有其他选项。请参阅 Webserver 版本 3。
lock.lock 动作
Section titled “lock.lock 动作”此动作在执行时锁定具有给定 ID 的锁。
on_...: then: - lock.lock: deadbolt_1lock.unlock 动作
Section titled “lock.unlock 动作”此动作在执行时解锁具有给定 ID 的锁。
on_...: then: - lock.unlock: deadbolt_1lock.open 动作
Section titled “lock.open 动作”此动作在执行时打开(例如:开锁扣)具有给定 ID 的锁。
on_...: then: - lock.open: doorlock_1lock.is_locked / lock.is_unlocked 条件
Section titled “lock.is_locked / lock.is_unlocked 条件”此 条件 检查给定的锁是否已锁定(或已解锁)。
# 在某个触发器中:on_...: if: condition: # is_unlocked 语法相同 lock.is_locked: my_locklambda 调用
Section titled “lambda 调用”在 lambda 中,您可以调用所有锁的多种方法来执行一些高级操作(有关更多信息,请参阅完整的 API 参考)。
publish_state():手动使锁发布新状态并在内部存储它。如果它与上次内部状态不同,它还会发布到前端。
// 在 lambda 中,使锁报告特定状态 id(my_lock).publish_state(LOCK_STATE_LOCKED); id(my_lock).publish_state(LOCK_STATE_UNLOCKED);state:检索锁的当前状态。
// 在 lambda 中,获取锁状态并有条件地执行某些操作 if (id(my_lock).state == LOCK_STATE_LOCKED) { // 锁已锁定,在此处执行某些操作 }unlock()/lock()/open():从代码中手动解锁/锁定/打开锁。类似于lock.lock、lock.unlock和lock.open动作,但可在复杂的 lambda 表达式中使用。
id(my_lock).unlock(); id(my_lock).lock(); id(my_lock).open();lock.on_lock / lock.on_unlock 触发器
Section titled “lock.on_lock / lock.on_unlock 触发器”每次锁定或解锁锁时都会激活此触发器。它在锁组件确认状态后立即变为活动状态(例如,在它自己锁定/解锁后)。
lock: - platform: template # 或任何其他平台 # ... on_lock: - logger.log: "门已锁定!" on_unlock: - logger.log: "门已解锁!"