393 files
This commit is contained in:
1 parent
b05b7a897e
commit
39d97ac2db
404 files changed
+54006
-11034
No files matched your search
@@ -12,6 +12,7 @@ integration's source; drift-probed weekly)."""
|
||||
from __future__ import annotations
|
||||
|
||||
from ._model import ConsumableSignature, IntegrationSignature
|
||||
from ._shared import LOCK_CYLINDER_CYCLES
|
||||
|
||||
SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"nuki": IntegrationSignature(
|
||||
@@ -23,14 +24,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles on the lock entity."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"tedee": IntegrationSignature(
|
||||
@@ -42,14 +36,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles; entity_domain-gated to locks."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"august": IntegrationSignature(
|
||||
@@ -61,14 +48,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles; entity_domain-gated to locks."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"yale": IntegrationSignature(
|
||||
@@ -80,14 +60,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles; entity_domain-gated to locks."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"switchbot": IntegrationSignature(
|
||||
@@ -99,14 +72,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles; entity_domain-gated to locks."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"loqed": IntegrationSignature(
|
||||
@@ -118,14 +84,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles; entity_domain-gated to locks."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"homematicip_cloud": IntegrationSignature(
|
||||
@@ -137,14 +96,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"the ENGINE counts locking cycles; entity_domain-gated to locks."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"schlage": IntegrationSignature(
|
||||
@@ -155,14 +107,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"(lock platform verified present) — engine-counted locking cycles."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"sesame": IntegrationSignature(
|
||||
@@ -173,14 +118,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"(lock platform verified present) — engine-counted locking cycles."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"yalexs_ble": IntegrationSignature(
|
||||
@@ -191,14 +129,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"(lock platform verified present) — engine-counted locking cycles."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"dormakaba_dkey": IntegrationSignature(
|
||||
@@ -209,14 +140,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"(lock platform verified present) — engine-counted locking cycles."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
"Lubricate Cylinder",
|
||||
"cycle_count",
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
),
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"homematic": IntegrationSignature(
|
||||
@@ -226,6 +150,56 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
"home-assistant/core homeassistant/components/homematic/lock.py "
|
||||
"(lock platform verified present) — engine-counted locking cycles, entity_domain-gated so the hub's other device types are untouched."
|
||||
),
|
||||
tasks=(
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
# --- Round 14 (2026-09-25) --------------------------------------------
|
||||
"wyzeapi": IntegrationSignature(
|
||||
name="Wyze Lock",
|
||||
verified="2026-09-25 @ SecKatie/ha-wyzeapi master",
|
||||
source=(
|
||||
"HACS wyzeapi lock.py (WyzeLock for DeviceTypes.LOCK, WyzeLockBolt "
|
||||
"for YD_BT1 — one lock entity per lock device). Engine-counted "
|
||||
"locking cycles; entity_domain-gated so the hub's cameras/plugs "
|
||||
"are untouched."
|
||||
),
|
||||
tasks=(
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"ttlock": IntegrationSignature(
|
||||
name="TTLock",
|
||||
verified="2026-09-25 @ jbergler/hass-ttlock develop",
|
||||
source=(
|
||||
"HACS ttlock lock.py (one Lock entity per lock coordinator, "
|
||||
"is_locked from the lock state) — engine-counted locking cycles."
|
||||
),
|
||||
tasks=(
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"kwikset": IntegrationSignature(
|
||||
name="Kwikset Smart Locks",
|
||||
verified="2026-09-25 @ explosivo22/kwikset-ha main",
|
||||
source=(
|
||||
"HACS kwikset (not in the default store) lock.py: 'Each physical "
|
||||
"lock device exposes a single LockEntity' (KwiksetLock) — "
|
||||
"engine-counted locking cycles."
|
||||
),
|
||||
tasks=(
|
||||
LOCK_CYLINDER_CYCLES,
|
||||
),
|
||||
),
|
||||
"nuki_web": IntegrationSignature(
|
||||
name="Nuki Web",
|
||||
verified="2026-09-25 @ ArnyminerZ/ha-nuki-web master",
|
||||
source=(
|
||||
"HACS nuki_web lock.py: one NukiLockEntity per smartlock_id — Nuki "
|
||||
"OPENERS (type 2) are lock entities too and report 'locked' "
|
||||
"whenever the opener is merely online, so they are excluded via "
|
||||
"the device model entity.py derives from the type ('Opener')."
|
||||
),
|
||||
tasks=(
|
||||
ConsumableSignature(
|
||||
(),
|
||||
@@ -234,6 +208,7 @@ SIGNATURES: dict[str, IntegrationSignature] = {
|
||||
delta_units=2000,
|
||||
entity_domain="lock",
|
||||
on_states=("locked",),
|
||||
models_exclude=("Opener",),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in new issue
Block a user