跳转到内容

锁组件

lock 域包含所有应该像锁一样运作的平台,具有锁定/解锁动作。

lock:
- platform: ...
name: "锁名称"

配置变量:

  • id (可选, string):手动指定用于代码生成的 ID。必须指定 idname 中的至少一个。
  • name (可选, string):锁的名称。必须指定 idname 中的至少一个。

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

此动作在执行时锁定具有给定 ID 的锁。

on_...:
then:
- lock.lock: deadbolt_1

此动作在执行时解锁具有给定 ID 的锁。

on_...:
then:
- lock.unlock: deadbolt_1

此动作在执行时打开(例如:开锁扣)具有给定 ID 的锁。

on_...:
then:
- lock.open: doorlock_1

条件 检查给定的锁是否已锁定(或已解锁)。

# 在某个触发器中:
on_...:
if:
condition:
# is_unlocked 语法相同
lock.is_locked: my_lock

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.locklock.unlocklock.open 动作,但可在复杂的 lambda 表达式中使用。
id(my_lock).unlock();
id(my_lock).lock();
id(my_lock).open();

每次锁定或解锁锁时都会激活此触发器。它在锁组件确认状态后立即变为活动状态(例如,在它自己锁定/解锁后)。

lock:
- platform: template # 或任何其他平台
# ...
on_lock:
- logger.log: "门已锁定!"
on_unlock:
- logger.log: "门已解锁!"