diff --git a/api/src/dooris_api/app.py b/api/src/dooris_api/app.py index 9be8164..f239fa5 100644 --- a/api/src/dooris_api/app.py +++ b/api/src/dooris_api/app.py @@ -233,11 +233,17 @@ async def list_locks(ccujack: deps.CCUJackClient) -> List[models.Lock]: case "UNREACH": status_data["is_unreachable"] = value.v + main_lock = app_config.get().main_lock or "" + is_main_lock = ( + i_lock.identifier.lower() == main_lock.lower() + or i_lock.title.lower() == main_lock.lower() + ) result.append( models.Lock( id=i_lock.identifier, name=i_lock.title, status=models.LockStatus(**status_data), + is_main_lock=is_main_lock, ) ) diff --git a/api/src/dooris_api/models.py b/api/src/dooris_api/models.py index ee95233..ae603c4 100644 --- a/api/src/dooris_api/models.py +++ b/api/src/dooris_api/models.py @@ -54,7 +54,6 @@ class LockStatus(BaseModel): is_unreachable: bool is_low_battery: bool is_error_jammed: bool - is_main_lock: bool lock_target_level: Literal["locked", "unlocked", "open"] lock_state: Literal["unknown", "locked", "unlocked"] activity_state: Literal["unknown", "locking", "unlocking", "stable"] @@ -63,6 +62,7 @@ class LockStatus(BaseModel): class Lock(BaseModel): name: str id: str + is_main_lock: bool status: LockStatus