@@ -15,7 +15,7 @@ class LockStates(Enum):
1515 unknown = 99
1616
1717
18- SET_STATE_MAP = {LockStates .locked : "lock" , LockStates .unlocked : "unlock" }
18+ STATE_MAP = {1 : LockStates .locked , 2 : LockStates .unlocked }
1919
2020
2121class Lock (EntityV3 ):
@@ -74,28 +74,34 @@ def state(self) -> LockStates:
7474 if bool (self ._system .entity_data [self ._serial ]["status" ]["lockJamState" ]):
7575 return LockStates .jammed
7676
77- raw_state = self ._system .entity_data [self ._serial ]["status" ]["lockState" ]
77+ if self ._system .entity_data [self ._serial ]["status" ]["lockState" ] == 1 :
78+ return LockStates .locked
7879
79- try :
80- return LockStates (raw_state )
81- except ValueError :
82- LOGGER .error ("Unknown raw lock state: %s" , raw_state )
83- return LockStates .unknown
80+ if self ._system .entity_data [self ._serial ]["status" ]["lockState" ] == 2 :
81+ return LockStates .unlocked
8482
85- async def _set_lock_state (self , state : LockStates ) -> None :
86- """Set the lock state."""
83+ LOGGER .error (
84+ "Unknown raw lock state: %s" ,
85+ self ._system .entity_data [self ._serial ]["status" ]["lockState" ],
86+ )
87+ return LockStates .unknown
88+
89+ async def lock (self ) -> None :
90+ """Lock the lock."""
8791 await self ._api .request (
8892 "post" ,
8993 f"doorlock/{ self ._system .system_id } /{ self .serial } /state" ,
90- json = {"state" : SET_STATE_MAP [ state ] },
94+ json = {"state" : "lock" },
9195 )
9296
93- self ._system .entity_data [self ._serial ]["status" ]["lockState" ] = state .value
94-
95- async def lock (self ) -> None :
96- """Lock the lock."""
97- await self ._set_lock_state (LockStates .locked )
97+ self ._system .entity_data [self ._serial ]["status" ]["lockState" ] = 1
9898
9999 async def unlock (self ) -> None :
100100 """Unlock the lock."""
101- await self ._set_lock_state (LockStates .unlocked )
101+ await self ._api .request (
102+ "post" ,
103+ f"doorlock/{ self ._system .system_id } /{ self .serial } /state" ,
104+ json = {"state" : "unlock" },
105+ )
106+
107+ self ._system .entity_data [self ._serial ]["status" ]["lockState" ] = 2
0 commit comments